argsbarg 6.1.9 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -1
- package/README.md +187 -93
- package/docs/README.md +3 -2
- package/docs/ai-skills.md +36 -23
- package/docs/cli-program.md +12 -11
- package/docs/config-schema.md +3 -3
- package/docs/configure.md +12 -16
- package/docs/decisions.md +74 -37
- package/docs/developing.md +6 -6
- package/docs/distribution-homebrew.md +117 -104
- package/docs/mcp.md +21 -57
- package/docs/output-schema.md +2 -2
- package/examples/formats.ts +5 -6
- package/examples/full-example/README.md +7 -69
- package/examples/full-example/docs/cli-schema.json +1 -1659
- package/examples/full-example/docs/cli.md +2 -1538
- package/examples/full-example/docs/http.md +3 -8
- package/examples/full-example/docs/mcp.md +23 -59
- package/examples/full-example/docs/openapi.json +2 -782
- package/examples/full-example/docs/skill.md +18 -14
- package/examples/full-example/justfile +22 -14
- package/examples/full-example/scripts/create-identity.ts +2 -1
- package/examples/full-example/src/commands/status/command.test.ts +2 -2
- package/examples/full-example/src/commands/status/command.ts +7 -6
- package/examples/full-example/src/program.ts +4 -10
- package/examples/full-example-json/Formula/.gitkeep +0 -0
- package/examples/full-example-json/Formula/full-example-json.rb +35 -0
- package/examples/full-example-json/README.md +27 -0
- package/examples/full-example-json/biome.json +22 -0
- package/examples/full-example-json/bun.lock +48 -0
- package/examples/full-example-json/docs/README.md +27 -0
- package/examples/full-example-json/docs/cli-schema.json +2145 -0
- package/examples/full-example-json/docs/cli.md +1990 -0
- package/examples/full-example-json/docs/http.md +92 -0
- package/examples/full-example-json/docs/mcp.md +116 -0
- package/examples/full-example-json/docs/openapi.json +1246 -0
- package/examples/full-example-json/docs/skill.md +57 -0
- package/examples/full-example-json/justfile +171 -0
- package/examples/full-example-json/package.json +22 -0
- package/examples/full-example-json/scripts/create-identity.ts +12 -0
- package/examples/full-example-json/scripts/dev-formula.ts +97 -0
- package/examples/full-example-json/scripts/formula-shared.test.ts +68 -0
- package/examples/full-example-json/scripts/formula-shared.ts +170 -0
- package/examples/full-example-json/scripts/print-identity.ts +28 -0
- package/examples/full-example-json/scripts/release.ts +212 -0
- package/examples/full-example-json/src/commands/echo/command.ts +26 -0
- package/examples/full-example-json/src/commands/status/command.test.ts +10 -0
- package/examples/full-example-json/src/commands/status/command.ts +28 -0
- package/examples/full-example-json/src/index.ts +10 -0
- package/examples/full-example-json/src/program.ts +33 -0
- package/examples/full-example-json/src/types/md.d.ts +4 -0
- package/examples/full-example-json/tsconfig.json +17 -0
- package/examples/minimal.ts +17 -17
- package/examples/nested.ts +10 -10
- package/examples/option-required.ts +13 -13
- package/examples/servers.ts +10 -10
- package/index.d.ts +17 -43
- package/package.json +1 -1
- package/src/cli-tool/create.test.ts +44 -68
- package/src/cli-tool/create.ts +81 -17
- package/src/cli-tool/full-example-capabilities.test.ts +33 -18
- package/src/cli-tool/post-create.ts +31 -17
- package/src/cli-tool/program.ts +16 -7
- package/src/cli-tool/prompt.ts +27 -0
- package/src/cli-tool/run-create.ts +19 -7
- package/src/cli-tool/schemagen/schemagen.test.ts +3 -3
- package/src/configure/artifacts/install-validate.test.ts +20 -33
- package/src/configure/artifacts/paths.ts +9 -53
- package/src/configure/artifacts/status.test.ts +13 -16
- package/src/configure/artifacts/status.ts +5 -22
- package/src/configure/artifacts/target-base.ts +6 -15
- package/src/configure/artifacts/target-effective.ts +16 -54
- package/src/configure/artifacts/target-mcp-json.ts +2 -5
- package/src/configure/artifacts/target-registry.ts +0 -7
- package/src/configure/artifacts/target-scope.ts +7 -17
- package/src/configure/artifacts/target-skill.ts +6 -15
- package/src/configure/artifacts/target-types.ts +6 -54
- package/src/configure/artifacts/targets/agents-mcp.ts +11 -0
- package/src/configure/artifacts/targets/configure.ts +1 -5
- package/src/configure/artifacts/targets/index.ts +4 -44
- package/src/configure/artifacts/targets/skill.ts +12 -0
- package/src/configure/artifacts/targets.test.ts +21 -59
- package/src/configure/configure.test.ts +35 -46
- package/src/configure/index.ts +19 -19
- package/src/configure/prompt.ts +2 -12
- package/src/core/parse.test.ts +21 -32
- package/src/core/types.ts +18 -44
- package/src/core/validate.ts +28 -45
- package/src/docs/docs.test.ts +4 -4
- package/src/docs/http-guide.ts +1 -1
- package/src/docs/mcp-guide.ts +41 -71
- package/src/docs/resolve.ts +1 -1
- package/src/docs/save.ts +1 -1
- package/src/exports/cli.ts +1 -1
- package/src/index.ts +1 -1
- package/src/skill/generate.ts +26 -45
- package/src/skill/install.ts +18 -38
- package/src/skill/naming.ts +3 -27
- package/src/test/integration/config.test.ts +3 -3
- package/src/test/integration/mcp.test.ts +4 -4
- package/{examples/mcp-test.ts → src/test/mcp-integration-fixture.ts} +20 -22
- package/src/configure/artifacts/target-mcp-cli.ts +0 -127
- package/src/configure/artifacts/targets/chatgpt-mcp.ts +0 -12
- package/src/configure/artifacts/targets/claude-code-mcp.ts +0 -15
- package/src/configure/artifacts/targets/claude-desktop-mcp.ts +0 -12
- package/src/configure/artifacts/targets/claude-skill.ts +0 -16
- package/src/configure/artifacts/targets/codex-mcp.ts +0 -25
- package/src/configure/artifacts/targets/codex-skill.ts +0 -14
- package/src/configure/artifacts/targets/cursor-mcp.ts +0 -15
- package/src/configure/artifacts/targets/cursor-skill.ts +0 -16
- package/src/configure/artifacts/targets/openclaw-mcp.ts +0 -25
- package/src/configure/artifacts/targets/openclaw-skill.ts +0 -17
- package/src/configure/artifacts/targets/opencode-mcp.ts +0 -96
- package/src/configure/artifacts/targets/opencode-skill.ts +0 -15
- /package/examples/{full-example → full-example-json}/src/commands/render-json/__generated__/RenderJsonInputSchema.json +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/render-json/__generated__/index.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/render-json/command.test.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/render-json/command.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/render-json/types.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/status/__generated__/StatusJsonOutputSchema.json +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/status/__generated__/index.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/status/types.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/workspaces/__generated__/WorkspaceNameInputSchema.json +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/workspaces/__generated__/index.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/workspaces/command.test.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/workspaces/command.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/commands/workspaces/types.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/db/index.test.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/db/index.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/db/migrate.test.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/db/migrate.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/db/migrations/001_workspaces.sql +0 -0
- /package/examples/{full-example → full-example-json}/src/db/tables/workspaces.ts +0 -0
- /package/examples/{full-example → full-example-json}/src/types/argsbarg.d.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [6.2.0] - 2026-07-30
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **Breaking: two `argsbarg create` templates** — default `cli` template (`examples/full-example`) is CLI-centric (MCP, HTTP, configure, skills; no schemagen). Schema-first template (`examples/full-example-json`) keeps `@sg` schemagen, `inputSchema`/`outputSchema`, REST CRUD, and in-memory SQLite. Interactive create shows an A/B template picker; `--template cli|json` for non-interactive use. `create-identity.ts` records `template` for `--check` drift detection.
|
|
15
|
+
- **Experimental: agent skill install** — single opt-in target via `program.skill: { enabled: true }` installs to `~/.agents/skills/<key>/` (no per-host skill targets). Brew `post_install` sync installs the skill when enabled. Removed `configure.agentIntegration` and per-host skill keys (`cursorSkill`, etc.).
|
|
16
|
+
- **Experimental: .agents protocol–only agent install** — MCP configure install writes only `~/.agents/mcp.json` when `mcpServer.enabled` (included in `configure --sync` automatically, parallel to `skill.enabled`). Removed vendor MCP auto-install (Cursor, Claude, Codex, OpenCode, OpenClaw, ChatGPT). Removed `configure.targets.*Mcp`; use `mcpServer.enabled`. Skill bundle adds protocol `skill.md` (+ `SKILL.md` compatibility copy). Docs and generated `docs mcp` document manual Cursor/Claude/Desktop MCP setup and Claude Code skill symlink.
|
|
17
|
+
|
|
18
|
+
## [6.1.10] - 2026-07-29
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Update docs
|
|
23
|
+
|
|
10
24
|
## [6.1.9] - 2026-07-27
|
|
11
25
|
|
|
12
26
|
### Added
|
|
@@ -879,7 +893,9 @@ const cli = { ... } satisfies CliProgram; // or : CliProgram
|
|
|
879
893
|
- Migrate schemas: rename every `children` property to **`commands`**; move positional definitions to **`CliPositional`** objects on `positionals` and strip `positional` / `argMin` / `argMax` from flag definitions under `options` (flags only carry `name`, `description`, `kind`, and optional `shortName`).
|
|
880
894
|
- Imports: use `CliPositional` where needed; replace `CliOptionDef` with `CliOption` or `CliPositional` as appropriate.
|
|
881
895
|
|
|
882
|
-
[Unreleased]: https://github.com/bdombro/bun-argsbarg/compare/v6.
|
|
896
|
+
[Unreleased]: https://github.com/bdombro/bun-argsbarg/compare/v6.2.0...HEAD
|
|
897
|
+
[6.2.0]: https://github.com/bdombro/bun-argsbarg/releases/tag/v6.2.0
|
|
898
|
+
[6.1.10]: https://github.com/bdombro/bun-argsbarg/releases/tag/v6.1.10
|
|
883
899
|
[6.1.9]: https://github.com/bdombro/bun-argsbarg/releases/tag/v6.1.9
|
|
884
900
|
[6.1.8]: https://github.com/bdombro/bun-argsbarg/releases/tag/v6.1.8
|
|
885
901
|
[6.1.7]: https://github.com/bdombro/bun-argsbarg/releases/tag/v6.1.7
|
package/README.md
CHANGED
|
@@ -5,40 +5,70 @@ Logo
|
|
|
5
5
|
[npm version](https://www.npmjs.com/package/argsbarg)
|
|
6
6
|
[Bun](https://bun.sh)
|
|
7
7
|
|
|
8
|
-
Build beautiful, well-behaved
|
|
8
|
+
Build beautiful, well-behaved, production-grade CLIs, HTTP REST services, MCP Servers for Bun from a single, unified schema. All with only 2 modest dependencies.
|
|
9
9
|
|
|
10
|
-
Why
|
|
10
|
+
Why ArgsBarg?
|
|
11
11
|
|
|
12
|
-
*Schema-first* —
|
|
12
|
+
*Schema-first & Auto-validated* — Define your entire command structure, options, description, and inputs once. ArgsBarg compiles this into type-safe option accessors, command-line routing, and validation schemas, keeping your code and interfaces perfectly aligned.
|
|
13
13
|
|
|
14
|
-
*
|
|
14
|
+
*Automated Schemagen & Docgen* — Maintain single-source truth by decorating standard TypeScript types (`/** @sg */ interface...`) to automatically compile them into runtime validation schemas (`argsbarg schemagen`). Easily export standard-compliant API documentation, full CLI reference markdown, OpenAPI 3.1 definitions, and agent skill sheets directly from your code (`docs --save` command) using introspection.
|
|
15
15
|
|
|
16
|
-
*
|
|
16
|
+
*Production REST Server* — Instantly expose your commands as HTTP REST endpoints (`POST /v1/some-command`) with built-in Kubernetes-compliant `/health/liveness` and `/health/readiness` probes, ECS structured JSON logging to `stderr`, and auto-generated OpenAPI 3.1 specs with an interactive Swagger UI.
|
|
17
17
|
|
|
18
|
-
*
|
|
18
|
+
*First-Class Homebrew Distribution* — Exposes robust native support for packaging and distributing compiled binaries and shell completions cleanly via a standard tap-from-repo Homebrew model. Includes built-in completion script generators (`completion bash`/`zsh`/`fish`) consumed by Homebrew's standard `generate_completions_from_executable` command out of the box, ensuring friction-free installations and updates for your developers.
|
|
19
|
+
|
|
20
|
+
*High-Performance & Light Footprint* — Optimized specifically for Bun. Executes TypeScript and TSX source files directly with no transpile or bundling steps required, leveraging `Bun.serve` for rapid startup and low memory usage. Ships with only two production dependencies (`@cfworker/json-schema` and `ts-json-schema-generator`).
|
|
19
21
|
|
|
20
|
-
*
|
|
22
|
+
*Beautiful* `-h` *screens* — Scoped help at any routing depth, rendered in rounded UTF-8 boxes with tables, terminal-width wrapping, and color when stdout is a TTY. Errors print in red with contextual help on stderr.
|
|
23
|
+
|
|
24
|
+
*Shell completions* — `completion bash`, `completion zsh`, and `completion fish` built-ins generate scripts consumed by Homebrew during formula `install` (`generate_completions_from_executable`). See [docs/distribution-homebrew.md](docs/distribution-homebrew.md).
|
|
21
25
|
|
|
22
26
|
Also checkout ArgsBarg for [cpp](https://github.com/bdombro/cpp-argsbarg), [nim](https://github.com/bdombro/nim-argsbarg), and [swift](https://github.com/bdombro/swift-argsbarg)!
|
|
23
27
|
|
|
24
28
|
Halps! -->
|
|
25
29
|
help-preview.png
|
|
30
|
+
[help-preview.png](docs/help-preview.png)
|
|
31
|
+
|
|
26
32
|
|
|
27
33
|
Sub-level Halps! -->
|
|
28
34
|
help-l2-preview.png
|
|
35
|
+
[help-l2-preview.png](docs/help-l2-preview.png)
|
|
29
36
|
|
|
30
37
|
Shell completions! -->
|
|
31
38
|
completions-preview.png
|
|
39
|
+
[completions-preview.png](docs/completions-preview.png)
|
|
40
|
+
|
|
41
|
+
Production-grade HTTP Server! -->
|
|
42
|
+
```sh
|
|
43
|
+
$ myapp http
|
|
44
|
+
{"@timestamp":"2026-07-29T10:23:59.094Z","message":"HTTP API listening on http://127.0.0.1:13000",...}
|
|
45
|
+
{"@timestamp":"2026-07-29T10:23:59.194Z","message":"GET /health/liveness","ecs.version":"8.11.0",...}
|
|
46
|
+
{"@timestamp":"2026-07-29T10:23:59.195Z","message":"server stopping","ecs.version":"8.11.0",...}
|
|
47
|
+
```
|
|
32
48
|
|
|
33
|
-
## Usage
|
|
49
|
+
## Basic Usage
|
|
34
50
|
|
|
35
51
|
```typescript
|
|
36
52
|
import { Cli, type CliProgram, CliOptionKind } from "argsbarg";
|
|
37
53
|
|
|
38
54
|
const program = {
|
|
39
|
-
key: "helloapp",
|
|
40
|
-
version: "1.0.0",
|
|
41
55
|
description: "Tiny demo.",
|
|
56
|
+
handler: async (ctx) => {
|
|
57
|
+
const name = ctx.args[0] ?? "world";
|
|
58
|
+
if (ctx.hasFlag("verbose")) {
|
|
59
|
+
console.log("verbose mode");
|
|
60
|
+
}
|
|
61
|
+
console.log(`hello ${name}`);
|
|
62
|
+
},
|
|
63
|
+
key: "helloapp",
|
|
64
|
+
options: [
|
|
65
|
+
{
|
|
66
|
+
name: "verbose",
|
|
67
|
+
description: "Enable extra logging.",
|
|
68
|
+
kind: CliOptionKind.Presence,
|
|
69
|
+
shortName: "v",
|
|
70
|
+
},
|
|
71
|
+
],
|
|
42
72
|
positionals: [
|
|
43
73
|
{
|
|
44
74
|
name: "name",
|
|
@@ -48,21 +78,7 @@ const program = {
|
|
|
48
78
|
argMax: 1,
|
|
49
79
|
},
|
|
50
80
|
],
|
|
51
|
-
|
|
52
|
-
{
|
|
53
|
-
name: "verbose",
|
|
54
|
-
description: "Enable extra logging.",
|
|
55
|
-
kind: CliOptionKind.Presence,
|
|
56
|
-
shortName: "v",
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
handler: async (ctx) => {
|
|
60
|
-
const name = ctx.args[0] ?? "world";
|
|
61
|
-
if (ctx.hasFlag("verbose")) {
|
|
62
|
-
console.log("verbose mode");
|
|
63
|
-
}
|
|
64
|
-
console.log(`hello ${name}`);
|
|
65
|
-
},
|
|
81
|
+
version: "1.0.0",
|
|
66
82
|
} satisfies CliProgram;
|
|
67
83
|
|
|
68
84
|
const cli = new Cli(program);
|
|
@@ -85,83 +101,123 @@ Everything you need for a first-class CLI:
|
|
|
85
101
|
- **Rich help**: rounded UTF-8 boxes, tables, terminal width detection (`process.stdout.columns`), colors when stdout/stderr is a TTY
|
|
86
102
|
- **TypeScript-native**: Typed option accessors (`ctx.typedOpt<T>`) and `async/await` handler support.
|
|
87
103
|
|
|
104
|
+
## Getting Started
|
|
88
105
|
|
|
106
|
+
You can either quickly bootstrap a complete, feature-rich project skeleton using our CLI creator or manually integrate ArgsBarg into an existing codebase.
|
|
89
107
|
|
|
90
|
-
|
|
108
|
+
### Option A: Bootstrap a New Project (Recommended)
|
|
91
109
|
|
|
92
|
-
|
|
110
|
+
ArgsBarg provides an interactive project generator to scaffold a new repository fully equipped with TypeScript, Biome, automated schemagen/docgen, standard testing, and Homebrew integration rules:
|
|
93
111
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
- `mcp` — when `mcpServer.enabled` is `true`, run as an MCP stdio server (`myapp mcp`).
|
|
98
|
-
- `http` — when `httpServer.enabled` is `true`, run as an HTTP tool server (`myapp http`).
|
|
99
|
-
- `docs` — print bundled markdown topics, schema JSON, CLI markdown, and generated skill content (`myapp docs cli`, `myapp docs cli-schema`, `myapp docs skill`, …). Enabled by default; opt out with `docs: { enabled: false }`. See [docs/bundled-docs.md](docs/bundled-docs.md).
|
|
100
|
-
- `configure` — manage agent skills, MCP config, and app config (`myapp configure --sync --yes` after Homebrew install). See [docs/configure.md](docs/configure.md).
|
|
112
|
+
```bash
|
|
113
|
+
# Interactive setup (prompts for naming and git configurations)
|
|
114
|
+
bunx argsbarg create my-app
|
|
101
115
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
116
|
+
# Non-interactive / Headless setup
|
|
117
|
+
bunx argsbarg create my-app \
|
|
118
|
+
--key my-cli --release-repo org/my-cli --yes
|
|
119
|
+
```
|
|
106
120
|
|
|
107
|
-
|
|
121
|
+
Edit `scripts/create-identity.ts` in the new repository to set your description. The `create` command copies the full-featured template, runs `bun install`, bootstraps a git repository (if standalone), and runs initial validation tests.
|
|
108
122
|
|
|
109
|
-
|
|
123
|
+
#### What the bootstrapped template includes:
|
|
110
124
|
|
|
111
|
-
|
|
125
|
+
| Area | Files / wiring |
|
|
126
|
+
| --------------------- | ---------------------------------------------------------------------------------------- |
|
|
127
|
+
| All built-ins | `completion`, `version`, `configure`, `docs`, `mcp`, `http`, `configure get`/`set` |
|
|
128
|
+
| `@sg` schemagen | `/** @sg */` on types in `src/**/*.ts` → `{TypeName}Schema` in `__generated__/` |
|
|
129
|
+
| `outputSchema` | `src/commands/status/types.ts` → `StatusJsonOutputSchema` from `__generated__/` |
|
|
130
|
+
| Schemagen | `just schemagen` → `argsbarg schemagen` (justfile exports `node_modules/.bin` on `PATH`) |
|
|
131
|
+
| Command layout | `src/commands/<name>/command.ts`; registration in `src/program.ts` |
|
|
132
|
+
| MCP doc topics | `docs.topics` auto-exposed as `<key>://docs/<topic>` resources when docs + MCP enabled |
|
|
133
|
+
| Package import | `from "argsbarg"` (not relative to argsbarg `src/`) |
|
|
134
|
+
| Homebrew distribution | `scripts/formula-shared.ts`, `scripts/dev-formula.ts`, `Formula/`, `justfile` |
|
|
135
|
+
| Dev tooling | Biome (`just format` / `just lint`), TypeScript, colocated tests |
|
|
136
|
+
| Cursor rules | `.cursor/rules/cli-program.mdc`, `.cursor/rules/code.mdc` |
|
|
112
137
|
|
|
113
|
-
|
|
138
|
+
*Tip: Verify an existing tree or template setup with `bunx argsbarg create --check .`*
|
|
114
139
|
|
|
115
|
-
|
|
140
|
+
### Option B: Manual Installation (For Existing Projects)
|
|
116
141
|
|
|
117
|
-
|
|
142
|
+
To manually integrate ArgsBarg into your existing Bun application: `bun add argsbarg`.
|
|
118
143
|
|
|
119
|
-
### Configure CLI
|
|
120
144
|
|
|
121
|
-
|
|
145
|
+
## Built-in Commands
|
|
122
146
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
147
|
+
ArgsBarg automatically integrates several core features into your application. These are divided into stable core capabilities and optional experimental integrations:
|
|
148
|
+
|
|
149
|
+
### Core Capabilities (Stable)
|
|
150
|
+
|
|
151
|
+
- `-h` / `--help` — Highly-formatted, terminal-width scoped help at any routing depth.
|
|
152
|
+
- `version` — Print the program's version (e.g., `myapp version`).
|
|
153
|
+
- `http` — Launch the high-performance HTTP REST server (injected when `httpServer.enabled` is `true`).
|
|
154
|
+
- `completion bash` / `zsh` / `fish` — Generate shell completion scripts to stdout for deployment and packaging.
|
|
155
|
+
- `docs` — Print bundled markdown topics, schema JSON, or CLI reference markdown (`myapp docs cli`, `myapp docs cli-schema`, etc.). Enabled by default; see [docs/bundled-docs.md](docs/bundled-docs.md).
|
|
156
|
+
- `configure get` / `set` — Query and update application-level configurations non-interactively (active when `program.appConfig` contains configuration schema entries).
|
|
157
|
+
|
|
158
|
+
### Experimental Integrations (Opt-in)
|
|
159
|
+
|
|
160
|
+
- `mcp` — Run as a Model Context Protocol stdio-based agent server (injected when `mcpServer.enabled` is `true`). See [docs/mcp.md](docs/mcp.md).
|
|
161
|
+
- `configure` (`--sync` / `--status` / `--remove-all`) — Interactive environment setup and developer agent credentials sync (enabled by default; opt out with `configure: { enabled: false }`). See [docs/configure.md](docs/configure.md).
|
|
162
|
+
|
|
163
|
+
Do not declare top-level commands named `completion`, `version`, or `docs` as they are reserved by default. If their respective features are enabled, `http`, `mcp`, and `configure` are also reserved.
|
|
130
164
|
|
|
131
|
-
|
|
165
|
+
## HTTP REST Server
|
|
132
166
|
|
|
133
|
-
|
|
167
|
+
By opting in with `httpServer: { enabled: true }` on your program root, running your app with the `http` subcommand launches a high-performance HTTP REST server powered natively by `Bun.serve`. This is ideal for sidecars, microservices, and micro-container deployments (such as in Kubernetes).
|
|
134
168
|
|
|
135
|
-
|
|
169
|
+
Nested command paths map directly to standard REST paths (e.g., `v1 invoices render` maps to `POST /v1/invoices/render`).
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
const cli = {
|
|
173
|
+
commands: [/* ... */],
|
|
174
|
+
description: "My service.",
|
|
175
|
+
httpServer: { enabled: true, port: 3000 },
|
|
176
|
+
key: "myapp",
|
|
177
|
+
version: "1.0.0",
|
|
178
|
+
} satisfies CliProgram;
|
|
179
|
+
```
|
|
136
180
|
|
|
137
181
|
```bash
|
|
138
|
-
myapp
|
|
139
|
-
myapp completion zsh
|
|
140
|
-
myapp completion fish
|
|
182
|
+
myapp http --port 3000
|
|
141
183
|
```
|
|
142
184
|
|
|
143
|
-
Users configure their shell per [Homebrew Shell Completion](https://docs.brew.sh/Shell-Completion).
|
|
144
185
|
|
|
145
|
-
|
|
186
|
+
|
|
187
|
+
### Key HTTP Features:
|
|
188
|
+
|
|
189
|
+
- **Built-in Health Checks** — Automatic `/health/liveness` (responds 200 when online) and `/health/readiness` (responds 200 when online and config validation passes) probes out of the box, compliant with container orchestrators.
|
|
190
|
+
- **OpenAPI 3.1 Spec & Swagger UI** — Serves standard `/openapi.json` and a `/swagger` interactive API browser generated directly from your command schema and JSDoc metadata.
|
|
191
|
+
- **Pre-Handler Schema Validation** — Incoming request payloads are validated against the compile-time JSON Schema (`inputSchema`) on leaf commands before your handler ever runs.
|
|
192
|
+
- **ECS Structured Logging** — Access and error logs are automatically structured as Elastic Common Schema (ECS) JSON objects and written to `stderr` (e.g., for Datadog or ELK collection).
|
|
193
|
+
- **W3C Distributed Tracing** — Automatically parses, propagates, and echoes `traceparent` headers for distributed tracing pipelines.
|
|
194
|
+
|
|
195
|
+
See **[docs/http-server.md](docs/http-server.md)** for details on endpoints and response shapes, and **[docs/logging.md](docs/logging.md)** for log configurations.
|
|
196
|
+
|
|
197
|
+
## Distribution & Packaging (Homebrew)
|
|
198
|
+
|
|
199
|
+
ArgsBarg is built to distribute the compiled binary and shell completions cleanly through Homebrew via a standard **tap-from-repo** model.
|
|
200
|
+
|
|
201
|
+
### Installation & Post-Install Setup:
|
|
146
202
|
|
|
147
203
|
```bash
|
|
148
|
-
|
|
204
|
+
brew tap <org>/<repo> git@github.com:<org>/<repo>.git
|
|
205
|
+
brew install <tap>/myapp
|
|
149
206
|
```
|
|
150
207
|
|
|
208
|
+
During installation, Homebrew registers the built-in generated shell completions automatically via `generate_completions_from_executable` (see [docs/distribution-homebrew.md](docs/distribution-homebrew.md)).
|
|
151
209
|
|
|
210
|
+
### Shell Completions:
|
|
152
211
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
Argsbarg ships authoring docs in `node_modules/argsbarg/docs/`. Agents do not load them unless your repo points there — copy the thin Cursor rule after install (it tells agents to **read** `cli-program.md`, not duplicate it):
|
|
212
|
+
Completion scripts can also be output directly at any time for manual setups or formula auditing:
|
|
156
213
|
|
|
157
214
|
```bash
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
node_modules/argsbarg/examples/full-example/.cursor/rules/cli-program.mdc
|
|
215
|
+
myapp completion bash
|
|
216
|
+
myapp completion zsh
|
|
217
|
+
myapp completion fish
|
|
162
218
|
```
|
|
163
219
|
|
|
164
|
-
|
|
220
|
+
|
|
165
221
|
|
|
166
222
|
## How it works
|
|
167
223
|
|
|
@@ -228,19 +284,20 @@ Check the `examples/` directory for full working scripts:
|
|
|
228
284
|
|
|
229
285
|
| Example | File | Shows |
|
|
230
286
|
| --------------------- | ------------------------ | ------------------------------------------------------------------------------------------------- |
|
|
231
|
-
| `ArgsBargMinimal` | `examples/minimal.ts` |
|
|
287
|
+
| `ArgsBargMinimal` | `examples/minimal.ts` | Smallest embeddable CLI (not a copy template). |
|
|
232
288
|
| `ArgsBargNested` | `examples/nested.ts` | Nested command tree, positional tails, async handlers. |
|
|
233
|
-
| `ArgsBargFormats` | `examples/formats.ts` | `CliValueFormat`, `default`, `ctx.inputs`.
|
|
234
|
-
| `ArgsBargFullExample` | `examples/full-example/` | **
|
|
289
|
+
| `ArgsBargFormats` | `examples/formats.ts` | `CliValueFormat`, `default`, `ctx.inputs`. |
|
|
290
|
+
| `ArgsBargFullExample` | `examples/full-example/` | **Default copy template:** all builtins, Homebrew justfile; options/flags only (no schemagen). |
|
|
291
|
+
| `ArgsBargFullExampleJson` | `examples/full-example-json/` | **Schema-first copy template:** `@sg`, `inputSchema`/`outputSchema`, REST CRUD, SQLite. |
|
|
235
292
|
|
|
236
293
|
|
|
237
294
|
Examples ship in the npm package under `node_modules/argsbarg/examples/`.
|
|
238
295
|
|
|
239
296
|
## Bootstrap a new CLI
|
|
240
297
|
|
|
241
|
-
Copy
|
|
298
|
+
Copy a shipped template into a new directory (`cli` default, or `json` for schema-first):
|
|
242
299
|
|
|
243
|
-
Interactive (TTY):
|
|
300
|
+
Interactive (TTY) — pick template A/B, then key and release repo:
|
|
244
301
|
|
|
245
302
|
```bash
|
|
246
303
|
bunx argsbarg create my-cli
|
|
@@ -250,12 +307,21 @@ Non-interactive:
|
|
|
250
307
|
|
|
251
308
|
```bash
|
|
252
309
|
bunx argsbarg create my-cli \
|
|
310
|
+
--template cli \
|
|
253
311
|
--key my-cli --release-repo org/my-cli --yes
|
|
254
312
|
```
|
|
255
313
|
|
|
314
|
+
Schema-first (`@sg`, JSON schemas, REST CRUD demo):
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
bunx argsbarg create my-api \
|
|
318
|
+
--template json \
|
|
319
|
+
--key my-api --release-repo org/my-api --yes
|
|
320
|
+
```
|
|
321
|
+
|
|
256
322
|
Edit `scripts/create-identity.ts` in the new repo to set `desc` (used by `program.description` and the Homebrew formula).
|
|
257
323
|
|
|
258
|
-
`create` copies the template (including `.cursor/rules/cli-program.mdc`), substitutes `{key}` / `{tap}` / `{releaseRepo}` placeholders
|
|
324
|
+
`create` copies the template (including `.cursor/rules/cli-program.mdc`), substitutes `{key}` / `{tap}` / `{releaseRepo}` placeholders, runs `bun install`, `argsbarg schemagen` (json template only), `bun test`, and `git init` + Initial commit when appropriate.
|
|
259
325
|
|
|
260
326
|
**Git bootstrap:** skipped when the target already has a `.git` directory, or when the target sits inside an existing git work tree (monorepo subfolder). Standalone new directories get an `Initial commit`.
|
|
261
327
|
|
|
@@ -263,24 +329,16 @@ Verify an existing tree: `bunx argsbarg create --check .`
|
|
|
263
329
|
|
|
264
330
|
To refresh Cursor rules in an existing consumer: `bun scripts/merge-cli-program-rule.ts .` and `bun scripts/merge-code-rule.ts .` from an argsbarg checkout (or pass the npm package path to the template).
|
|
265
331
|
|
|
266
|
-
### What the
|
|
332
|
+
### What the copy templates include
|
|
267
333
|
|
|
334
|
+
Both templates ship all builtins (`completion`, `version`, `configure`, `docs`, `mcp`, `http`), Homebrew `justfile` + formula scripts, and `.cursor/rules/`.
|
|
268
335
|
|
|
269
|
-
|
|
|
270
|
-
|
|
|
271
|
-
|
|
|
272
|
-
|
|
|
273
|
-
| `outputSchema` | `src/commands/status/types.ts` → `StatusJsonOutputSchema` from `__generated__/` |
|
|
274
|
-
| Schemagen | `just schemagen` → `argsbarg schemagen` (justfile exports `node_modules/.bin` on `PATH`) |
|
|
275
|
-
| Command layout | `src/commands/<name>/command.ts`; registration in `src/program.ts` |
|
|
276
|
-
| MCP doc topics | `docs.topics` auto-exposed as `<key>://docs/<topic>` resources when docs + MCP enabled |
|
|
277
|
-
| Package import | `from "argsbarg"` (not relative to argsbarg `src/`) |
|
|
278
|
-
| Homebrew distribution | `scripts/formula-shared.ts`, `scripts/dev-formula.ts`, `Formula/`, `justfile` |
|
|
279
|
-
| Dev tooling | Biome (`just format` / `just lint`), TypeScript, colocated tests |
|
|
280
|
-
| Cursor rules | `.cursor/rules/cli-program.mdc`, `.cursor/rules/code.mdc` |
|
|
281
|
-
|
|
336
|
+
| Template | Path | Adds beyond builtins |
|
|
337
|
+
| --- | --- | --- |
|
|
338
|
+
| **cli** (default) | `examples/full-example/` | `echo`, `status` — options/flags only; no schemagen |
|
|
339
|
+
| **json** | `examples/full-example-json/` | `@sg` schemagen, `inputSchema`/`outputSchema`, `render-json`, `workspaces` REST CRUD, in-memory SQLite |
|
|
282
340
|
|
|
283
|
-
|
|
341
|
+
Package import: `from "argsbarg"` (not relative to argsbarg `src/`).
|
|
284
342
|
|
|
285
343
|
```bash
|
|
286
344
|
export PATH="$PATH:$(pwd)/examples"
|
|
@@ -301,6 +359,42 @@ just run status --json
|
|
|
301
359
|
|
|
302
360
|
|
|
303
361
|
|
|
362
|
+
## [Experimental] AI Agent & Copilot Integrations
|
|
363
|
+
|
|
364
|
+
ArgsBarg includes optional experimental features designed to make your CLI and services easily discoverable and executable by modern developer AI agents (such as Cursor, Claude Code, and standard MCP clients). These are entirely opt-in and do not affect the footprint, performance, or stability of the core CLI and HTTP layers.
|
|
365
|
+
|
|
366
|
+
### 1. Model Context Protocol (MCP) Server
|
|
367
|
+
|
|
368
|
+
Opt in by setting `mcpServer: { enabled: true }` on your program root. Running `myapp mcp` starts a JSON-RPC 2.0 stdio server.
|
|
369
|
+
|
|
370
|
+
- **Automatic Tool Exposure** — Every leaf command in your CLI tree becomes an executable MCP tool with inputs automatically generated from your CLI options.
|
|
371
|
+
- **Documentation Resources** — Your CLI structure, JSON schemas, and bundled `docs.topics` are automatically exposed to agents as resources (e.g., `<key>://schema`).
|
|
372
|
+
- **Context-Aware Invocations** — Handlers can read `ctx.invocation` to distinguish between direct CLI, HTTP requests, or headless MCP calls.
|
|
373
|
+
|
|
374
|
+
See **[docs/mcp.md](docs/mcp.md)** for configuration, env bootstrapping, custom resources, Cursor/Claude setup, and protocol details.
|
|
375
|
+
|
|
376
|
+
### 2. IDE Copilot Rules (Cursor / Claude Code)
|
|
377
|
+
|
|
378
|
+
ArgsBarg ships authoring docs under `node_modules/argsbarg/docs/`. Because AI agents do not automatically read inside `node_modules/`, you can copy a thin custom rule into your project:
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
mkdir -p .cursor/rules
|
|
382
|
+
bun scripts/merge-cli-program-rule.ts . \
|
|
383
|
+
node_modules/argsbarg/examples/full-example/.cursor/rules/cli-program.mdc
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
This acts as a "tripwire" that instructs AI agents in your workspace to read ArgsBarg's framework documentation before modifying your command definitions or schemas. See the **Cursor rule** section in [docs/cli-program.md](docs/cli-program.md).
|
|
387
|
+
|
|
388
|
+
### 3. Generated Skills & Workspace Configuration
|
|
389
|
+
|
|
390
|
+
Running `myapp configure --sync` installs a compact `SKILL.md` index and full-reference `reference.md` to `~/.agents/skills/<key>/` when `program.skill: { enabled: true }`.
|
|
391
|
+
|
|
392
|
+
See **[docs/configure.md](docs/configure.md)** and **[docs/ai-skills.md](docs/ai-skills.md)** for developer setup and automated Homebrew pipeline integration.
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
|
|
304
398
|
## Public API overview
|
|
305
399
|
|
|
306
400
|
The package root (`argsbarg` / `src/index.ts`) exports the types and runtime you need to define a schema and run it. Parsing, completion script generation, help rendering, and schema pre-validation live in other modules under `src/` for tests and advanced integrations.
|
|
@@ -311,8 +405,8 @@ The package root (`argsbarg` / `src/index.ts`) exports the types and runtime you
|
|
|
311
405
|
| `CliProgram`, `CliOption`, `CliPositional`, `CliHandler` | Schema and handler types. |
|
|
312
406
|
| `CliOptionKind`, `CliValueFormat`, `CliFallbackMode` | Option kinds, value formats (`duration`, `comma-list`, `date`, `date-time`), and root fallback behavior. |
|
|
313
407
|
| `CliSchemaValidationError` | Thrown when the static command tree violates schema rules. |
|
|
314
|
-
| `CliContext` | Handler context (`ctx.hasFlag`, `ctx.stringOpt`, `ctx.durationOpt`, `ctx.inputs`, `ctx.invocation`, …).
|
|
315
|
-
| `CliLeafInputs` | Record type returned by `ctx.inputs` — coerced option/positional values keyed by schema name.
|
|
408
|
+
| `CliContext` | Handler context (`ctx.hasFlag`, `ctx.stringOpt`, `ctx.durationOpt`, `ctx.inputs`, `ctx.invocation`, …). |
|
|
409
|
+
| `CliLeafInputs` | Record type returned by `ctx.inputs` — coerced option/positional values keyed by schema name. |
|
|
316
410
|
| `Cli` | Runtime: validate + freeze program, `run()`, `invoke()`, `serveMcp()`, `appConfig` getter, `exportCommandSchema()`, `exportAppConfigSchema()`. |
|
|
317
411
|
| `CliInvokeResult`, `CliInvokeKind` | Result types from `cli.invoke()`. |
|
|
318
412
|
| `CliAppConfig`, `CliAppConfigEntry` | App config block on the program root (`entries` metadata overlay + optional `jsonSchema`). |
|
package/docs/README.md
CHANGED
|
@@ -27,7 +27,8 @@ Examples are included in the npm tarball (`package.json` `files`). After `bun ad
|
|
|
27
27
|
| Tier | Path | Use when |
|
|
28
28
|
| --- | --- | --- |
|
|
29
29
|
| Learn | [examples/minimal.ts](../examples/minimal.ts), [examples/nested.ts](../examples/nested.ts), [formats.ts](../examples/formats.ts) | One feature at a time |
|
|
30
|
-
| **Copy** | [examples/full-example/](../examples/full-example/) |
|
|
30
|
+
| **Copy (CLI)** | [examples/full-example/](../examples/full-example/) | Default `create` template — all builtins, Homebrew justfile; no schemagen |
|
|
31
|
+
| **Copy (JSON)** | [examples/full-example-json/](../examples/full-example-json/) | `create --template json` — `@sg`, schemas, REST CRUD, SQLite |
|
|
31
32
|
|
|
32
33
|
## Framework docs vs consumer docgen
|
|
33
34
|
|
|
@@ -35,6 +36,6 @@ Examples are included in the npm tarball (`package.json` `files`). After `bun ad
|
|
|
35
36
|
| --- | --- | --- |
|
|
36
37
|
| **Framework docs** | How argsbarg works; authoring conventions | This directory — shipped in `node_modules/argsbarg/docs/` after `bun add argsbarg` |
|
|
37
38
|
| **Consumer docgen** | *Your* command tree, API, MCP guide for *your* app | `myapp docs cli`, `docs cli-schema`, `docs mcp` — written to `./docs/` with `--save` |
|
|
38
|
-
| **Cursor rule** | Thin tripwire telling agents to read framework docs | `node_modules/argsbarg/examples/full-example/.cursor/rules/cli-program.mdc` —
|
|
39
|
+
| **Cursor rule** | Thin tripwire telling agents to read framework docs | `node_modules/argsbarg/examples/full-example-json/.cursor/rules/cli-program.mdc` — merge default for consumers; `create` includes a template copy |
|
|
39
40
|
|
|
40
41
|
Agents do **not** load `node_modules/argsbarg/docs/` unless your repo references them (Cursor rule, `AGENTS.md`, or an `alwaysApply` project rule). Generated `./docs/cli.md` in a consumer repo describes **your** CLI, not argsbarg itself.
|
package/docs/ai-skills.md
CHANGED
|
@@ -2,29 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
> This feature is experimental.
|
|
4
4
|
|
|
5
|
-
ArgsBarg can generate
|
|
5
|
+
ArgsBarg can generate agent skill directories (`skill.md` + `reference.md`) from your CLI schema and install them to `~/.agents/skills/<key>/` per the [.agents protocol](https://dotagentsprotocol.com/).
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Enable on the program root
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
```typescript
|
|
10
|
+
export const program = {
|
|
11
|
+
key: "myapp",
|
|
12
|
+
skill: { enabled: true },
|
|
13
|
+
...
|
|
14
|
+
} satisfies CliProgram;
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
When `skill.enabled` is `true`, Homebrew `post_install` (`configure --sync --yes`) installs and refreshes the skill. When omitted or `enabled` is not `true`, no skill is installed.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
- Claude Code: `~/.claude/skills/<dir>/` when `~/.claude` exists
|
|
21
|
-
- Codex: `~/.codex/skills/<dir>/` when `codex` is on PATH
|
|
22
|
-
- OpenCode: `~/.config/opencode/skills/<dir>/`
|
|
23
|
-
- OpenClaw: `~/.openclaw/skills/<dir>/` when `openclaw` is on PATH
|
|
19
|
+
The skill directory name is the program `key` with `/`, `\`, and spaces replaced by `_` (e.g. `sqsp-qa`, `full-example`).
|
|
24
20
|
|
|
25
|
-
|
|
21
|
+
## Install via `configure --sync`
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
myapp configure --sync --yes
|
|
25
|
+
```
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Skills are not prompted during interactive `configure` — install and uninstall are automatic when `skill.enabled` is set (brew install/uninstall and `--sync` / `--remove-all`).
|
|
28
28
|
|
|
29
29
|
## Programmatic install
|
|
30
30
|
|
|
@@ -32,28 +32,41 @@ Existing skill directories are removed and rewritten on each install.
|
|
|
32
32
|
import { cliSkillInstall } from "argsbarg/skill/install"; // internal module
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
`cliSkillInstall(root, { global: true, rimraf: true })` returns changed file paths.
|
|
36
36
|
|
|
37
37
|
## Generated content
|
|
38
38
|
|
|
39
|
-
- **`
|
|
39
|
+
- **`skill.md`** — [.agents protocol](https://dotagentsprotocol.com/) frontmatter (`id`, `name`, `description`, `enabled`), compact command index, pitfalls, client setup, and a pointer to `reference.md`
|
|
40
|
+
- **`SKILL.md`** — compatibility copy of `skill.md` for tools that expect uppercase filenames
|
|
40
41
|
- **`reference.md`** — full `docs cli` markdown reference
|
|
41
42
|
|
|
42
|
-
Installed files include an HTML comment hint (`Generated by myapp configure; do not edit.`) after
|
|
43
|
+
Installed files include an HTML comment hint (`Generated by myapp configure; do not edit.`) after skill frontmatter and at the top of `reference.md`.
|
|
44
|
+
|
|
45
|
+
## Client setup
|
|
46
|
+
|
|
47
|
+
| Client | Skill path |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
| Cursor, Codex, Copilot, most agents | `~/.agents/skills/<key>/` (auto via `configure --sync`) |
|
|
50
|
+
| Claude Code | Manual symlink to `~/.claude/skills/<key>/` |
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
mkdir -p ~/.claude/skills
|
|
54
|
+
ln -sf ~/.agents/skills/<key> ~/.claude/skills/<key>
|
|
55
|
+
```
|
|
43
56
|
|
|
44
|
-
Skills describe **shell invocation only** — no MCP setup
|
|
57
|
+
Skills describe **shell invocation only** — no MCP setup or `tools/call` guidance. Use **`myapp docs mcp`** (when `docs` and `mcpServer` are enabled) or connect the MCP server for agent execution.
|
|
45
58
|
|
|
46
59
|
## MCP vs skills vs docs
|
|
47
60
|
|
|
48
61
|
| Mechanism | Role |
|
|
49
62
|
| --- | --- |
|
|
50
63
|
| **`myapp mcp`** (requires `mcpServer`) | Runtime tool execution over MCP |
|
|
51
|
-
| **`
|
|
64
|
+
| **`program.skill.enabled`** + **`configure --sync`** | Persists optimized skill bundle at `~/.agents/skills/<key>/` |
|
|
52
65
|
| **`myapp docs`** (requires `docs`) | Bundled markdown on stdout (`docs mcp` when MCP enabled) |
|
|
53
66
|
|
|
54
|
-
`
|
|
67
|
+
`skill.md` is the routing index; `reference.md` matches `docs cli`. Prefer `configure --sync` over `docs skill` for installed agents. See [cli-program.md](cli-program.md).
|
|
55
68
|
|
|
56
|
-
**Claude Code plugin** (`mcpServer.claudePlugin: true` → `mcp bundle` writes `dist/claude-plugin/<name>.zip`) ships a separate MCP pointer skill (`SKILL.md` only) that routes agents to the bundled MCP server. This is a **dist artifact**, not installed via `configure`.
|
|
69
|
+
**Claude Code plugin** (`mcpServer.claudePlugin: true` → `mcp bundle` writes `dist/claude-plugin/<name>.zip`) ships a separate MCP pointer skill (`SKILL.md` only) that routes agents to the bundled MCP server. This is a **dist artifact**, not installed via `configure`.
|
|
57
70
|
|
|
58
71
|
See also:
|
|
59
72
|
|