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.74.tar.gz (332.6 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.74-py3-none-any.whl (354.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: codrninja-1.5.74.tar.gz
  • Upload date:
  • Size: 332.6 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.74.tar.gz
Algorithm Hash digest
SHA256 cc1018538a15bb814e8318a01062b5fc965339a155e815dd353c9e20bb26ee8a
MD5 5498afc97b515d2e9e6b75b21f3f8722
BLAKE2b-256 8e029750625db498706da9b56a57c20b19a21ca8710ab92a595af4b0bdf87510

See more details on using hashes here.

File details

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

File metadata

  • Download URL: codrninja-1.5.74-py3-none-any.whl
  • Upload date:
  • Size: 354.7 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.74-py3-none-any.whl
Algorithm Hash digest
SHA256 8b43cfbd1cfafed9cc10b0f975e5884d9a3804d99ad6e85b24d3bb64301234ed
MD5 aafaf5c1e59232d102872a85dfdb7d30
BLAKE2b-256 528e70efb8c899004798972480e1a3a407237e856c5e8468d644df70a6b7f546

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