Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
"url": "https://allagents.dev"
},
"plugins": [
{
"name": "allagents",
"description": "End-user guidance for managing AllAgents through its CLI",
"source": "./plugins/allagents"
},
{
"name": "deepwiki",
"description": "AI-generated documentation for GitHub repositories",
Expand All @@ -16,6 +21,11 @@
"name": "engineering",
"description": "Reusable engineering workflow skills",
"source": "./plugins/engineering"
},
{
"name": "tradingview",
"description": "Official TradingView market data and analytics",
"source": "./plugins/tradingview"
}
]
}
10 changes: 10 additions & 0 deletions .github/plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,20 @@
"url": "https://allagents.dev"
},
"plugins": [
{
"name": "allagents",
"description": "End-user guidance for managing AllAgents through its CLI",
"source": "./plugins/allagents"
},
{
"name": "deepwiki",
"description": "AI-generated documentation for GitHub repositories",
"source": "./plugins/deepwiki"
},
{
"name": "tradingview",
"description": "Official TradingView market data and analytics",
"source": "./plugins/tradingview"
}
]
}
5 changes: 1 addition & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,4 @@ bun run build

## Interactive Testing

### agent-tui
- Use `agent-tui` when you need to exercise interactive terminal behavior manually.
- Prefer testing the built CLI inside a temporary workspace so the interaction matches real user conditions.
- When documenting manual verification, record the exact command, the temp workspace setup, and what terminal behavior you confirmed.
- TUI navigation, prompt, copy, status, or recovery changes: use the installed `agent-tui` skill for terminal automation, then apply the AllAgents-specific acceptance criteria in [`docs/agent-guides/tui-dogfooding.md`](docs/agent-guides/tui-dogfooding.md) before implementation and final verification.
38 changes: 36 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,13 @@

### Breaking Changes

- **MCP proxy command**: Removed the temporary `allagents mcp proxy-stdio` alias. Use `allagents mcp proxy <serverUrl>` instead.
- **MCP setup commands**: HTTP servers added with `allagents mcp add` now
authenticate and route through AllAgents automatically. The public
`--proxy` option and `mcp auth <serverUrl>` command were replaced by
`mcp reauth <name>`. The generated `mcp proxy` helper remains internal.

**Migration**: Re-run `allagents mcp update` or `allagents update` after upgrading so synced client configs are regenerated with `mcp proxy`.
**Migration**: Remove `--proxy` from `mcp add` calls. Replace
`allagents mcp auth <url>` with `allagents mcp reauth <configured-name>`.

- **Plugin Git ref terminology**: Renamed workspace plugin `pin` to `ref`, CLI
`--pin` to `--ref`, and sync-state `pinnedRef` to `requestedRef`. Inline
Expand All @@ -15,8 +19,38 @@
**Migration**: Replace `pin:` with `ref:` in plugin objects and `--pin` with
`--ref` in scripts. This is a clean cutover; the old names are not accepted.

### Fixed

- Project-scoped Copilot MCP servers are now written to `.github/mcp.json`,
which Copilot CLI discovers, instead of the unsupported
`.copilot/mcp-config.json` project path.
- Interactive OAuth guidance for `mcp add` and `mcp reauth` now uses normal
terminal output instead of the error channel. Callback URLs are entered
through an abortable masked prompt, and failed reauthentication restores the
previous working credentials.

### Added

- Added a thin first-party AllAgents skill that treats the installed CLI as
authoritative and follows its progressive `--help --json` indexes and leaf
contracts instead of relying on memorized commands.
- Added progressive machine-readable CLI help: concise root and group indexes
lead to leaf contracts with usage guidance, interaction requirements,
expected output, options, examples, and output schemas.

- Added the official TradingView MCP plugin with OAuth-backed access to market
data, analytics, watchlists, alerts, news, and screeners.
- Added automatic OAuth login to `allagents mcp add` and named credential
renewal with `allagents mcp reauth`, including local loopback completion and
remote callback URL paste with strict redirect and state validation.
- Generated HTTP MCP bridges now invoke the current pinned AllAgents version
through cached `npx`, so managed MCP connections do not require a global
AllAgents installation.
- Full MCP server management in the interactive TUI, including destination
selection, listing, inspection, add, reauthenticate, and remove flows for
project, user, and named-profile declarations. Client configuration updates
automatically after mutations, with a contextual retry when an update fails.

