{"_id":"@bonhollow/agentforge","_rev":"6-bacdd822d2ee31180a2cf8ac87fcd7ee","name":"@bonhollow/agentforge","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@bonhollow/agentforge","version":"0.1.0","_id":"@bonhollow/agentforge@0.1.0","maintainers":[{"name":"bonhollow","email":"bonollo99@gmail.com"}],"bin":{"af":"dist/cli/index.js"},"dist":{"shasum":"81b8a998400cb75069d121c6013145bd4c5cf6ef","tarball":"https://registry.npmjs.org/@bonhollow/agentforge/-/agentforge-0.1.0.tgz","fileCount":276,"integrity":"sha512-rwTZtFqkdx6yGddu1dp/Yu6D1qMUEArm05fLyQ5sdMQ1FNqTj6I3Q1uVNeBZzhqThKV1v5Uaack7k1Jb8QFcEg==","signatures":[{"sig":"MEUCIHBV3I1Vvt+KwxGhRUfzITcovOppTi6Laudu9NPZaRs/AiEAvdpc0KrdoupSyXiI1DlWTOuxDykIqD/vNCPfVoqMGfY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1266871},"type":"module","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js","./*":"./dist/*.js"},"gitHead":"9a6721f24e76b1c94a08d00fb8e94605f86c914e","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest run","build":"tsc","start":"node dist/cli/index.js","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"bonhollow","email":"bonollo99@gmail.com"},"_npmVersion":"11.0.0","description":"Universal CLI to manage, sync and export AI agents, prompts and skills across every coding platform","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.24.2","defu":"^6.1.4","diff":"^7.0.0","citty":"^0.1.6","figlet":"^1.11.0","consola":"^3.4.0","js-yaml":"^4.1.0","gray-matter":"^4.0.3","@clack/prompts":"^1.4.0","@supabase/supabase-js":"^2.49.1","vscode-languageserver":"^9.0.1","vscode-languageserver-textdocument":"^1.0.12"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.22.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/diff":"^7.0.1","@types/node":"^22.13.9","@types/figlet":"^1.7.0","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/agentforge_0.1.0_1780040925360_0.34933294148106","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bonhollow/agentforge","version":"0.1.1","_id":"@bonhollow/agentforge@0.1.1","maintainers":[{"name":"bonhollow","email":"bonollo99@gmail.com"}],"bin":{"af":"dist/cli/index.js"},"dist":{"shasum":"ed22767e5b7a9c331822529edfea5f886ffc3619","tarball":"https://registry.npmjs.org/@bonhollow/agentforge/-/agentforge-0.1.1.tgz","fileCount":276,"integrity":"sha512-2FAWX8WXgHL0mu5aeb9iLU55ST72Ma2T+GFepgXuMVlIzLtn0BKh7/0ZBDbp0w4UQ7oV/uWnLqpZpGonFlfaLQ==","signatures":[{"sig":"MEYCIQCojvAUtjEQBlLfViqa0HKDIxNfXbgkV3UWe7YePzh7qQIhAPHE7GFNA36FsFTkdy/TDOSXelsK9ym/G9IC2KWBYK7h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1266871},"type":"module","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js","./*":"./dist/*.js"},"gitHead":"0b07d6b2975e1bf7819e9c267e26267929f20138","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest run","build":"tsc","start":"node dist/cli/index.js","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"bonhollow","email":"bonollo99@gmail.com"},"_npmVersion":"11.0.0","description":"Universal CLI to manage, sync and export AI agents, prompts and skills across every coding platform","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.24.2","defu":"^6.1.4","diff":"^7.0.0","citty":"^0.1.6","figlet":"^1.11.0","consola":"^3.4.0","js-yaml":"^4.1.0","gray-matter":"^4.0.3","@clack/prompts":"^1.4.0","@supabase/supabase-js":"^2.49.1","vscode-languageserver":"^9.0.1","vscode-languageserver-textdocument":"^1.0.12"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.22.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/diff":"^7.0.1","@types/node":"^22.13.9","@types/figlet":"^1.7.0","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/agentforge_0.1.1_1780041201965_0.6043633914621782","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bonhollow/agentforge","version":"0.1.2","_id":"@bonhollow/agentforge@0.1.2","maintainers":[{"name":"bonhollow","email":"bonollo99@gmail.com"}],"bin":{"af":"dist/cli/index.js"},"dist":{"shasum":"d16c87076f23afd256a6f9c83c0515f6f06f5a34","tarball":"https://registry.npmjs.org/@bonhollow/agentforge/-/agentforge-0.1.2.tgz","fileCount":284,"integrity":"sha512-5Hc99YmR2NEJjW1zLDeAC06sEEfMZUHrdZWIZ+hNmfU7ZOxkDBnrWFLK7YR37szUX+xhxjI9IcSIZTIz7eTgsg==","signatures":[{"sig":"MEQCIHb6NyDvkkCp2PqWljg5SpPA0CB/DcvKz7gpqEJHOL0iAiBHwVTMkgAxNQ7sj9lYP32Ba8HOD7jeDYQVouocCFwjkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1294202},"type":"module","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js","./*":"./dist/*.js"},"gitHead":"92c110fd8b4363b6f983f10e4299a4780f73ef34","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest run","build":"tsc","start":"node dist/cli/index.js","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"bonhollow","email":"bonollo99@gmail.com"},"_npmVersion":"11.0.0","description":"Universal CLI to manage, sync and export AI agents, prompts and skills across every coding platform","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.24.2","defu":"^6.1.4","diff":"^7.0.0","citty":"^0.1.6","figlet":"^1.11.0","consola":"^3.4.0","js-yaml":"^4.1.0","gray-matter":"^4.0.3","@clack/prompts":"^1.4.0","@supabase/supabase-js":"^2.49.1","vscode-languageserver":"^9.0.1","vscode-languageserver-textdocument":"^1.0.12"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.22.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/diff":"^7.0.1","@types/node":"^22.13.9","@types/figlet":"^1.7.0","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/agentforge_0.1.2_1780400176662_0.9973953825860926","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bonhollow/agentforge","version":"0.1.3","_id":"@bonhollow/agentforge@0.1.3","maintainers":[{"name":"bonhollow","email":"bonollo99@gmail.com"}],"bin":{"af":"dist/cli/index.js"},"dist":{"shasum":"306dceb47fb55aaa7c7579abc8a802b1e0b012de","tarball":"https://registry.npmjs.org/@bonhollow/agentforge/-/agentforge-0.1.3.tgz","fileCount":288,"integrity":"sha512-SPM6tY7QtstGTJKxyUPR8CbTN5D5StArRADK8y9V6USzz5e7zmSVYoR614oQZFCPWF7+SepneT2BpVkMM60P1A==","signatures":[{"sig":"MEYCIQDAx/nF9xDZCxDycKckmArLXP+tZKDKealPOBipBkpYBQIhAMa/aQWpkG7GdfCi3rMubkCZxmNgarRWz70WdHDFKR0H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1306970},"type":"module","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js","./*":"./dist/*.js"},"gitHead":"149444292e914d87a7bd8f6e169da61f05eeff7e","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest run","build":"tsc","start":"node dist/cli/index.js","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"bonhollow","email":"bonollo99@gmail.com"},"_npmVersion":"11.0.0","description":"Universal CLI to manage, sync and export AI agents, prompts and skills across every coding platform","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.24.2","defu":"^6.1.4","diff":"^7.0.0","citty":"^0.1.6","figlet":"^1.11.0","consola":"^3.4.0","js-yaml":"^4.1.0","gray-matter":"^4.0.3","@clack/prompts":"^1.4.0","@supabase/supabase-js":"^2.49.1","vscode-languageserver":"^9.0.1","vscode-languageserver-textdocument":"^1.0.12"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.22.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/diff":"^7.0.1","@types/node":"^22.13.9","@types/figlet":"^1.7.0","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/agentforge_0.1.3_1780428349556_0.082713350691338","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bonhollow/agentforge","version":"0.1.4","_id":"@bonhollow/agentforge@0.1.4","maintainers":[{"name":"bonhollow","email":"bonollo99@gmail.com"}],"bin":{"af":"dist/cli/index.js"},"dist":{"shasum":"db7162bba03f6cdcd86ed7e50410165933bf1edc","tarball":"https://registry.npmjs.org/@bonhollow/agentforge/-/agentforge-0.1.4.tgz","fileCount":292,"integrity":"sha512-uQlPjkCXVGLXv95sMUTf0JrbTc1vqAZ0eSOz15pOyjWNZJ1t0W3TVuWBbUNdEh1lvVo3QAUb4FpXDu/fM3sRRQ==","signatures":[{"sig":"MEYCIQC4mUiWD94y3gqx6dkufebwKTFjjaK8cEeVlgxfRAM0ZAIhAN/IzY6nLKcxMO/WQ51vPvwDGFBjtOTJKJHn0pDaTTn+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1330367},"type":"module","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js","./*":"./dist/*.js"},"gitHead":"5a6906b4ac9271b107ab492ff8f27f54f8aa3c77","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest run","build":"tsc","start":"node dist/cli/index.js","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"bonhollow","email":"bonollo99@gmail.com"},"_npmVersion":"11.0.0","description":"Universal CLI to manage, sync and export AI agents, prompts and skills across every coding platform","directories":{},"_nodeVersion":"22.9.0","dependencies":{"zod":"^3.24.2","defu":"^6.1.4","diff":"^7.0.0","citty":"^0.1.6","figlet":"^1.11.0","consola":"^3.4.0","js-yaml":"^4.1.0","gray-matter":"^4.0.3","@clack/prompts":"^1.4.0","@supabase/supabase-js":"^2.49.1","vscode-languageserver":"^9.0.1","vscode-languageserver-textdocument":"^1.0.12"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.22.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/diff":"^7.0.1","@types/node":"^22.13.9","@types/figlet":"^1.7.0","@types/js-yaml":"^4.0.9"},"_npmOperationalInternal":{"tmp":"tmp/agentforge_0.1.4_1780477309344_0.5614303700793353","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@bonhollow/agentforge","version":"0.1.5","description":"Universal CLI to manage, sync and export AI agents, prompts and skills across every coding platform","type":"module","bin":{"af":"dist/cli/index.js"},"exports":{".":"./dist/index.js","./*":"./dist/*.js"},"scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/cli/index.js","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","lint":"eslint src/"},"dependencies":{"@clack/prompts":"^1.4.0","@supabase/supabase-js":"^2.49.1","citty":"^0.1.6","consola":"^3.4.0","defu":"^6.1.4","diff":"^7.0.0","figlet":"^1.11.0","gray-matter":"^4.0.3","js-yaml":"^4.1.0","vscode-languageserver":"^9.0.1","vscode-languageserver-textdocument":"^1.0.12","zod":"^3.24.2"},"devDependencies":{"@types/diff":"^7.0.1","@types/figlet":"^1.7.0","@types/js-yaml":"^4.0.9","@types/node":"^22.13.9","eslint":"^9.22.0","typescript":"^5.8.2","vitest":"^3.0.8"},"engines":{"node":">=20.0.0"},"_id":"@bonhollow/agentforge@0.1.5","gitHead":"eb5c4967e13a7ef118590d2b34d4eccc720e9a70","_nodeVersion":"22.9.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-wSXASfRwlX6SseCgrDAZhwzp99tlWeL4I5V243THjlFd/NxsZxzS9eR6QfMXcDRo/uqtadrMXV7cJCrzAqJFeQ==","shasum":"1f763fcbb12da2051401180550bd8bb36061cee7","tarball":"https://registry.npmjs.org/@bonhollow/agentforge/-/agentforge-0.1.5.tgz","fileCount":304,"unpackedSize":1381568,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIALYTFfIGe8MpD66o6Zp15lqk389+p3pqIkRNd+34HAMAiB2tKd4B5jma08IVSMug8y4gw8UZTDZ+SAxkhtzXDnJOw=="}]},"_npmUser":{"name":"bonhollow","email":"bonollo99@gmail.com"},"directories":{},"maintainers":[{"name":"bonhollow","email":"bonollo99@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agentforge_0.1.5_1780488349389_0.033870850832380395"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-29T07:48:45.257Z","modified":"2026-06-03T12:05:49.631Z","0.1.0":"2026-05-29T07:48:45.502Z","0.1.1":"2026-05-29T07:53:22.125Z","0.1.2":"2026-06-02T11:36:16.880Z","0.1.3":"2026-06-02T19:25:49.774Z","0.1.4":"2026-06-03T09:01:49.565Z","0.1.5":"2026-06-03T12:05:49.536Z"},"description":"Universal CLI to manage, sync and export AI agents, prompts and skills across every coding platform","maintainers":[{"name":"bonhollow","email":"bonollo99@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/Bonhollow/agentforge/main/static/logo.png\" alt=\"AgentForge\" width=\"640\">\n</p>\n\n# AgentForge\n\n> Manage, sync, and export AI agents, prompts, and skills across every coding platform.\n\nAgentForge is an **all-in-one CLI and TUI** for building, organizing, and deploying AI agents. Whether you use Claude Code, Cursor, Windsurf, OpenCode, or Codex — define your agents once in a universal format and export to any platform.\n\n```bash\naf          # Launch the interactive TUI\naf <cmd>    # Use CLI subcommands directly\n```\n\n---\n\n## Features\n\n### Universal Agent Registry\n\nDefine agents, skills, and prompts in a single `.agentforge/` directory using a universal schema. Each element is a file on disk — YAML for agents, Markdown with frontmatter for skills and prompts.\n\n- **Agents** — system prompt, linked skills, MCP tools, per-platform overrides, `extends` inheritance\n- **Skills** — reusable Markdown instructions linkable to any agent\n- **Prompts** — template-based prompts with `{{variable}}` placeholders\n- **Variables** — project-level key-value substitution across all elements\n- **Platform overrides** — per-platform system prompt, skills, and tool overrides\n- **Active agent** — set a project-level or global default agent\n\n### Interactive TUI\n\nPress `af` with no arguments to launch the full-screen terminal UI with keyboard navigation:\n\n| Key | Category |\n|-----|----------|\n| `E` | Agents — create, edit, list, fork, remove, bulk operations |\n| `M` | MCP — register servers, attach tools to agents |\n| `S` | Skills — create, edit, link to agents |\n| `P` | Prompts — create, edit, link, manage variables |\n| `L` | Platform — export to any coding platform |\n| `O` | Models — register providers, auto-detect, test with streaming |\n| `I` | Inspect — validate, preview, test, bench, search, graph, lint |\n| `H` | History — snapshots, diff, rollback, audit log |\n| `U` | Account — auth, sync, share, pull |\n| `/` | Search all elements by keyword |\n| `?` | Contextual help for each action |\n\n### CLI Commands\n\nAll TUI actions are also available as CLI subcommands:\n\n```\n  af init       Scaffold .agentforge/ directory\n  af add        Create a new agent, skill, or prompt\n  af list       List all elements\n  af show       Inspect an element\n  af edit       Edit an element\n  af remove     Remove an element\n  af fork       Duplicate an element\n  af export     Export to platform-native formats\n  af import     Import from platform configs\n  af validate   Validate and lint all schemas\n  af test       Run an agent against a model\n  af bench      Benchmark an agent against fixtures\n  af preview    Preview resolved agent output\n  af search     Full-text search across all elements\n  af graph      Show agent-to-skill dependency graph\n  af lint       Validate agentforge.json config\n  af use        Set the active agent\n  af snapshot   Create, list, restore snapshots\n  af rollback   Restore a previous snapshot\n  af diff       Diff local vs remote registry\n  af audit      Browse the audit log\n  af sync       Push/pull registry to Supabase\n  af auth       Login, logout, status\n  af share      Publish an element to the registry\n  af pull       Fetch shared elements\n  af version    Show version\n  af upgrade    Check for updates\n  af bulk       Bulk rename, retag, expose, version\n  af lsp        Start Language Server Protocol server\n```\n\n### Multi-Platform Export\n\nExport agents, skills, and MCP tools to any supported platform with a single command:\n\n| Platform | Config Files | Format |\n|----------|-------------|--------|\n| **Claude Code** | `CLAUDE.md`, `.claude/commands/*.md`, `.mcp.json` | System prompt + skill commands |\n| **Cursor** | `.cursorrules`, `.cursor/rules/*.md`, `.cursor/mcp.json` | Rules files |\n| **Windsurf** | `.windsurfrules`, `.windsurf/rules/*.md`, `.windsurf/mcp_config.json` | Rules + MCP config |\n| **OpenCode** | `opencode.json`, `.opencode/agents/*.md` | Agent configs + skill subagents |\n| **Codex** | `AGENTS.md`, `.codex/mcp.json`, `.codex/config.toml` | Agent document + TOML MCP |\n\nEach export run:\n- Applies variable substitution and platform overrides\n- Filters elements via `.agentforgeignore`\n- Checks token budgets against platform limits\n- Runs pre/post export hooks\n- Creates a diff-able snapshot before writing\n- Tracks changed elements via content hashing\n- Audits every operation\n\n### MCP Server Registry\n\nRegister Model Context Protocol servers globally and link them to agents as tools:\n\n- URL-based servers (REST endpoints)\n- Command-based servers (local processes)\n- Auto-resolve server URLs during export for each platform\n- Link/unlink servers to any agent\n\n### Model Provider Registry\n\nRegister and manage local and cloud model providers:\n\n- **Ollama** — auto-detect on `localhost:11434`\n- **LM Studio** — auto-detect on `localhost:1234`\n- **HuggingFace** — API-based with `HF_HOME` storage\n- **OpenAI-compatible** — any provider with a `/v1/chat/completions` endpoint\n- **Centralized storage** — models downloaded to `.agentforge/models/` with env file generation\n- **Streaming test** — interactive streaming response from any registered model\n- **Storage scan** — view downloaded model file sizes\n\n### Validation & Linting\n\n- Zod-based schema validation for all elements\n- Auto-fix common issues (missing name, version, description)\n- Configurable lint rules: max token estimates, banned phrases, required sections\n- Token budget estimation with platform-specific warnings\n\n### Snapshots & Rollback\n\n- Named snapshots of the entire registry\n- One-click rollback to any previous state\n- Side-by-side diff between snapshots\n- Full audit log of all operations\n\n### Cloud Sync (Supabase)\n\n- Push/pull registry to Supabase\n- Share individual elements with other users\n- Pull shared elements from community members\n\n---\n\n## Quick Start\n\n### Install via Homebrew\n\n```bash\nbrew tap Bonhollow/agentforge https://github.com/Bonhollow/agentforge\nbrew install agentforge\n```\n\n### Install via npm\n\n```bash\nnpm install -g agentforge\n```\n\n### Get started\n\n```bash\naf init       # Initialize a new project\naf            # Launch the TUI\naf list       # Or use CLI directly\naf add agent my-agent --template senior-dev\naf export claude_code\n```\n\n## Configuration\n\nThe `.agentforge/` directory structure:\n\n```\n.agentforge/\n  agents/            # Agent YAML files\n  skills/            # Skill Markdown files\n  prompts/           # Prompt Markdown files\n  mcp.json           # Global MCP server registry\n  models.json        # Model provider registry\n  config.yaml        # Project configuration\n  agentforge.lock    # Export state tracking\n  audit.log          # Operation audit trail\n  models.env         # Generated model storage env vars\n  models/            # Centralized model storage\n    ollama/\n    lm-studio/\n    hf/\n  .snapshots/        # Registry snapshots\n  fixtures/          # Test fixtures per agent\n```\n\n## Requirements\n\n- Node.js >= 20\n- npm or yarn\n\n## License\n\nMIT\n","readmeFilename":"README.md"}