{"_id":"@eddyli1989/agent-spec","_rev":"2-045183513e8d7e7169f93f739af990b4","name":"@eddyli1989/agent-spec","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@eddyli1989/agent-spec","version":"0.1.0","keywords":["ai","agent","codex","claude","opencode","mcp","cli"],"license":"MIT","_id":"@eddyli1989/agent-spec@0.1.0","maintainers":[{"name":"eddyli1989","email":"suckli45@gmail.com"}],"homepage":"https://github.com/ujoyli/agent-spec#readme","bugs":{"url":"https://github.com/ujoyli/agent-spec/issues"},"bin":{"agentspec":"dist/src/cli.js"},"dist":{"shasum":"190c5c93a28789a252383445566d1879875f71b8","tarball":"https://registry.npmjs.org/@eddyli1989/agent-spec/-/agent-spec-0.1.0.tgz","fileCount":24,"integrity":"sha512-WaJQ6EppaMWWhaRQ5UdPw9dK7ZsdZoFPQrc7sgH8psGTkNygHHxtoAnxBntHHi10V4zCZ53flrCsQI3kWswRrg==","signatures":[{"sig":"MEQCIAU1wmF/t9zgMQzhR58iPtAW5EP98OuvNwEcwR+WjcReAiAI2bsGm4jcOOCHZXHJT/8RyLPvBmbWzut1zSwilVuFnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37618},"type":"module","gitHead":"0d7ea72b4359ca8b6f5694a63071e59cebaaba73","scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","build:binary":"bun build ./src/cli.ts --compile --outfile ./dist-bin/agentspec","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"eddyli1989","email":"suckli45@gmail.com"},"repository":{"url":"git+https://github.com/ujoyli/agent-spec.git","type":"git"},"_npmVersion":"11.6.4","description":"CLI for managing and syncing AI agent prompts, skills, MCP, and plugin configuration across tools.","directories":{},"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.12.12"},"_npmOperationalInternal":{"tmp":"tmp/agent-spec_0.1.0_1779716944318_0.09037095992523847","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@eddyli1989/agent-spec","version":"0.1.1","description":"CLI for managing and syncing AI agent prompts, skills, MCP, and plugin configuration across tools.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/ujoyli/agent-spec.git"},"homepage":"https://github.com/ujoyli/agent-spec#readme","bugs":{"url":"https://github.com/ujoyli/agent-spec/issues"},"keywords":["ai","agent","codex","claude","opencode","mcp","cli"],"type":"module","bin":{"agentspec":"dist/src/cli.js"},"scripts":{"build":"tsc","build:binary":"bun build ./src/cli.ts --compile --outfile ./dist-bin/agentspec","prepublishOnly":"npm test && npm run build","test":"vitest run","typecheck":"tsc --noEmit"},"devDependencies":{"@types/node":"^20.12.12","typescript":"^5.4.5","vitest":"^1.6.0"},"gitHead":"9127236fe56435acf9aa0298b17c5bbec035a8a0","_id":"@eddyli1989/agent-spec@0.1.1","_nodeVersion":"25.2.1","_npmVersion":"11.6.4","dist":{"integrity":"sha512-C2HZHlw/TvsR9Xfjph79RuwnvPsXJxSRQewUehDmd+767p1/dhej95KJo8Kzw43yaqCq9d+9UdLqQgKzU5UsKQ==","shasum":"da1e3ffd6ce5fcaca3fd80fba236dcf40bf40159","tarball":"https://registry.npmjs.org/@eddyli1989/agent-spec/-/agent-spec-0.1.1.tgz","fileCount":24,"unpackedSize":42100,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICD4aUd/EzzxOgOBUGAST5SbonQ6eqAcm4oSDR4eM3HzAiEA74HYXxygqqGXlUstivtxfWAk0qu98gpGaBhKYK39Phg="}]},"_npmUser":{"name":"eddyli1989","email":"suckli45@gmail.com"},"directories":{},"maintainers":[{"name":"eddyli1989","email":"suckli45@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-spec_0.1.1_1779806808497_0.8936716603728354"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-25T13:49:04.141Z","modified":"2026-05-26T14:46:48.777Z","0.1.0":"2026-05-25T13:49:04.468Z","0.1.1":"2026-05-26T14:46:48.671Z"},"bugs":{"url":"https://github.com/ujoyli/agent-spec/issues"},"license":"MIT","homepage":"https://github.com/ujoyli/agent-spec#readme","keywords":["ai","agent","codex","claude","opencode","mcp","cli"],"repository":{"type":"git","url":"git+https://github.com/ujoyli/agent-spec.git"},"description":"CLI for managing and syncing AI agent prompts, skills, MCP, and plugin configuration across tools.","maintainers":[{"name":"eddyli1989","email":"suckli45@gmail.com"}],"readme":"# Agent Spec\n\nAgent Spec is a CLI-first open source project for managing AI agent configuration across tools.\n\nThe current MVP treats Claude-style configuration as the canonical base, then helps import, push, and pull that configuration across:\n\n- Claude Code\n- Codex\n- OpenCode\n\nAgent Spec is local-first and GitHub-backed. It uses normal files, normal Git commits, and the GitHub CLI (`gh`) instead of a hosted sync service.\n\n## Why\n\nAI agent tools use different conventions for prompts, skills, MCP servers, plugins, and runtime configuration.\n\nThat creates drift:\n\n- `CLAUDE.md` may contain one set of instructions.\n- `AGENTS.md` may contain another.\n- Skills may live in different folders depending on the tool.\n- Moving to another machine often means copying the same files again.\n\nAgent Spec gives those files one Git-backed home and provides adapters for the tools you use locally.\n\n## Current Behavior\n\n### Import and Merge\n\n`agentspec init` and `agentspec push` scan supported local tool config directories and merge them into one workspace.\n\nPrompt files are appended into the canonical `CLAUDE.md` with source headings:\n\n```md\n## From Claude Code\n\n...\n\n## From Codex\n\n...\n\n## From OpenCode\n\n...\n```\n\nShared folders such as `skills/`, `mcp/`, and `plugins/` are also merged into the Claude-style workspace folders when present. This applies to both `init` and `push`, so changes made under Codex or OpenCode are still collected into the canonical Agent Spec repository.\n\n### Pull\n\n`agentspec pull` applies the canonical workspace back to supported local tools.\n\nAgent Spec stores its canonical workspace at `~/.agentspec`. By default, `agentspec pull` and `agentspec sync` pull that workspace repository and overwrite discovered local tool config directories such as `~/.claude`, `~/.codex`, and `~/.config/opencode`. For inspection or testing, use `--output-dir` to write converted files somewhere else.\n\n## Install\n\nFor development:\n\n```bash\nnpm install\nnpm run build\n```\n\nInstall from npm:\n\n```bash\nnpm install -g @eddyli1989/agent-spec\nagentspec --help\n```\n\nRun the compiled CLI:\n\n```bash\nnode dist/src/cli.js --help\n```\n\nBuild a standalone binary with Bun:\n\n```bash\nnpm run build:binary\n./dist-bin/agentspec --help\n```\n\n## Requirements\n\n- Node.js for development.\n- Bun for standalone binary builds.\n- Git.\n- GitHub CLI (`gh`) for `auth` and `init`.\n\nAuthenticate with GitHub:\n\n```bash\ngh auth login\n```\n\nor:\n\n```bash\nagentspec auth\n```\n\n## Commands\n\n```bash\nagentspec init [--offline]\nagentspec push\nagentspec pull [--output-dir <dir>]\nagentspec sync [--output-dir <dir>]\nagentspec auth\nagentspec doctor\nagentspec --help\n```\n\n### `init`\n\nScans supported local tool configuration, merges it into an Agent Spec workspace, creates a GitHub repository, commits the initial files, and pushes them.\n\nThe workspace is always stored at `~/.agentspec`.\n\nUse `--offline` to skip GitHub repository creation and Git commands. Offline init only merges discovered local configuration into `~/.agentspec`.\n\nThe default repository name is `agent-spec`. If that repository already exists and looks like an Agent Spec configuration repository, Agent Spec clones it into the home workspace. If it exists but appears to be a source repository or another unrelated project, Agent Spec falls back to numbered names such as `agent-spec-01`, `agent-spec-02`, and so on.\n\n```bash\nagentspec init\nagentspec init --offline\n```\n\n### `push`\n\nPulls the workspace, rescans local configuration, merges changes, and pushes a new commit only when files changed.\n\n```bash\nagentspec push\n```\n\n`agentspec update` is currently kept as a compatibility alias for `agentspec push`.\n\n### `pull`\n\nPulls the workspace and applies the canonical configuration to supported tools found on the machine.\n\n```bash\nagentspec pull\nagentspec sync\n```\n\nInspect converted output without touching real tool config directories:\n\n```bash\nagentspec pull --output-dir /tmp/agent-spec-output\n```\n\n`agentspec sync` is currently kept as a compatibility alias for `agentspec pull`.\n\n### `auth`\n\nDelegates GitHub authentication to `gh auth login`.\n\n```bash\nagentspec auth\n```\n\n### `doctor`\n\nCurrently a placeholder for future environment checks.\n\n```bash\nagentspec doctor\n```\n\n## Testing\n\n```bash\nnpm test\nnpm run build\nnpm run build:binary\n```\n\n## Project Status\n\nAgent Spec is early MVP software.\n\nImplemented:\n\n- CLI command dispatch.\n- Tool discovery for Claude Code, Codex, and OpenCode.\n- Prompt merge into canonical `CLAUDE.md`.\n- Merging of `skills/`, `mcp/`, and `plugins/` into Claude-style workspace folders when present.\n- GitHub repository creation through `gh`.\n- Offline init for local-only config merging.\n- Existing repository recovery during `init`.\n- Default home workspace at `~/.agentspec`.\n- `pull --output-dir` for safe inspection.\n- Standalone binary build through Bun.\n\nNot implemented yet:\n\n- Conflict resolution beyond simple append/copy behavior.\n- Prompt de-duplication.\n- Rich MCP format adaptation.\n- Secret handling.\n- Desktop UI.\n- Release packaging for all platforms.\n\n## Design Notes\n\nSee [PROPOSAL.md](./PROPOSAL.md) for the project proposal and longer-term direction.\n","readmeFilename":"README.md"}