- Pi and OMP as file-sync clients at project and user scope, including native
runtime skill paths and agent instructions.
- Native Pi package and OMP marketplace-plugin lifecycle support for install,
Expand Down
13 changes: 10 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@ npx allagents update

No cloning required — AllAgents fetches the `workspace.yaml` directly from GitHub and sets up everything.

Install the end-user AllAgents skill when you want your coding agent to operate
the CLI using its current machine-readable command contracts:

```bash
npx allagents plugin install allagents@allagentsdev/allagents --scope user
```

## How It Works

1. **Configure** your workspace with repos, plugins, and target clients in `workspace.yaml`
Expand Down Expand Up @@ -101,9 +108,9 @@ clients:
| `allagents profile remove <name> --yes` | Remove unchanged managed profile resources |
| `allagents skill add <name> [--from <source>] [--scope project\|user] [--client <clients>] [--yes]` | Add source-backed skills for selected scope and clients (plural `skills` alias supported) |
| `allagents skill list` | List skills and status |
| `allagents mcp add <name> <commandOrUrl>` | Add an MCP server and sync to clients |
| `allagents mcp proxy <serverUrl>` | Bridge a remote HTTP MCP server to local stdio |
| `allagents mcp list` | List workspace MCP servers |
| `allagents mcp add <name> <commandOrUrl> [--scope user \| --profile <name>]` | Add, authenticate, and sync an MCP server |
| `allagents mcp reauth <name> [--scope user \| --profile <name>]` | Reauthenticate an HTTP MCP server in one destination |
| `allagents mcp list [--scope user \| --profile <name>]` | List MCP declarations in one destination |
| `allagents workspace status` | Show workspace state |
| `allagents self update` | Update AllAgents CLI |

Expand Down
78 changes: 78 additions & 0 deletions docs/agent-guides/tui-dogfooding.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# TUI Dogfooding

This guide defines AllAgents-specific acceptance criteria for changes to interactive CLI navigation, prompts, labels, status messages, or failure recovery.

## Tooling boundary

Use the installed `agent-tui` skill for terminal automation. That skill owns installation checks, command selection, session lifecycle, snapshots, actions, waits, assertions, and cleanup. Follow its current CLI workflow rather than reproducing command recipes here.

This guide owns the product-specific UX questions, interaction coverage, and evidence required for AllAgents.

## Goal

Prove that the built TUI is understandable to a first-time user, not only that its underlying mutation succeeds.

## Setup

1. Build the CLI.
2. Create isolated temporary project and HOME directories.
3. Seed the smallest realistic configuration that exposes every changed state.
4. Use the `agent-tui` skill to drive the built CLI and capture each changed decision screen before interacting with it.

Never dogfood against a real user workspace when an isolated fixture can exercise the behavior.

## Confusion pass

For every changed screen, state:

- the object the user is currently managing;
- the single decision the screen asks them to make;
- where Back and Ctrl+C will land;
- whether the selected scope or destination remains visible and intact.

Apply one screen, one decision:

- A resource list contains resources plus Add and Back.
- A resource detail contains actions for that resource plus Back.
- Scope or destination changes happen by returning to the chooser.
- Maintenance mechanics stay automatic. Show a retry only when automatic recovery fails.

If a menu mixes resource selection, navigation, and maintenance operations, simplify it before continuing.

## Language pass

Use the established public term for each operation in labels, progress messages, results, errors, and documentation. Internal implementation terms do not belong in user-facing copy. For example, use **Update** rather than sync or reconcile.

Read the complete screen, not only the changed label. Adjacent hints, summaries, and success or error messages must use the same vocabulary.

## Interaction pass

Exercise every changed path that applies:

