OpenHammer is a server that turns any computer into a secure, MCP-controlled surface. Run it on your laptop, or deploy it on a server to give any authenticated MCP client controlled filesystem and shell access. Connect Claude Desktop, Claude Code, Cursor, OpenCode, or your own client built on the MCP SDK. Whatever you connect gets read, write, search, and shell, all authenticated and scoped to a workspace. Local-first, and at scale it's a fleet of safe compute surfaces for AI.
$ npx openhammer@latest
The best agents aren't buried under SDK abstractions. They're an LLM iterating over a filesystem with bash. OpenHammer serves exactly that surface and nothing else.
Every response is bounded twice: per-tool truncation plus a universal 512KB backstop that emits a structured response_too_large block.
# boot the control center npx openhammer@latest # first boot mints a bearer token into # ~/.openhammer/credential.json (0600)
The TUI dashboard is the entrance. Status, channels, clients, monitor and doctor all live on one screen.
{
"mcpServers": {
"openhammer": {
"type": "http",
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer <token>"
}
}
}
}
Any Streamable-HTTP MCP client works: Claude Desktop, Claude Code, Cursor, OpenCode, the MCP Inspector, or one you build with the @modelcontextprotocol/client SDK.
# add a tunnel channel openhammer channel add # ngrok / cloudflare / static # OAuth for Claude web and Code openhammer auth set-login openhammer auth add-client export MCP_PUBLIC_URL=https://…
Live channels boot the tunnel with the server. OAuth discovery picks up the public URL on its own.
Whosoever holds this token, if they be worthy, shall possess the shell.
Accepted in fall-through order at the /mcp gate.
A channel is how a remote client reaches you.
OpenHammer exposes a powerful surface on purpose. A connected client can do anything the host user can, so every door has a lock: every connection is authenticated, every tool is bounded, and a container is the sandbox. Treat the bearer token like a password to the machine.
Questions, harness designs, channel providers, weird tunneling setups. Bring them.
Q&A, ideas and show-and-tell. Searchable, indexed, and right next to the code.
→ github.com/harry-hathorn/openhammer/discussions Bugs · FeaturesFound a sharp edge? File it. Conventional Commits, CI on every PR, standards in AGENTS.md.
→ github.com/harry-hathorn/openhammer/issues Star · Fork · PRMIT-licensed, strict TypeScript, five test tiers from hermetic units to live-tunnel E2E.
→ github.com/harry-hathorn/openhammer