{"_id":"@andy-toolforge/hermes-opencode-mcp-bridge","_rev":"7-d250d98754b3eca4067e9f5c193f74bd","name":"@andy-toolforge/hermes-opencode-mcp-bridge","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@andy-toolforge/hermes-opencode-mcp-bridge","version":"0.1.0","keywords":["toolforge","hermes","opencode","mcp","bridge","agent"],"author":{"name":"Andy Pham"},"license":"MIT","_id":"@andy-toolforge/hermes-opencode-mcp-bridge@0.1.0","maintainers":[{"name":"andy_pham","email":"phamlehoaian@gmail.com"}],"bin":{"hermes-opencode-bridge":"lib/index.js"},"dist":{"shasum":"8e958a722d0c7ad9b21fb80fca4da9e470ac1133","tarball":"https://registry.npmjs.org/@andy-toolforge/hermes-opencode-mcp-bridge/-/hermes-opencode-mcp-bridge-0.1.0.tgz","fileCount":21,"integrity":"sha512-hFarEf67BC2ujvXjcf6uc+X8s8RzPo0uja+PKYlHhEEo1bRrhU3STLqEbcRIkXgEUZPw/fTDP0HV+K59ACyZKQ==","signatures":[{"sig":"MEYCIQD4pqQ380bi72neuKKfzp3OapyWhnFNDqsecU4wGyIFSAIhAMmyQd1ClYFHZtKblyBpcVRYq9MiwODN37pVPs7dhftD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50074},"main":"lib/index.js","engines":{"node":">=18"},"gitHead":"f7713925e9c5f448d6eda7d1448e46d2ea746c10","scripts":{"test":"node --test"},"_npmUser":{"name":"andy_pham","email":"phamlehoaian@gmail.com"},"_npmVersion":"10.8.2","description":"MCP bridge from Hermes Agent to the opencode CLI (code editing, terminal, git, multi-model)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hermes-opencode-mcp-bridge_0.1.0_1786159788299_0.029421850191264864","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@andy-toolforge/hermes-opencode-mcp-bridge","version":"0.1.1","keywords":["toolforge","hermes","opencode","mcp","bridge","agent"],"author":{"name":"Andy Pham"},"license":"MIT","_id":"@andy-toolforge/hermes-opencode-mcp-bridge@0.1.1","maintainers":[{"name":"andy_pham","email":"phamlehoaian@gmail.com"}],"bin":{"hermes-opencode-bridge":"lib/index.js"},"dist":{"shasum":"47d4dd0884f430ad5e652e53d0696b91fa928ca9","tarball":"https://registry.npmjs.org/@andy-toolforge/hermes-opencode-mcp-bridge/-/hermes-opencode-mcp-bridge-0.1.1.tgz","fileCount":21,"integrity":"sha512-1+WDX2Ah7UW8YiTMBJjLAFHk/JsCdVJY8ymMEttnxDRvzWh2NBJBVf0wHXj+SyquZuOm8v3xw+Ju1NpCzrcqww==","signatures":[{"sig":"MEUCIHRmzwsQ4qEJ62gQeiugs6ZzKJQrM9BuSvHGjQvwRhBGAiEA+72esnzKYB9cMt1EY5wOlyqoGBPztFG/HJvo3buw/lM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50117},"main":"lib/index.js","engines":{"node":">=18"},"gitHead":"4cb1b4efd75fe17b2ae2f2109a80c2ec6dccbb9b","scripts":{"test":"node --test"},"_npmUser":{"name":"andy_pham","email":"phamlehoaian@gmail.com"},"_npmVersion":"10.8.2","description":"MCP bridge from Hermes Agent to the opencode CLI (code editing, terminal, git, multi-model)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hermes-opencode-mcp-bridge_0.1.1_1786167739455_0.9222257449571243","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@andy-toolforge/hermes-opencode-mcp-bridge","version":"0.1.2","keywords":["toolforge","hermes","opencode","mcp","bridge","agent"],"author":{"name":"Andy Pham"},"license":"MIT","_id":"@andy-toolforge/hermes-opencode-mcp-bridge@0.1.2","maintainers":[{"name":"andy_pham","email":"phamlehoaian@gmail.com"}],"bin":{"hermes-opencode-bridge":"lib/index.js"},"dist":{"shasum":"679e426d23338cf19bee0a5387f278253a0f36c9","tarball":"https://registry.npmjs.org/@andy-toolforge/hermes-opencode-mcp-bridge/-/hermes-opencode-mcp-bridge-0.1.2.tgz","fileCount":22,"integrity":"sha512-jEVQMx5h0QEEX6QCJYTRLYMAtV3VxbkdvMkN1fCTwdMwakmv4wWPd2dYpMirbZSPCbM6jDl7ayuaWph97aYW4w==","signatures":[{"sig":"MEUCIDo1zLJ4O9CIQj5J+bsDOi841UwGG0Ciu0igGdL7mMJiAiEA0OUqB9TOIDzN31/3wRoLGnxeevYqfnWl/pNUXnY3Koo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54293},"main":"lib/index.js","engines":{"node":">=18"},"gitHead":"ed8e7759e6f03d4c5f68b2b21d65a295729856c5","scripts":{"test":"node --test"},"_npmUser":{"name":"andy_pham","email":"phamlehoaian@gmail.com"},"_npmVersion":"10.8.2","description":"MCP bridge from Hermes Agent to the opencode CLI (code editing, terminal, git, multi-model)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hermes-opencode-mcp-bridge_0.1.2_1786181791729_0.344481623722114","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@andy-toolforge/hermes-opencode-mcp-bridge","version":"0.1.3","keywords":["toolforge","hermes","opencode","mcp","bridge","agent"],"author":{"name":"Andy Pham"},"license":"MIT","_id":"@andy-toolforge/hermes-opencode-mcp-bridge@0.1.3","maintainers":[{"name":"andy_pham","email":"phamlehoaian@gmail.com"}],"bin":{"hermes-opencode-bridge":"lib/index.js"},"dist":{"shasum":"3f1cfc9c23304faf77cb074041cb321792ff7b19","tarball":"https://registry.npmjs.org/@andy-toolforge/hermes-opencode-mcp-bridge/-/hermes-opencode-mcp-bridge-0.1.3.tgz","fileCount":22,"integrity":"sha512-ggCGRdc5x2zZwAWud2fbqOkqE5MQDkl5ZP13+VTsS3XX4vo5FLJSkl6PEsYKuwcm5B0SJlqacEwjnePgYepNVA==","signatures":[{"sig":"MEUCIQDOQgOtp02kpf84mAk1rBINloPYz+XQ9KSbuIUHG+uilwIgeiJXWlL+JrDElUPDdO0dfwGpCgoYH9qoa6vg6VfrEgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56969},"main":"lib/index.js","engines":{"node":">=18"},"gitHead":"f4e1a17aea707315a51a9bc28f7479e5e182a657","scripts":{"test":"node --test"},"_npmUser":{"name":"andy_pham","email":"phamlehoaian@gmail.com"},"_npmVersion":"10.8.2","description":"MCP bridge from Hermes Agent to the opencode CLI (code editing, terminal, git, multi-model)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hermes-opencode-mcp-bridge_0.1.3_1786206117962_0.47407902602195895","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@andy-toolforge/hermes-opencode-mcp-bridge","version":"0.1.4","keywords":["toolforge","hermes","opencode","mcp","bridge","agent"],"author":{"name":"Andy Pham"},"license":"MIT","_id":"@andy-toolforge/hermes-opencode-mcp-bridge@0.1.4","maintainers":[{"name":"andy_pham","email":"phamlehoaian@gmail.com"}],"bin":{"hermes-opencode-bridge":"lib/index.js"},"dist":{"shasum":"16df07765eb37a9de40d072d4e771170370f92d3","tarball":"https://registry.npmjs.org/@andy-toolforge/hermes-opencode-mcp-bridge/-/hermes-opencode-mcp-bridge-0.1.4.tgz","fileCount":22,"integrity":"sha512-dppmkO+4//FvhCNj6yPIop8EDfg5UzcXtKrvP/rVpCXmFeitXE1MlAtUzky5sCR20pQUPHv67Aho5ui1VLHViA==","signatures":[{"sig":"MEYCIQCkgmtbH29wc2qVlv1ihpCUAdmh5VXeoNwXKwn3cxj64gIhAPar+5HkkhwEjs3PZwxxaDBmReEw8HS7hp0KWopaf58v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65627},"main":"lib/index.js","engines":{"node":">=18"},"gitHead":"bbb5ae26ae69b61a87d187a46f39bc3fe4c8b848","scripts":{"test":"node --test"},"_npmUser":{"name":"andy_pham","email":"phamlehoaian@gmail.com"},"_npmVersion":"10.8.2","description":"MCP bridge from Hermes Agent to the opencode CLI (code editing, terminal, git, multi-model)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hermes-opencode-mcp-bridge_0.1.4_1786209535231_0.4236286422264166","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@andy-toolforge/hermes-opencode-mcp-bridge","version":"0.1.5","keywords":["toolforge","hermes","opencode","mcp","bridge","agent"],"author":{"name":"Andy Pham"},"license":"MIT","_id":"@andy-toolforge/hermes-opencode-mcp-bridge@0.1.5","maintainers":[{"name":"andy_pham","email":"phamlehoaian@gmail.com"}],"bin":{"hermes-opencode-bridge":"lib/index.js"},"dist":{"shasum":"05bd0190920123076b2983cbda6ae755091db65b","tarball":"https://registry.npmjs.org/@andy-toolforge/hermes-opencode-mcp-bridge/-/hermes-opencode-mcp-bridge-0.1.5.tgz","fileCount":22,"integrity":"sha512-IyB1BXAzq2YDQjA+NkPsUntU0Le3VHOkYY2uK5NXy66iUvpfx6eGG1Xd1IYvzMFnQGxtzcs8lTwp7sQZUxsrcQ==","signatures":[{"sig":"MEUCIQDCFTcajAEleIrTcXwfmsZ1llUQ8hEJfMAMbkWGX0t9NgIgSzGLRQVcQIlfVBDMD9z7ZtcixNe9aG3nMkxeKF4kuLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69723},"main":"lib/index.js","engines":{"node":">=18"},"gitHead":"aee8a3c78ed12cb395ee825aa492fbe6396df2be","scripts":{"test":"node --test"},"_npmUser":{"name":"andy_pham","email":"phamlehoaian@gmail.com"},"_npmVersion":"10.8.2","description":"MCP bridge from Hermes Agent to the opencode CLI (code editing, terminal, git, multi-model)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hermes-opencode-mcp-bridge_0.1.5_1786422544202_0.6646649464656342","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@andy-toolforge/hermes-opencode-mcp-bridge","version":"0.1.6","description":"MCP bridge from Hermes Agent to the opencode CLI (code editing, terminal, git, multi-model)","main":"lib/index.js","bin":{"hermes-opencode-bridge":"lib/index.js"},"scripts":{"test":"node --test","postinstall":"node skills/postinstall.js"},"keywords":["toolforge","hermes","opencode","mcp","bridge","agent"],"author":{"name":"Andy Pham"},"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.30.0","zod":"^3.25.76"},"engines":{"node":">=18"},"publishConfig":{"access":"public"},"_id":"@andy-toolforge/hermes-opencode-mcp-bridge@0.1.6","gitHead":"b78c59a1998a37fc60f26dc3b1c0592a3c543ac0","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-BjQoQHgQTRrjoNAN8F8K8QZFmp2NY3iJQZFJ7U40P2IaJUOvFO0kVsOpSb/VejEZRWP1OOAMWJ4jkzONHFV9Aw==","shasum":"90965c2d003eb938878ade274aeb5a352a29d49d","tarball":"https://registry.npmjs.org/@andy-toolforge/hermes-opencode-mcp-bridge/-/hermes-opencode-mcp-bridge-0.1.6.tgz","fileCount":24,"unpackedSize":75043,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB3foVIDxLhkjcIVOF/WlWZvAVsVAh27QVsdX4L4SxmnAiBZgZcuLcjOQD3v/2ATcPXJ5Y1qJPBXGjI1TdbyfwRmrA=="}]},"_npmUser":{"name":"andy_pham","email":"phamlehoaian@gmail.com"},"directories":{},"maintainers":[{"name":"andy_pham","email":"phamlehoaian@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hermes-opencode-mcp-bridge_0.1.6_1786933082011_0.5356790313988389"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-08T03:29:48.177Z","modified":"2026-08-17T02:18:02.363Z","0.1.0":"2026-08-08T03:29:48.459Z","0.1.1":"2026-08-08T05:42:19.608Z","0.1.2":"2026-08-08T09:36:31.876Z","0.1.3":"2026-08-08T16:21:58.151Z","0.1.4":"2026-08-08T17:18:55.383Z","0.1.5":"2026-08-11T04:29:04.354Z","0.1.6":"2026-08-17T02:18:02.152Z"},"author":{"name":"Andy Pham"},"license":"MIT","keywords":["toolforge","hermes","opencode","mcp","bridge","agent"],"description":"MCP bridge from Hermes Agent to the opencode CLI (code editing, terminal, git, multi-model)","maintainers":[{"name":"andy_pham","email":"phamlehoaian@gmail.com"}],"readme":"# @andy-toolforge/hermes-opencode-mcp-bridge\n\nMCP bridge from Hermes Agent to the [opencode](https://opencode.ai) CLI.\n\nLets Hermes run coding tasks in a local opencode session, read files, check git\nstatus, and manage the allowed-model list — through standard MCP tools.\n\n## Requirements\n\n- Node.js >= 18 (CommonJS)\n- The `opencode` CLI installed (default `~/.opencode/bin/opencode`)\n\n## Install\n\n```bash\nnpm install @andy-toolforge/hermes-opencode-mcp-bridge\n```\n\nRun the stdio server (this is what your MCP client spawns):\n\n```bash\nnpx hermes-opencode-bridge\n```\n\n## Configuration\n\nConfig file: `~/.config/hermes-opencode/config.json` (override with env var\n`HERMES_OPENCODE_CONFIG`). All keys optional:\n\n```json\n{\n  \"opencode_bin\": \"~/.opencode/bin/opencode\",\n  \"default_project_dir\": \"~/projects\",\n  \"default_agent\": \"fixer\",\n  \"default_model\": \"opencode/deepseek-v4-flash-free\",\n  \"models\": [],\n  \"session_timeout\": 300,\n  \"auto_commit\": false,\n  \"verbose\": false\n}\n```\n\n- `models`: if non-empty, `opencode_run` only allows models in this list.\n- `session_timeout`: seconds of idle before a conversation is forgotten.\n- `auto_commit`: run `git add -A && git commit` after each successful run.\n\n## Tools\n\n| Tool | Purpose |\n|------|---------|\n| `opencode_run` | Run a task in opencode; pass `conversation_id` to continue a session |\n| `opencode_task` | Like `opencode_run` but always auto-commits |\n| `opencode_read` | Read a file or list a directory tree |\n| `opencode_status` | Git status of a project directory |\n| `opencode_set_models` | Set/add/remove/list allowed models |\n\n## Example\n\n1. Hermes asks opencode to fix a bug:\n\n   `opencode_run({task: \"fix the login bug in src/auth.js\", project_dir: \"~/projects/app\"})`\n\n2. Hermes checks the result and reads the changed file:\n\n   `opencode_read({path: \"~/projects/app/src/auth.js\"})`\n\n3. Hermes continues the same session:\n\n   `opencode_run({task: \"also add tests for the fix\", conversation_id: \"hob-abc123\"})`\n\n## Sessions\n\nEach `opencode_run` returns a `conversation_id`. Passing it back continues that\nopencode session via `--session <id> --fork`. Idle sessions are swept after\n`session_timeout` seconds.\n\n## Skill file\n\nThe package ships `skills/hermes-opencode-bridge.md` — an agent-facing guide for\nusing the 5 tools (`opencode_run`, `opencode_task`, `opencode_read`,\n`opencode_status`, `opencode_set_models`), covering `conversation_id`\ncontinuation, `opencode_task` vs `opencode_run`, error codes, and config\nreference. The `postinstall` script installs it into the client project's\n`.opencode/skills/` (prefixed `hermes-opencode-bridge-`).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}