1. Enter the flow from the main menu.
2. Move forward through each chooser and detail screen.
3. Use Back from every changed level.
4. Use Ctrl+C from every changed level.
5. Complete a successful mutation and verify both the next screen and filesystem result.
6. Trigger a realistic failure and verify the error leaves a clear recovery path.
7. Exercise retry, repeated retry failure, explicit cancellation, and eventual success when retry behavior changed.

A transition passes only when it lands on the screen a user would predict without losing or silently changing scope.

## Durable coverage

Keep regression tests for navigation state, scope preservation, cancellation, mutation boundaries, and failure recovery. Test exact copy only when the wording is a deliberate product contract; use the manual confusion pass for general prose quality.

## Completion evidence

Record in the PR description:

- the exact built command;
- temporary workspace and HOME setup;
- selections and transitions exercised;
- screenshots or the text of each observed decision screen;
- resulting configuration or filesystem state;
- failure and retry behavior checked;
- cleanup performed.

Dogfooding is complete only when the full changed journey passes the confusion, language, interaction, and filesystem checks.
2 changes: 1 addition & 1 deletion docs/plans/2026-02-03-workspace-sync-both-scopes.md
Original file line number Diff line number Diff line change
Expand Up @@ -446,7 +446,7 @@ In `src/cli/metadata/workspace.ts`, remove the `--scope` example and option:

**Step 2: Run help text tests**

Run: `bun test tests/e2e/cli-help.test.ts tests/e2e/cli-enriched-help.test.ts tests/e2e/cli-agent-help.test.ts`
Run: `bun test tests/e2e/cli-help.test.ts tests/e2e/cli-enriched-help.test.ts tests/unit/cli/structured-help.test.ts`
Expected: PASS (help tests should not hardcode --scope for sync)

**Step 3: Commit**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ flowchart TB
- **Goal:** Expose the orchestration as a predictable interactive and scriptable command.
- **Requirements:** R1-R3, R6, R8-R12; F1-F3.
- **Dependencies:** U1, U2.
- **Files:** `src/cli/commands/plugin-skills.ts`, `src/cli/metadata/plugin-skills.ts`, `src/cli/skill-arg-normalizer.ts`, `tests/unit/cli/skill-update.test.ts`, `tests/unit/cli/agent-help.test.ts`.
- **Files:** `src/cli/commands/plugin-skills.ts`, `src/cli/metadata/plugin-skills.ts`, `src/cli/skill-arg-normalizer.ts`, `tests/unit/cli/skill-update.test.ts`, `tests/unit/cli/structured-help.test.ts`.
- **Approach:** Register `update`; validate scope/filter values; use Clack for scope and confirmation prompts; group warnings once per physical refresh unit with every impacted scope/plugin listed; collect all decisions before execution; interpret No as retain/skip and cancel as pre-mutation abort; render one concise summary; produce the same result model and exit contract through JSON without UI noise.
- **Patterns to follow:** Existing skill search scope picker, global JSON envelope helpers, and enriched command metadata.
- **Test scenarios:**
Expand Down
2 changes: 1 addition & 1 deletion docs/plans/2026-09-17-1211-perf-update-no-op-paths-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ flowchart LR

### System-Wide Impact

- **CLI and agents:** Human output, `--json`, exit codes, and agent-help schemas stay stable. Automation still sees successful no-op checks as existing update outcomes.
- **CLI and agents:** Human output, `--json`, exit codes, and structured-help schemas stay stable. Automation still sees successful no-op checks as existing update outcomes.
- **Filesystem state:** Direct plugin and skill no-ops avoid persistent checkout work while retaining existing scope synchronization. Marketplace no-ops retain the registry timestamp write required by compatibility.
- **Dependency direction:** CLI/TUI callers create a neutral context and pass it into domain updaters; domain updaters consume context/Git/identity helpers. The leaf identity helper and Git module never import plugin, marketplace, skill, or CLI/TUI modules.
- **Scope ownership:** Remote and physical checkout facts can be shared, but each consumer independently derives public output and writes only its owning registry. External-plugin `changed` is the OR of successful marketplace and external-checkout physical changes without changing current public precedence or sync eligibility.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ The feature is primarily UX. Existing marketplace resolution, declaration instal
- A shared summary-data model rendered by CLI and TUI.
- Localized project/user declaration persistence for client overrides while preserving object fields.
- Crash-safe publication of the targeted project/user config via the repository’s established same-directory temporary-write-and-rename pattern.
- Existing command metadata, agent help, user docs, changelog, focused regression tests, and built-CLI dogfood.
- Existing command metadata, structured help, user docs, changelog, focused regression tests, and built-CLI dogfood.

