npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@aikyroon/kyros

v1.0.1

Published

Kyros is a multi-provider coding agent that runs locally in your terminal.

Readme

Kyros

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.

The provider is a configuration choice, not something baked into the binary.


Why Kyros

Most terminal agents are wired to a single vendor's API. Kyros speaks three wire protocols, so one agent works across all of them:

| wire_api | Protocol | Endpoint | Providers | | ----------- | ----------------------- | ------------------- | --------- | | responses | OpenAI Responses | /responses | OpenAI, Azure OpenAI | | chat | OpenAI Chat Completions | /chat/completions | DeepSeek, Kimi, GLM, Qwen, MiniMax, OpenRouter, Groq, Together, vLLM, Ollama | | messages | Anthropic Messages | /messages | Anthropic (Claude) |

Switching providers is a config edit, not a reinstall.


Installation

npm — Linux, macOS, Windows

The launcher picks the right prebuilt binary for your platform:

npm install -g @aikyroon/kyros

Or with your package manager of choice:

pnpm add -g @aikyroon/kyros
bun install -g @aikyroon/kyros

Then run it:

kyros --version
kyros

Requires Node.js 18+. Prebuilt binaries cover linux x64/arm64, macOS x64/arm64 and Windows x64/arm64.

Install script — Linux and macOS

No Node.js needed; downloads the binary straight from the GitHub release:

curl -fsSL https://raw.githubusercontent.com/aikyroon/kyros/main/scripts/install/install.sh | sh

Install script — Windows

irm https://raw.githubusercontent.com/aikyroon/kyros/main/scripts/install/install.ps1 | iex

From source

Needs Rust 1.95.0 (pinned in kyros-rs/rust-toolchain.toml, installed automatically by rustup). Build on Linux or macOS; on Windows build inside WSL2, since the sandbox uses Linux primitives.

On Debian/Ubuntu, install the system libraries first:

sudo apt install -y build-essential pkg-config libssl-dev perl curl git
# building the full workspace (not just the binary) also needs:
sudo apt install -y libcap-dev libseccomp-dev libdbus-1-dev
git clone https://github.com/aikyroon/kyros.git
cd kyros/kyros-rs
cargo build --release --bin kyros
install -m 0755 target/release/kyros ~/.local/bin/kyros

Build tip: on machines with many cores, the aws-lc-sys C sources can fail under high parallelism with no compiler diagnostic. If that happens, retry with cargo build --release --bin kyros -j4.


Quickstart

Set an API key and point Kyros at a provider:

export DEEPSEEK_API_KEY="sk-..."
kyros -c model_provider=deepseek -c model=deepseek-chat "explain this repo"

Or start the interactive TUI and let it use your configured default:

kyros

Run a one-shot task without the interactive UI:

kyros exec "add tests for the parser module"

Check that config, auth, and runtime are healthy:

kyros doctor

Configuration

Kyros reads ~/.kyros/config.toml. The config directory can be overridden with KYROS_HOME.

Migrating from Codex? On first run Kyros copies config.toml and auth.json from an existing ~/.codex into its own ~/.kyros. Databases and sessions stay with Codex — the two tools keep separate state.

Pick the active provider and model at the top level, then define the provider:

model = "deepseek-chat"
model_provider = "deepseek"

[model_providers.deepseek]
name = "DeepSeek"
base_url = "https://api.deepseek.com/v1"
env_key = "DEEPSEEK_API_KEY"
wire_api = "chat"

env_key names the environment variable holding the API key; Kyros sends it as Authorization: Bearer <key>.

Anthropic / Claude

Anthropic does not use bearer auth. Supply the key via x-api-key and pin the API version, leaving env_key unset:

model = "claude-sonnet-4-6"
model_provider = "anthropic"

[model_providers.anthropic]
name = "Anthropic"
base_url = "https://api.anthropic.com/v1"
wire_api = "messages"

[model_providers.anthropic.http_headers]
"anthropic-version" = "2023-06-01"

[model_providers.anthropic.env_http_headers]
"x-api-key" = "ANTHROPIC_API_KEY"

OpenAI

Both ChatGPT login and a plain API key work:

printenv OPENAI_API_KEY | kyros login --with-api-key

More providers

Kimi, GLM, Qwen, MiniMax, OpenRouter and other OpenAI-compatible gateways follow the same wire_api = "chat" shape. See docs/multi-provider.md for a ready-to-copy block for each.

You can also override per invocation without touching the config file:

kyros -c model_provider=anthropic -c model=claude-sonnet-4-6 "review my diff"

Usage

| Command | What it does | | --- | --- | | kyros | Interactive TUI | | kyros "<prompt>" | Interactive, seeded with a prompt | | kyros exec "<task>" | Non-interactive run | | kyros review | Code review, non-interactive | | kyros apply | Apply the agent's latest diff to your working tree | | kyros resume | Resume a previous session | | kyros doctor | Diagnose config, auth, and runtime health | | kyros mcp | Manage external MCP servers | | kyros sandbox | Run a command inside the Kyros sandbox | | kyros login / kyros logout | Manage credentials |

Run kyros --help for the full list.


Known limitations

The chat and messages codecs stream assistant text and tool calls, but a few things are not yet wired up for them:

  • Provider-side reasoning traces are not surfaced.
  • Token-usage accounting is not reported.
  • Images in inputs are not forwarded.
  • Anthropic requests use a fixed max_tokens of 8192.

The responses (OpenAI) path is unaffected by all of the above.


Documentation


Development

cd kyros-rs
cargo check --workspace --all-targets   # fast validation
cargo test -p kyros-core                # test a single crate

The Rust workspace lives in kyros-rs/ (126 crates). kyros-cli/ is the npm wrapper, and sdk/ holds the Python and TypeScript SDKs.


License & attribution

Licensed under Apache-2.0 — see LICENSE.

This project incorporates code from OpenAI Codex, Copyright 2025 OpenAI, licensed under Apache-2.0. Required attributions are listed in NOTICE.

Kyros is not affiliated with or endorsed by OpenAI or Anthropic.