โญ +24 today Rust

Nasiko-Labs/nasiko

๐Ÿ”— https://github.com/Nasiko-Labs/nasiko โ†—

Nasiko is the OpenRuntime for agents, coding harnesses, frameworks and tools. Find the coding agents already running. See what each one costs, by harness and model. Route them to the models you choose while developers keep using their existing harness workflows. ๐Ÿ“š Documentation โ€ข ๐Ÿ’ฌ Discord โ€ข ๐Ÿ› Report a bug Table of Contents What is Nasiko? Start here: see what is already running Coding agents: reporting and routing Features Why this runs in the call path Architecture Requirements Quick Start: Docker only (no Rust needed) Setup guides by operating system Deploying your own agents Environment Variables Project Structure Troubleshooting Project Activity Documentation & Links Support Contributing License What is Nasiko? Your developers are already running coding agents. Claude Code, Codex, Cursor, OpenCode, often more than one at a time, each with its own dashboard and its own billing unit. At the end of the month there is a real bill, and nobody can say who spent it, on which model, or what it produced. Nasiko finds those agents, puts their spend in one schema, and hands back the model choice the harness made for you. An OpenRuntime belongs to no vendor inside it: your cost history, your policy and your model choice stay with you rather than with whichever harness you happened to install. Two properties hold the rest of this together, and they are not the same thing. Non-invasive discovery is about your architecture. Nasiko can detect the harnesses you already run without changing their configuration. Reporting and routing are explicit opt-ins that add hooks or update harness settings, but they require no wrapper or SDK in your application code. Non-intrusive operation is about your day. After one-time setup, developers keep using the same harness commands and interfaces. OpenCode must be restarted after its plugin is installed, and Codex asks you to trust the new Nasiko hooks. Nasiko Dashboard : deploy agents, route traffic, manage tools, and watch traces. Start here: see what is already running Install the current CLI from this checkout, then run its read-only discovery command: git clone https://github.com/Nasiko-Labs/nasiko.git && cd nasiko cargo install --path cli/ --force nasiko agents discover nasiko agents discover reads your machine, prints what it finds, and exits. You get a row per supported harness: whether it is detected, whether it is reporting to Nasiko, its version, and where its config lives. Discovery changes no harness settings, requires no account, and sends nothing off the machine. If nasiko agents discover is not listed by nasiko agents --help , reinstall with the --force command above. Older builds use the same 0.1.0 version number, so nasiko --version alone cannot tell you whether the command is present. Harness Discovery and session reporting LLM routing Claude Code yes yes Codex yes yes OpenCode yes yes Cursor CLI yes not yet Those four are the supported set today and we will continue to add support for me. If you have a request please create an issue! The CLI is a Rust crate, so this path needs Rust . Reporting and routing also need an active control plane and valid login: see Quick Start . Coding agents: reporting and routing Nasiko manages the coding-agent CLIs already installed on your machine: it can record what they do, route their LLM calls, or both. The two are independent opt-ins. agents uninstall removes local reporting hooks but preserves the registered agent and its history; disconnect restores routing settings, though a running harness may need to be stopped or disconnected with --force . Session reporting nasiko agents discover # DETECTED / CONNECTED / VERSION / CONFIG per agent nasiko agents install < agent > # claude, codex, opencode, or cursor nasiko agents install < agent > --no-content # omit prompt and response text nasiko agents uninstall < agent > nasiko agents sync # flush queued session-turn events to the control plane Auto-install also fires on nasiko connect <control-plane-url> , nasiko use , and nasiko auth login , but only when authenticated and only for agents with no existing install record . Routing commands such as nasiko connect claude do not trigger auto-install. Nasiko never silently rebinds an already-installed agent to a new cluster; rebind explicitly with nasiko agents install <agent> . Nasiko installs each harness's supported event hooks: Claude uses Stop , OpenCode reports on session.idle , and Codex and Cursor use their richer hook event sets. Completed turns are queued locally under ~/.nasiko/integrations/queue/ and delivered to POST /api/telemetry/coding-agent/events/batch , so a control plane that is briefly unreachable costs you nothing. Permanently-failed deliveries (after a cluster is deleted or renamed, say) land in ~/.nasiko/integrations/rejected/ and are safe to delete. Ingested turns show up as chat sessions right away ( nasiko sessions , nasiko history <id> ). Traces, token counts, and cost additionally require CODING_AGENT_OTLP_ENDPOINT , covered below. Routing: give the harness back the model choice Some harnesses arrive tied to a provider by default. Claude Code defaults to Anthropic; Codex defaults to OpenAI. That choice arrived with the tool rather than with you. Register a provider and key with Nasiko once, then point a harness at Nasiko instead of at its vendor. Inbound wire protocol and outbound provider are decoupled, so an Anthropic-format request from Claude Code is served by your OpenAI key: nasiko llm-config create --name my-openai --provider openai --model gpt-4o \ --api-key-secret OPENAI_API_KEY --secret-value " $OPENAI_API_KEY " nasiko connect claude --config my-openai The full set of bindings: nasiko connect claude --config < llm-config-name > nasiko connect codex --config < llm-config-name > nasiko connect opencode --config < llm-config-name > nasiko disconnect < agent > # reverse the settings/plugin changes nasiko status < agent > # show current binding connect claude configures Claude Code's apiKeyHelper and ANTHROPIC_BASE_URL . connect codex adds a model_providers.nasiko entry and command-based auth to Codex's config.toml . Their credential helpers obtain a one-hour JWT from POST /api/agents/{id}/llm-token ; Codex refreshes its credential on a timer rather than minting one for every request. Claude Code sends the credential in the x-api-key header rather than Authorization ; the router accepts both. connect opencode instead installs plugins/nasiko-llm-router.js under OpenCode's config directory (respecting OPENCODE_CONFIG_DIR and XDG_CONFIG_HOME ), registers a nasiko provider, and makes nasiko/router the default model for new OpenCode sessions only. OpenCode fixes a session's model at creation time in its own database, so resuming an existing session will not route it. Start a new one, or pick "Nasiko Router" explicitly. Inbound wire protocol and outbound provider are fully decoupled: nasiko connect claude --config my-openai-config routes Claude Code's Anthropic-format traffic to OpenAI. ~/.claude/settings.json and OpenCode's config are per-user, global files. Connecting an agent affects every Claude Code / OpenCode process on the machine, not just the current project. LLM config management nasiko llm-config create --name < name > --provider < provider > --model < model > nasiko llm-config list nasiko llm-config update < name > [--provider ...] [--model ...] nasiko llm-config set-default < name > nasiko llm-config attach < name > --agent < agent > # attach to a deployed agent nasiko llm-config detach --agent < agent > nasiko llm-config get < agent > # resolved routing config for an agent nasiko llm-config providers # valid provider/model values + pricing Set a config's model for predictable routing. If it is unset, the router falls back through tier models and then the platform default; list shows provider/? for the unset value. Server configuration Everything is env-driven. server/.env.

ๅ…งๅฎน็‚บๆ”ถ้›†็•ถๆ—ฅๆŠ“ๅ–็š„ repo ๆ่ฟฐๅŽŸๆ–‡๏ผŒๅฎŒๆ•ด่ณ‡่จŠ่ซ‹่ฆ‹ GitHub ๅŽŸ้ ใ€‚