neuphlo-runner
v0.4.3
Published
Local agent runner for Neuphlo — bridges Claude Code, Codex, Gemini, and Cursor CLI with Neuphlo cloud
Maintainers
Readme
neuphlo-runner
Local agent runner for Neuphlo. Bridges the Neuphlo backend with locally-installed AI CLIs (Claude Code, Codex, Gemini, Cursor) so workspace AI can use your existing subscription credentials — no API keys required.
Install
npm install -g neuphlo-runner
# or
pnpm install -g neuphlo-runnerYou also need at least one of the upstream CLIs installed and signed in on the same machine:
- Claude Code —
claudeon PATH, signed in viaclaude login - Codex —
codexon PATH, signed in viacodex login - Gemini CLI —
geminion PATH, signed in viagemini auth - Cursor —
cursoron PATH, signed in
Run
neuphlo-runner --adapter claude-code --port 3100 --cwd ~/projects/some-repoFlags:
| Flag | Default | Notes |
|---|---|---|
| --adapter / -a | claude-code | One of claude-code, codex, gemini, cursor |
| --port / -p | 3100 | HTTP port the runner listens on |
| --cwd / -d | process.cwd() | Working directory the CLI runs against |
| --token | (none) | Shared secret. If set, all /execute and /infer requests must send Authorization: Bearer <token> |
Expose to Neuphlo
The runner listens on localhost. Expose it via your preferred tunnel:
cloudflared tunnel --url http://localhost:3100
# or
ngrok http 3100Add the tunnel URL to Neuphlo → Preferences → AI → Providers → Claude Code / Codex / Gemini / Cursor.
Endpoints
| Endpoint | Used for |
|---|---|
| GET /health | Liveness + CLI version probe |
| GET /models | Lists models the adapter supports |
| POST /infer | One turn. Cowork uses this — tools execute on the Neuphlo backend against the session's Principal, never on this machine |
| POST /execute | Legacy agent-mode (the CLI runs its own loop). Used by code-mode jobs |
Security
The runner spawns the upstream CLI inside an ephemeral HOME directory containing only Neuphlo's host-callback MCP plus symlinks to the user's subscription credentials. Every tool call is POSTed back to the Neuphlo backend with a short-lived (15 min) JWT and executed against the chat's workspace Principal — so workspace-mismatch silent mutations are structurally impossible regardless of which CLI is in use.
License
MIT
