{"_id":"@aikyroon/kyros","_rev":"3-ad0acc8a54b9f142d5e33302925a5ea9","name":"@aikyroon/kyros","dist-tags":{"latest":"1.0.1","platform-win32-x64":"1.0.1-win32-x64"},"versions":{"1.0.0-win32-x64":{"name":"@aikyroon/kyros","version":"1.0.0-win32-x64","license":"Apache-2.0","_id":"@aikyroon/kyros@1.0.0-win32-x64","maintainers":[{"name":"aikyroon","email":"aikyroon@gmail.com"}],"homepage":"https://github.com/aikyroon/kyros#readme","bugs":{"url":"https://github.com/aikyroon/kyros/issues"},"os":["win32"],"cpu":["x64"],"dist":{"shasum":"0f0eecd583ab03d2d22448f7c508030a17d3dd2e","tarball":"https://registry.npmjs.org/@aikyroon/kyros/-/kyros-1.0.0-win32-x64.tgz","fileCount":7,"integrity":"sha512-LnlWdKJ2MxGZKMbpMJEcjz/DlX4liAeL9LdKKD6QDIuT7knOjGWrFG2ObwFmnu3PFQcEF4PxpS07ff6M5oXSkA==","signatures":[{"sig":"MEUCIQDMKHFq9LovTSfXXjl6mzViKmWN0O0MF7S74OtgPpPlFAIgFKP2m0GhC2JR8Y9hr4dUVN7n7g1pOFMkdZiP4xeFbdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354707232},"_from":"file:dist/npm/kyros-npm-win32-x64-1.0.0.tgz","engines":{"node":">=16"},"_npmUser":{"name":"aikyroon","email":"aikyroon@gmail.com"},"_resolved":"B:\\ModSpace\\Kyroon\\codex-main\\codex-main\\dist\\npm\\kyros-npm-win32-x64-1.0.0.tgz","_integrity":"sha512-LnlWdKJ2MxGZKMbpMJEcjz/DlX4liAeL9LdKKD6QDIuT7knOjGWrFG2ObwFmnu3PFQcEF4PxpS07ff6M5oXSkA==","repository":{"url":"git+https://github.com/aikyroon/kyros.git","type":"git","directory":"kyros-cli"},"_npmVersion":"11.11.0","description":"**Kyros** is a coding agent that runs locally in your terminal and works with **any model provider that speaks the OpenAI or Anthropic wire format** — OpenAI, Claude, DeepSeek, Kimi, GLM, Qwen, MiniMax, OpenRouter, Groq, or a local server.","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319","_npmOperationalInternal":{"tmp":"tmp/kyros_1.0.0-win32-x64_1784622664942_0.8154875083289963","host":"s3://npm-registry-packages-npm-production"}},"1.0.1-win32-x64":{"name":"@aikyroon/kyros","version":"1.0.1-win32-x64","license":"Apache-2.0","_id":"@aikyroon/kyros@1.0.1-win32-x64","maintainers":[{"name":"aikyroon","email":"aikyroon@gmail.com"}],"homepage":"https://github.com/aikyroon/kyros#readme","bugs":{"url":"https://github.com/aikyroon/kyros/issues"},"os":["win32"],"cpu":["x64"],"dist":{"shasum":"6dc30b23a332845ab0c1298489c3e7991814172e","tarball":"https://registry.npmjs.org/@aikyroon/kyros/-/kyros-1.0.1-win32-x64.tgz","fileCount":7,"integrity":"sha512-SIWzZYKxSgCvkKKDhhMokOO3DaUDEhwF+HmDjfvGeNhTfMUz+AluThlUAYxMYiWjnIeyhFPctdlOqi6RzCEHqQ==","signatures":[{"sig":"MEUCIQCFR5UoEEnwXidnV8oiHkuNrhPnnvbGqOqDA3QTdPyoVQIgBD8XHskuLA/jW/qhOUjWEBVCkpW9ExzPZrQOUbxc21I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354699110},"_from":"file:dist/npm/kyros-npm-win32-x64-1.0.1.tgz","engines":{"node":">=16"},"_npmUser":{"name":"aikyroon","email":"aikyroon@gmail.com"},"_resolved":"B:\\ModSpace\\Kyroon\\codex-main\\codex-main\\dist\\npm\\kyros-npm-win32-x64-1.0.1.tgz","_integrity":"sha512-SIWzZYKxSgCvkKKDhhMokOO3DaUDEhwF+HmDjfvGeNhTfMUz+AluThlUAYxMYiWjnIeyhFPctdlOqi6RzCEHqQ==","repository":{"url":"git+https://github.com/aikyroon/kyros.git","type":"git","directory":"kyros-cli"},"_npmVersion":"11.11.0","description":"**Kyros** is a coding agent that runs locally in your terminal and works with **any model provider that speaks the OpenAI or Anthropic wire format** — OpenAI, Claude, DeepSeek, Kimi, GLM, Qwen, MiniMax, OpenRouter, Groq, or a local server.","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319","readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/kyros_1.0.1-win32-x64_1784625916982_0.12206758834457365","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aikyroon/kyros","version":"1.0.1","description":"Kyros is a multi-provider coding agent that runs locally in your terminal.","license":"Apache-2.0","bin":{"kyros":"bin/kyros.js"},"type":"module","engines":{"node":">=16"},"repository":{"type":"git","url":"git+https://github.com/aikyroon/kyros.git","directory":"kyros-cli"},"packageManager":"pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319","optionalDependencies":{"@aikyroon/kyros-linux-x64":"npm:@aikyroon/kyros@1.0.1-linux-x64","@aikyroon/kyros-linux-arm64":"npm:@aikyroon/kyros@1.0.1-linux-arm64","@aikyroon/kyros-darwin-x64":"npm:@aikyroon/kyros@1.0.1-darwin-x64","@aikyroon/kyros-darwin-arm64":"npm:@aikyroon/kyros@1.0.1-darwin-arm64","@aikyroon/kyros-win32-x64":"npm:@aikyroon/kyros@1.0.1-win32-x64","@aikyroon/kyros-win32-arm64":"npm:@aikyroon/kyros@1.0.1-win32-arm64"},"_id":"@aikyroon/kyros@1.0.1","bugs":{"url":"https://github.com/aikyroon/kyros/issues"},"homepage":"https://github.com/aikyroon/kyros#readme","_integrity":"sha512-YDrH5jMXXZ/e0XFPm3BP0opm+quIpdWKp7Xbvm8bCOwuG9NN4Xhhm8/PAhXHyklE0PVDqpFaVo92tcaa017h/Q==","_resolved":"B:\\ModSpace\\Kyroon\\codex-main\\codex-main\\dist\\npm\\kyros-npm-1.0.1.tgz","_from":"file:dist/npm/kyros-npm-1.0.1.tgz","_nodeVersion":"22.18.0","_npmVersion":"11.11.0","dist":{"integrity":"sha512-YDrH5jMXXZ/e0XFPm3BP0opm+quIpdWKp7Xbvm8bCOwuG9NN4Xhhm8/PAhXHyklE0PVDqpFaVo92tcaa017h/Q==","shasum":"b3c40196bd3536fddad4dc0cc682e46556c3c3ec","tarball":"https://registry.npmjs.org/@aikyroon/kyros/-/kyros-1.0.1.tgz","fileCount":3,"unpackedSize":13745,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICKAYhIacIBcxK4Ax/EWso2dympJdC0SzTA5f46ObDdsAiA5/O8T/PlaEnIgVWpSxKxlttofZ4QtO0Gt4vwsGORsNw=="}]},"_npmUser":{"name":"aikyroon","email":"aikyroon@gmail.com"},"directories":{},"maintainers":[{"name":"aikyroon","email":"aikyroon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kyros_1.0.1_1784626194696_0.23418135215313596"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-21T08:31:04.712Z","modified":"2026-07-21T09:29:54.981Z","1.0.0-win32-x64":"2026-07-21T08:31:06.593Z","1.0.1-win32-x64":"2026-07-21T09:25:19.034Z","1.0.1":"2026-07-21T09:29:54.820Z"},"bugs":{"url":"https://github.com/aikyroon/kyros/issues"},"license":"Apache-2.0","homepage":"https://github.com/aikyroon/kyros#readme","repository":{"type":"git","url":"git+https://github.com/aikyroon/kyros.git","directory":"kyros-cli"},"description":"Kyros is a multi-provider coding agent that runs locally in your terminal.","maintainers":[{"name":"aikyroon","email":"aikyroon@gmail.com"}],"readme":"# Kyros\n\n**Kyros** is a coding agent that runs locally in your terminal and works with **any model provider that speaks the OpenAI or Anthropic wire format** — OpenAI, Claude, DeepSeek, Kimi, GLM, Qwen, MiniMax, OpenRouter, Groq, or a local server.\n\nThe provider is a configuration choice, not something baked into the binary.\n\n---\n\n## Why Kyros\n\nMost terminal agents are wired to a single vendor's API. Kyros speaks three wire protocols, so one agent works across all of them:\n\n| `wire_api`  | Protocol                | Endpoint            | Providers |\n| ----------- | ----------------------- | ------------------- | --------- |\n| `responses` | OpenAI Responses        | `/responses`        | OpenAI, Azure OpenAI |\n| `chat`      | OpenAI Chat Completions | `/chat/completions` | DeepSeek, Kimi, GLM, Qwen, MiniMax, OpenRouter, Groq, Together, vLLM, Ollama |\n| `messages`  | Anthropic Messages      | `/messages`         | Anthropic (Claude) |\n\nSwitching providers is a config edit, not a reinstall.\n\n---\n\n## Installation\n\n### npm — Linux, macOS, Windows\n\nThe launcher picks the right prebuilt binary for your platform:\n\n```bash\nnpm install -g @aikyroon/kyros\n```\n\nOr with your package manager of choice:\n\n```bash\npnpm add -g @aikyroon/kyros\nbun install -g @aikyroon/kyros\n```\n\nThen run it:\n\n```bash\nkyros --version\nkyros\n```\n\nRequires Node.js 18+. Prebuilt binaries cover linux x64/arm64, macOS x64/arm64\nand Windows x64/arm64.\n\n### Install script — Linux and macOS\n\nNo Node.js needed; downloads the binary straight from the GitHub release:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/aikyroon/kyros/main/scripts/install/install.sh | sh\n```\n\n### Install script — Windows\n\n```powershell\nirm https://raw.githubusercontent.com/aikyroon/kyros/main/scripts/install/install.ps1 | iex\n```\n\n### From source\n\nNeeds **Rust 1.95.0** (pinned in `kyros-rs/rust-toolchain.toml`, installed\nautomatically by [rustup](https://rustup.rs)). Build on Linux or macOS; on\nWindows build inside **WSL2**, since the sandbox uses Linux primitives.\n\nOn Debian/Ubuntu, install the system libraries first:\n\n```bash\nsudo apt install -y build-essential pkg-config libssl-dev perl curl git\n# building the full workspace (not just the binary) also needs:\nsudo apt install -y libcap-dev libseccomp-dev libdbus-1-dev\n```\n\n```bash\ngit clone https://github.com/aikyroon/kyros.git\ncd kyros/kyros-rs\ncargo build --release --bin kyros\ninstall -m 0755 target/release/kyros ~/.local/bin/kyros\n```\n\n> **Build tip:** on machines with many cores, the `aws-lc-sys` C sources can fail\n> under high parallelism with no compiler diagnostic. If that happens, retry with\n> `cargo build --release --bin kyros -j4`.\n\n---\n\n## Quickstart\n\nSet an API key and point Kyros at a provider:\n\n```bash\nexport DEEPSEEK_API_KEY=\"sk-...\"\nkyros -c model_provider=deepseek -c model=deepseek-chat \"explain this repo\"\n```\n\nOr start the interactive TUI and let it use your configured default:\n\n```bash\nkyros\n```\n\nRun a one-shot task without the interactive UI:\n\n```bash\nkyros exec \"add tests for the parser module\"\n```\n\nCheck that config, auth, and runtime are healthy:\n\n```bash\nkyros doctor\n```\n\n---\n\n## Configuration\n\nKyros reads `~/.kyros/config.toml`. The config directory can be overridden with `KYROS_HOME`.\n\n> Migrating from Codex? On first run Kyros copies `config.toml` and `auth.json`\n> from an existing `~/.codex` into its own `~/.kyros`. Databases and sessions\n> stay with Codex — the two tools keep separate state.\n\nPick the active provider and model at the top level, then define the provider:\n\n```toml\nmodel = \"deepseek-chat\"\nmodel_provider = \"deepseek\"\n\n[model_providers.deepseek]\nname = \"DeepSeek\"\nbase_url = \"https://api.deepseek.com/v1\"\nenv_key = \"DEEPSEEK_API_KEY\"\nwire_api = \"chat\"\n```\n\n`env_key` names the environment variable holding the API key; Kyros sends it as `Authorization: Bearer <key>`.\n\n### Anthropic / Claude\n\nAnthropic does not use bearer auth. Supply the key via `x-api-key` and pin the API version, leaving `env_key` unset:\n\n```toml\nmodel = \"claude-sonnet-4-6\"\nmodel_provider = \"anthropic\"\n\n[model_providers.anthropic]\nname = \"Anthropic\"\nbase_url = \"https://api.anthropic.com/v1\"\nwire_api = \"messages\"\n\n[model_providers.anthropic.http_headers]\n\"anthropic-version\" = \"2023-06-01\"\n\n[model_providers.anthropic.env_http_headers]\n\"x-api-key\" = \"ANTHROPIC_API_KEY\"\n```\n\n### OpenAI\n\nBoth ChatGPT login and a plain API key work:\n\n```bash\nprintenv OPENAI_API_KEY | kyros login --with-api-key\n```\n\n### More providers\n\nKimi, GLM, Qwen, MiniMax, OpenRouter and other OpenAI-compatible gateways follow the same `wire_api = \"chat\"` shape. See **[docs/multi-provider.md](docs/multi-provider.md)** for a ready-to-copy block for each.\n\nYou can also override per invocation without touching the config file:\n\n```bash\nkyros -c model_provider=anthropic -c model=claude-sonnet-4-6 \"review my diff\"\n```\n\n---\n\n## Usage\n\n| Command | What it does |\n| --- | --- |\n| `kyros` | Interactive TUI |\n| `kyros \"<prompt>\"` | Interactive, seeded with a prompt |\n| `kyros exec \"<task>\"` | Non-interactive run |\n| `kyros review` | Code review, non-interactive |\n| `kyros apply` | Apply the agent's latest diff to your working tree |\n| `kyros resume` | Resume a previous session |\n| `kyros doctor` | Diagnose config, auth, and runtime health |\n| `kyros mcp` | Manage external MCP servers |\n| `kyros sandbox` | Run a command inside the Kyros sandbox |\n| `kyros login` / `kyros logout` | Manage credentials |\n\nRun `kyros --help` for the full list.\n\n---\n\n## Known limitations\n\nThe `chat` and `messages` codecs stream assistant text and tool calls, but a few things are not yet wired up for them:\n\n- Provider-side reasoning traces are not surfaced.\n- Token-usage accounting is not reported.\n- Images in inputs are not forwarded.\n- Anthropic requests use a fixed `max_tokens` of 8192.\n\nThe `responses` (OpenAI) path is unaffected by all of the above.\n\n---\n\n## Documentation\n\n- [Multiple model providers](docs/multi-provider.md) — config for every supported provider\n- [Configuration reference](docs/config.md)\n- [Getting started](docs/getting-started.md)\n- [Sandbox](docs/sandbox.md)\n\n---\n\n## Development\n\n```bash\ncd kyros-rs\ncargo check --workspace --all-targets   # fast validation\ncargo test -p kyros-core                # test a single crate\n```\n\nThe Rust workspace lives in `kyros-rs/` (126 crates). `kyros-cli/` is the npm wrapper, and `sdk/` holds the Python and TypeScript SDKs.\n\n---\n\n## License & attribution\n\nLicensed under Apache-2.0 — see [LICENSE](LICENSE).\n\nThis project incorporates code from [OpenAI Codex](https://github.com/openai/codex), Copyright 2025 OpenAI, licensed under Apache-2.0. Required attributions are listed in [NOTICE](NOTICE).\n\nKyros is not affiliated with or endorsed by OpenAI or Anthropic.\n","readmeFilename":"README.md"}