Skip to main content

Multi-access agentic coding tool — TUI, CLI, and REST API with JSON output

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

🥷 codrninja

Multi-Access Agentic Coding Tool — use it from a terminal TUI, shell scripts, or as a backend for AI agents. Every command outputs structured JSON, so humans and machines use the exact same interface.

How you can access it

Access Use case
codrninja Interactive TypeScript TUI for humans
codrninja send <session> "<msg>" Scripting, CI pipelines
codrninja build <session> "<task>" Agent-driven coding tasks
REST API on localhost:7384 External agents (openclaw, n8n, custom)

An external agent can list your sessions, send messages into them, trigger builds, run tests, and read results — all in JSON — without touching the TUI at all.

Providers

Provider Setup Notes
claude-cli Claude Code installed Uses your Claude Code subscription — no API key needed
OpenAI OAuth or API key gpt-4o, gpt-5, codex models
Anthropic OAuth or API key claude-sonnet, claude-opus
Ollama Local server Any local model
OpenRouter API key Access to all major models

Install

pip3 install codrninja

Start the TUI:

codrninja

The server starts automatically on port 7384. Configure your provider on first launch with /provider.

TypeScript TUI

codrninja looks for the TUI at ~/codrninja-tui. Clone it once:

git clone https://github.com/20ZollCoder/codrninja-tui ~/codrninja-tui
cd ~/codrninja-tui && npm install

Agent / CLI access

All commands output JSON with a $schema field — ready to pipe into jq or any agent.

# List sessions
codrninja list-sessions

# Send a message to a session
codrninja send my-project "what does this file do?"

# Run the coding agent on a task (build mode — writes files, runs commands)
codrninja build my-project "add input validation to the login form"

# Run in plan mode (reasons and plans, doesn't execute)
codrninja plan my-project "how should we restructure the auth module?"

# Show session history
codrninja show-session my-project

# Run tests
codrninja test "pytest -q"

# Execute a shell command
codrninja exec "npm run build"

# Web search
codrninja search "fastapi streaming response"

# Git commit
codrninja commit "feat: add login validation"

Example: an openclaw agent picks up a session you already have open in the TUI:

# You're working in the TUI on session "backend-api"
# An openclaw agent can continue in the same session:
codrninja build backend-api "add rate limiting to the /auth endpoint"

# Or create its own session
codrninja create-session agent-task-1
codrninja build agent-task-1 "write unit tests for auth.py"

TUI slash commands

Command Description
/provider Switch or configure AI provider
/model Change model for this session
/build <task> Run build agent
/plan <task> Run plan agent
/exec <cmd> Run a shell command
/diff Show current git diff
/commit <msg> Git add -A and commit
/test Run tests
/search <query> Web search
/fetch <url> Fetch a web page
/clear Clear the conversation
/undo Remove the last message pair
/session Show session info
/status Show provider / model status
/help Show all commands
/exit Quit

Sessions

Sessions store conversation history, model/provider settings, and file change tracking. They're shared across all access methods — what you do in the TUI is visible via CLI and vice versa.

# Open a specific session directly
codrninja my-project

# Or via env var (useful for agents)
CODRNINJA_SESSION=my-project codrninja

REST API

The server exposes a full REST API that external agents can use directly:

GET  /sessions           → list all sessions
POST /sessions           → create session
GET  /sessions/{name}    → get session history
POST /sessions/{name}/stream → stream agent execution (SSE)
GET  /providers          → list providers and auth status
POST /config/provider    → set active provider
POST /config/model       → set model
GET  /models             → list available models
GET  /version            → server version

Configuration

Settings live in ~/.config/codrninja/config.json and can be changed from the TUI via /provider and /model.

Override the server address:

codrninja serve --port 8000
CODRNINJA_SERVER=http://127.0.0.1:8000 codrninja

Links

License

MIT

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codrninja-1.5.35.tar.gz (326.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

codrninja-1.5.35-py3-none-any.whl (349.1 kB view details)

Uploaded Python 3

File details

Details for the file codrninja-1.5.35.tar.gz.

File metadata

  • Download URL: codrninja-1.5.35.tar.gz
  • Upload date:
  • Size: 326.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for codrninja-1.5.35.tar.gz
Algorithm Hash digest
SHA256 23d8bfae3539dc3a06466565efb74c628dd837cab277a9e58b8176249f2704a2
MD5 c9b7229b7894109c1480fde2908b1373
BLAKE2b-256 385c7cce19fd18c4d1a150b7d622edd05f1c24ddc138be9ac4adea7fc08d0f65

See more details on using hashes here.

File details

Details for the file codrninja-1.5.35-py3-none-any.whl.

File metadata

  • Download URL: codrninja-1.5.35-py3-none-any.whl
  • Upload date:
  • Size: 349.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for codrninja-1.5.35-py3-none-any.whl
Algorithm Hash digest
SHA256 b896db1bc19de59d07611cdba0de0949914809a443d34b964cfc6f44c305085d
MD5 c76e5d3034625ae830655800f18f3aa0
BLAKE2b-256 f4a5fe06576ebbd54836762ddc9d2a3e878a5f7b58a250863f246365b03155f6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page