### Out of Scope

Expand Down Expand Up @@ -231,7 +231,7 @@ Only these areas require code-review attention beyond dogfooding:
- `src/cli/tui/actions/plugins.ts`
- `src/cli/metadata/plugin.ts`
- `tests/unit/cli/tui-plugin-install.test.ts` (new)
- `tests/unit/cli/agent-help.test.ts`
- `tests/unit/cli/structured-help.test.ts`
- `tests/e2e/plugin-install-options.test.ts` (new)

**Changes:**
Expand Down Expand Up @@ -281,7 +281,7 @@ Only these areas require code-review attention beyond dogfooding:

- Document chooser order, first-config default consequence, per-plugin overrides, flags, and non-interactive behavior.
- Add a valid `plugins[].clients` example using `source`.
- Update command metadata and generated agent help.
- Update command metadata and structured help.
- Remove temporary dogfood workspaces and any obsolete plan artifacts after implementation.

## Verification Contract
Expand Down
6 changes: 2 additions & 4 deletions docs/public/schemas/v1/project-workspace.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,8 @@
"type": "array",
"items": {
"type": "string"
}
},
"default": []
},
"servers": {
"type": "object",
Expand All @@ -336,9 +337,6 @@
}
}
},
"required": [
"clients"
],
"additionalProperties": true
},
"mcpServers": {
Expand Down
12 changes: 8 additions & 4 deletions docs/public/schemas/v1/user-workspace.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,8 @@
"type": "array",
"items": {
"type": "string"
}
},
"default": []
},
"servers": {
"type": "object",
Expand All @@ -339,9 +340,6 @@
}
}
},
"required": [
"clients"
],
"additionalProperties": true
},
"mcpServers": {
Expand Down Expand Up @@ -1038,7 +1036,13 @@
"additionalProperties": false
}
]
},
"propertyNames": {
"pattern": "^[A-Za-z0-9_.-]{1,100}$"
}
},
"mcpProxy": {
"$ref": "#/definitions/AllAgentsUserWorkspace/properties/mcpProxy"
}
},
"required": [
Expand Down
4 changes: 3 additions & 1 deletion docs/src/content/docs/docs/getting-started/installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ npx allagents
```

:::note
If you plan to use the [MCP Proxy](/docs/guides/mcp-proxy/) feature, install AllAgents globally (npm or bun) instead. The proxy command is invoked directly by your MCP clients later, not by you through npx, so `allagents` needs to already be resolvable on `PATH` at that point.
HTTP MCP servers also work when setup is run through `npx`. Generated client
configs invoke a pinned AllAgents version through `npx`, which reuses npm's
package cache after the first launch.
:::

## Using bun
Expand Down
2 changes: 1 addition & 1 deletion docs/src/content/docs/docs/guides/agent-portability.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ Running `allagents update` syncs agents, skills, hooks, and MCP servers to both
| Hooks | `.claude/hooks/` | `.github/hooks/` |
| Commands / Prompts | `.claude/commands/` | `.github/prompts/` |
| Agent file | `CLAUDE.md` | `AGENTS.md` |
| MCP servers | `.claude/mcp.json` | `.copilot/mcp-config.json` |
| MCP servers | `.claude/mcp.json` | `.github/mcp.json` |
| WORKSPACE-RULES | Injected in `CLAUDE.md` | Injected in `AGENTS.md` |

### Skills Are the Strongest Interop Point
Expand Down
Loading
Loading