{"id":49804959,"url":"https://github.com/spiritledsoftware/caplets","last_synced_at":"2026-06-17T18:00:55.500Z","repository":{"id":357249923,"uuid":"1236092346","full_name":"spiritledsoftware/caplets","owner":"spiritledsoftware","description":"Give your agent capabilities, not tools","archived":false,"fork":false,"pushed_at":"2026-06-12T12:27:41.000Z","size":3177,"stargazers_count":7,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-12T14:18:58.365Z","etag":null,"topics":["agents","ai","mcp","openapi","skills"],"latest_commit_sha":null,"homepage":"https://caplets.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spiritledsoftware.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":["ian-pascoe","spiritledsoftware"]}},"created_at":"2026-05-12T00:12:42.000Z","updated_at":"2026-06-04T22:51:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/spiritledsoftware/caplets","commit_stats":null,"previous_names":["spiritledsoftware/caplets"],"tags_count":117,"template":false,"template_full_name":null,"purl":"pkg:github/spiritledsoftware/caplets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiritledsoftware%2Fcaplets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiritledsoftware%2Fcaplets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiritledsoftware%2Fcaplets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiritledsoftware%2Fcaplets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spiritledsoftware","download_url":"https://codeload.github.com/spiritledsoftware/caplets/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiritledsoftware%2Fcaplets/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34459619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","ai","mcp","openapi","skills"],"created_at":"2026-05-12T18:04:09.309Z","updated_at":"2026-06-17T18:00:55.475Z","avatar_url":"https://github.com/spiritledsoftware.png","language":"TypeScript","funding_links":["https://github.com/sponsors/ian-pascoe","https://github.com/sponsors/spiritledsoftware"],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/caplets-icon.png\" alt=\"Caplets logo\" width=\"120\" height=\"120\" /\u003e\n\n  \u003ch1\u003eCaplets\u003c/h1\u003e\n\n  \u003cp\u003e\n    \u003cstrong\u003eGive your agent capabilities, not giant tool walls.\u003c/strong\u003e\u003cbr /\u003e\n    Caplets wraps MCP servers, APIs, and commands behind focused capability cards.\n  \u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://www.npmjs.com/package/caplets\"\u003e\u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/v/caplets?style=flat-square\u0026color=E0582F\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/spiritledsoftware/caplets/actions/workflows/ci.yml\"\u003e\u003cimg alt=\"CI\" src=\"https://img.shields.io/github/actions/workflow/status/spiritledsoftware/caplets/ci.yml?branch=main\u0026style=flat-square\u0026label=ci\u0026color=E0582F\" /\u003e\u003c/a\u003e\n    \u003ca href=\"LICENSE\"\u003e\u003cimg alt=\"MIT License\" src=\"https://img.shields.io/badge/license-MIT-F6E8C8?style=flat-square\u0026labelColor=1F2018\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://caplets.dev\"\u003e\u003cstrong\u003ecaplets.dev\u003c/strong\u003e\u003c/a\u003e\n    ·\n    \u003ca href=\"https://docs.caplets.dev\"\u003e\u003cstrong\u003edocs.caplets.dev\u003c/strong\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n---\n\nCaplets gives coding agents a Code Mode surface for MCP servers, APIs, and commands. Instead\nof exposing every downstream operation as a giant tool list, each backend becomes a typed\n`caplets.\u003cid\u003e` handle the agent can inspect, search, call, filter, join, and summarize inside\none compact workflow.\n\nProgressive discovery is still available when you want visible wrapper tools, but Code Mode is\nthe default exposure for configured backends.\n\nCaplets can wrap:\n\n- MCP servers\n- OpenAPI, GraphQL, and simple HTTP APIs\n- Curated repository CLI commands\n- Shared Caplet files from this repo's `caplets/` catalog\n\n## Quick Start\n\nFull setup and configuration docs are available at [docs.caplets.dev](https://docs.caplets.dev/).\n\nInstall the CLI and wire it into your agent:\n\n```sh\nnpm install -g caplets\ncaplets setup\n```\n\nInstall a no-auth example Caplet and try it from your agent:\n\n```sh\ncaplets install spiritledsoftware/caplets osv\n```\n\nOr add Caplets manually to any MCP client:\n\n```json\n{\n  \"mcpServers\": {\n    \"caplets\": {\n      \"command\": \"caplets\",\n      \"args\": [\"serve\"]\n    }\n  }\n}\n```\n\n## Use Caplets\n\nAdd your own capability sources:\n\n```sh\ncaplets add mcp docs --command npx --arg -y --arg @upstash/context7-mcp\ncaplets add openapi users --spec ./openapi.json --base-url https://api.example.com\ncaplets add graphql catalog --endpoint-url https://api.example.com/graphql --schema ./schema.graphql\ncaplets add http status-api --base-url https://api.example.com --action get_status:GET:/status/{service}\ncaplets add cli repo-tools --repo . --include git,gh,package\n```\n\nInspect and call them from the CLI:\n\n```sh\ncaplets list\ncaplets inspect osv\ncaplets search-tools osv vulnerability\ncaplets get-tool osv query_package_version\ncaplets call-tool osv query_package_version --args '{\"name\":\"react\",\"ecosystem\":\"npm\",\"version\":\"18.2.0\"}'\n```\n\nMCP-backed Caplets also support resources, resource templates, prompts, and argument\ncompletion. Direct CLI commands print Markdown by default; pass `--format json` for\nmachine-readable output. In agent sessions, Code Mode keeps the same operations behind typed\nhandles so discovery, execution, filtering, and synthesis can happen in one call.\n\n## Agent Surfaces\n\nCaplets works as a regular MCP server through `caplets serve`. By default, that server exposes\nCode Mode for the configured backends. Caplets also has native integrations for agents that can\nload packages directly:\n\n| Agent                                     | Setup                                                                                           |\n| ----------------------------------------- | ----------------------------------------------------------------------------------------------- |\n| Codex, Claude Code, and other MCP clients | `caplets setup` or `caplets serve`                                                              |\n| OpenCode                                  | [`@caplets/opencode`](https://github.com/spiritledsoftware/caplets/tree/main/packages/opencode) |\n| Pi                                        | [`@caplets/pi`](https://github.com/spiritledsoftware/caplets/tree/main/packages/pi)             |\n\n`caplets setup` uses each harness's MCP configuration command:\n\n```sh\ncodex mcp add caplets -- caplets serve\nclaude mcp add --transport stdio --scope user caplets -- caplets serve\n```\n\nEquivalent local Codex config:\n\n```toml\n[mcp_servers.caplets]\ncommand = \"caplets\"\nargs = [\"serve\"]\n```\n\nFor a remote or Cloud-backed MCP server, point the client at `caplets attach` instead:\n\n```toml\n[mcp_servers.caplets]\ncommand = \"caplets\"\nargs = [\"attach\"]\n```\n\n```json\n{\n  \"mcpServers\": {\n    \"caplets\": {\n      \"command\": \"caplets\",\n      \"args\": [\"attach\"]\n    }\n  }\n}\n```\n\nNative integrations expose `caplets__code_mode` for multi-step TypeScript workflows over\ngenerated `caplets.\u003cid\u003e` handles. Progressive exposure adds `caplets__\u003cid\u003e` tools; direct\nexposure adds operation-level tools such as `caplets__\u003cid\u003e__\u003coperation\u003e`.\n\nRemote mode is available with `caplets attach`, self-hosted HTTP service settings, or\nCaplets Cloud auth:\n\n```sh\nexport CAPLETS_MODE=remote\nexport CAPLETS_REMOTE_URL=https://caplets.example.com/caplets\nexport CAPLETS_REMOTE_TOKEN=...\n\ncaplets cloud auth login\nCAPLETS_MODE=cloud CAPLETS_REMOTE_URL=https://cloud.caplets.dev opencode\n```\n\n## Benchmark\n\nThe deterministic benchmark compares flat MCP exposure with Caplets over the same mock\nservers:\n\n| Initial surface         |    Direct MCP |      Caplets |     Reduction |\n| ----------------------- | ------------: | -----------: | ------------: |\n| Visible tools           |           215 |            7 |   96.7% fewer |\n| Serialized payload      |  63,250 bytes | 12,720 bytes | 79.9% smaller |\n| Approx. context surface | 15,813 tokens | 3,180 tokens |  12,633 fewer |\n\nThe landing-page live Pi eval reports Caplets Code Mode passing the same 10/10 real-world\nlarge MCP tasks as direct MCP and Executor.sh while using 72.0% fewer request + output\ntokens than direct vanilla MCP. Live runs are model- and environment-dependent; the\ndeterministic benchmark is the reproducible claim.\n\nSee [docs/benchmarks/coding-agent.md](https://github.com/spiritledsoftware/caplets/blob/main/docs/benchmarks/coding-agent.md) for methodology and reproduction commands.\nSee [docs.caplets.dev/changelog](https://docs.caplets.dev/changelog/) for public release notes.\n\n## Repository\n\nThis monorepo uses pnpm. Published packages support Node.js `\u003e=22`; repo verification uses\nthe root toolchain, which requires Node.js `\u003e=24`.\n\n```sh\npnpm install --frozen-lockfile\npnpm verify\n```\n\nUseful focused checks:\n\n```sh\npnpm format:check\npnpm lint\npnpm typecheck\npnpm test\npnpm benchmark:check\npnpm build\n```\n\nPackage map:\n\n- `packages/core` - runtime, config, Code Mode, backends, MCP server, remote attach\n- `packages/cli` - published `caplets` binary\n- `packages/opencode` - native OpenCode plugin\n- `packages/pi` - native Pi extension\n- `packages/benchmarks` - deterministic and opt-in live benchmarks\n- `apps/landing` - public site at `caplets.dev`\n- `apps/docs` - public docs site at `docs.caplets.dev`\n\nLong-lived docs:\n\n- [Code Mode PRD](https://github.com/spiritledsoftware/caplets/blob/main/docs/product/caplets-code-mode-prd.md)\n- [Architecture](https://github.com/spiritledsoftware/caplets/blob/main/docs/architecture.md)\n- [ADR 0001: Code Mode default exposure](https://github.com/spiritledsoftware/caplets/blob/main/docs/adr/0001-code-mode-default-exposure.md)\n- [Benchmark methodology](https://github.com/spiritledsoftware/caplets/blob/main/docs/benchmarks/coding-agent.md)\n- [Native integrations](https://github.com/spiritledsoftware/caplets/blob/main/docs/native-integrations.md)\n- [Project Binding](https://github.com/spiritledsoftware/caplets/blob/main/docs/project-binding.md)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspiritledsoftware%2Fcaplets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspiritledsoftware%2Fcaplets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspiritledsoftware%2Fcaplets/lists"}