Most open-source agent clients let you set your own API base URL, but three things decide whether that actually works: the wire protocol the client speaks, where the bring-your-own-key boundary sits, and whether the project is still maintained. This directory lists 77 agent clients — 64 across terminal coding agents, editors, desktop chat apps, workflow builders and always-on personal agents, plus 3 with no documented third-party endpoint and 10 retired or superseded — with each one's protocol, endpoint boundary and lifecycle stated separately so you can tell "it takes a base URL" apart from "it will do what you need".
This is a navigational index, not a ranking. No client here has been runtime-tested by Kunavo, nothing is scored, and retired projects appear with their status rather than being quietly dropped. Client facts were gathered on September 17, 2026. On September 18, 2026 every lifecycle cell in the archived and no-endpoint tables was re-checked against the GitHub API, along with most of the rows listed as active; protocol and bring-your-own-key detail was re-read for a subset rather than for all 77. Each row links the page it was written from, so any cell can be re-checked at the source.
The three axes that decide whether a custom endpoint works
A single "supports custom API" column hides most of the real failure modes. Every row below separates them.
1. Wire protocol
"OpenAI-compatible" is the most common shape but not the only one, and the names clients use for these do not always match what they send.
| Protocol | What the client sends | What that means for an endpoint |
|---|---|---|
| OpenAI Chat Completions | POST to /v1/chat/completions | The widest-supported shape; the default assumption in most clients here |
| OpenAI Responses | POST to /v1/responses | A different endpoint. A gateway that implements only chat completions will not answer it |
| Anthropic Messages | POST to /v1/messages | A different request and response shape entirely, not a header change |
| Google Gemini or Vertex native | models/*:generateContent | Gemini CLI takes a base URL but still speaks this, so an OpenAI-compatible URL will not work there |
| Native only | Fixed vendor endpoints | No base-URL field exists; the endpoint is compiled in |
Two naming traps are worth memorising because the failure looks like a broken endpoint rather than a wrong protocol. In PicoClaw, provider: "anthropic" sends OpenAI-shaped chat completions and anthropic-messages sends the native Messages API, so an endpoint serving only /v1/messages returns 404 under the first value. In Factory's Droid, provider: openai means the Responses API and generic-chat-completion-api is the value for a chat-completions gateway.
2. Bring-your-own-key boundary
| Boundary | What it looks like | Examples in this directory |
|---|---|---|
| Freely configurable | A documented base-URL field, no account or paid tier involved | Most terminal agents, most self-hosted chat front-ends |
| Surface-gated | Works on some surfaces of the product and not others | Droid (CLI and desktop only), Qoder (IDE, not CLI), OpenHands (local agent-server backend, not cloud), AutoGPT Platform (self-hosted chat agent, not the block layer) |
| Plan-gated | Requires a paid or early-access tier | Amp custom endpoint URLs, Warp for organizations above ten employees, Smart Chat Pro |
| Protocol-scoped | The field exists but accepts only one vendor protocol | Gemini CLI, nanocode, NanoClaw on its default runtime |
| None documented | Keys yes, endpoint no | Kiro CLI, Devon |
3. Lifecycle
An unarchived repository is weak evidence. Continue is read-only but carries no archive flag, so an archive-flag check reports it as live; Aider's repository is not archived either, but it has had no release since August 2025, and Stakpak's has neither an archive flag nor a commit since July 2026. A push date is weaker still, because it moves when anything is pushed anywhere in the repository while the default branch sits still — that gap is why Continue and Witsy both read as fresher than they are. Lifecycle cells below rest on the default-branch commit log, the release list and the project's own statement, not on a push date.
Why a base URL is not a compatibility guarantee
These are the recurring reasons a correctly configured endpoint still misbehaves, all drawn from the clients' own documentation:
- Path handling. Cherry Studio wants the provider root and appends the version path itself, so pasting a full chat-completions URL doubles the path. Jan requires the version path in the base URL. TypingMind wants the complete
/v1/chat/completionspath. SillyTavern says not to add the suffix. Dify appends the version itself for non-LLM model types. - Model-list requirements. n8n's credential test issues
GET /modelsand will not save without it. pool's context-length override applies only when the model appears in the provider's model list. Open WebUI works around a missing list with a manual allowlist field. - Hand-declared model metadata. None of Zed, Crush, Theia, OpenClaw, ChatWise or Dyad discovers a model's limits from your endpoint. What that costs you differs: Zed, Crush and ChatWise have you type the context window, output limits or per-token prices; OpenClaw and Dyad take those fields as optional and apply defaults when you leave them blank; Theia's custom model entry carries no limits or prices at all. Where a client reports spend from numbers you typed, the figure reflects what you typed, not what was billed.
- Feature subsets. Twinny's autocomplete uses the legacy completions route while chat uses chat completions. AnythingLLM configures embeddings separately from chat. Jan cannot infer tool, vision or audio support for a custom provider. Oh My Pi needs a flag for endpoints that reject strict tool definitions.
Terminal coding agents
Retired and superseded terminal projects — SWE-agent, Plandex, Mentat, the archived Go OpenCode CLI and iFlow CLI — are in the archived section further down rather than in this table. Kiro CLI and Devon are in the no-endpoint table.
| Client | Lifecycle | Protocol / BYOK boundary | Best for | Key limit | Kunavo page |
|---|---|---|---|---|---|
| Aider | Not archived but dormant: last release 2025-08-09, last default-branch commit 2026-05-22 | OpenAI Chat Completions via the openai/ model prefix and OPENAI_API_BASE. Freely configurable | Terminal pair programming on an existing git repo, with edits applied and auto-committed | No release in over 13 months, so metadata for newer models can lag and may need supplying by hand | Pricing, setup |
| goose | Active, but relocated: donated by Block to the Agentic AI Foundation, repo moved to aaif-goose/goose and docs to goose-docs.ai, announced 2026-04-07 | OpenAI Chat Completions (OPENAI_HOST plus OPENAI_BASE_PATH) and Anthropic Messages (ANTHROPIC_HOST). Freely configurable | A general-purpose local agent beyond coding — desktop app, CLI and embeddable API, extended over MCP | The base URL is split across two variables, so an endpoint rooted at a version path needs that path set explicitly | vs Claude Code |
| Crush | Active; pushed 2026-09-18, the same day it was checked | Distinct types: openai, openai-compat for non-OpenAI compatible APIs, and anthropic. Freely configurable via crushrc or crush.json | A polished terminal agent where per-model context window and prices are declared locally, so cost is visible in-session | Nothing is discovered — context window, max tokens and prices are entered by hand. Both config files are trusted code: crushrc runs in a shell, and command substitution in crush.json executes at load | — |
| Pi | Active; earendil-works/pi pushed 2026-09-18. The older badlogic/pi-mono path redirects here | openai-completions, openai-responses, anthropic-messages, google-generative-ai in ~/.pi/agent/models.json. Freely configurable | Building on or embedding a small, hackable agent core | The README states new issues and pull requests from new contributors are auto-closed by default, and you adopt a harness monorepo rather than just a CLI | Pricing, vs OpenCode |
| Oh My Pi | Active fork of Pi; pushed 2026-09-18 | The widest set here: openai-completions, openai-responses, openai-codex-responses, azure-openai-responses, anthropic-messages and three Google variants. Freely configurable via models.yml | Maximum provider and protocol coverage in one terminal agent, with LSP and DAP tooling wired in | Anthropic-compatible endpoints that reject the strict field on tool definitions need disableStrictTools; discovery forces a /v1/models path unless explicitly disabled | — |
| pool | Active but small: pushed 2026-08-18, 425 stars, commercially backed by Poolside | OpenAI-compatible only on the custom route (POOLSIDE_STANDALONE_BASE_URL); separately speaks ACP. Environment-variable only, no gate | An ACP-native terminal agent you can also run as a server for a compatible editor | The endpoint must serve GET /v1/models and list the selected model, or the context-length override silently stops applying | — |
| DeepSeek Harness | Active, self-declared developer preview; pushed 2026-09-17 | openai-completions, openai-responses or anthropic-messages, one protocol per provider entry in settings.yaml. Freely configurable | Trying DeepSeek's plugin-architecture harness as a local web UI pointed at any endpoint | The maintainers promise compatibility-breaking changes, and OAuth-based providers are not supported through the custom-provider interface | — |
| Droid (Factory) | Active commercial product, closed source; documentation and pricing page both reachable 2026-09-18. factory.ai redirects to factory.com | anthropic is Messages, openai is Responses, generic-chat-completion-api is Chat Completions. Surface-gated: CLI and desktop app only | Keeping a commercially supported agent while moving inference to your own endpoint on the local surfaces | Custom models never appear in the hosted web or mobile apps. No plan-tier gate is stated on the BYOK page and the pricing page does not list the feature — that is an absence of a documented gate, not proof there is none | Pricing |
| Qwen Code | Active; pushed 2026-09-18 | OpenAI Chat Completions, Anthropic Messages, Google GenAI and Vertex, each with its own base-URL variable, plus an explicit Custom Provider option. Freely configurable | Switching protocol and provider at runtime from a single terminal client | The Qwen OAuth free tier was discontinued 2026-04-15 and removed from the auth dialog, so any guide still promising a free daily quota is stale | Pricing |
| Kimi Code CLI | Active; MoonshotAI/kimi-code pushed 2026-09-18. The older Kimi CLI repo says it is evolving into this one and will be gradually wound down | OpenAI Chat Completions and Responses, Anthropic Messages, Google GenAI, Vertex — config.toml provider blocks. Freely configurable | Keeping a managed Moonshot login as one provider while adding a third-party endpoint alongside it | Credentials are never read from an ambient shell variable: the variable name must be declared in config, or startup fails | vs Claude Code |
| OpenHands | Active but restructured: org renamed from All-Hands-AI, the main repo now ships Agent Canvas (1.20.0, 2026-09-17) while the agent lives in a separate SDK repo. CLI mode is still documented | LiteLLM, so a provider prefix is mandatory. Backend-gated: provider connections are available on local agent-server backends and hidden on a cloud backend | Autonomous, sandboxed multi-step work — issue-to-pull-request tasks and scheduled automations — on your own machine or server | On the proxy path the model name must already be configured on that proxy. Whether the cloud backend allows a direct key on a provider profile is not documented either way | vs OpenCode |
| mini-SWE-agent | Active; pushed 2026-09-14, currently on v2 with v1 kept on a branch | LiteLLM; a custom endpoint goes through model_kwargs with an OpenAI-compatible provider and an api_base. Freely configurable | Cheap, scriptable batch and benchmark runs, with a core loop short enough to read before trusting it | A model outside the LiteLLM registry breaks cost tracking, and v2 changed the configuration layout so v1-era instructions do not transfer | — |
| Nanocoder | Active; pushed 2026-09-18. Run by a community collective rather than a company | OpenAI-compatible, plus Ollama and per-vendor presets. A provider entry in agents.config.json or the settings wizard. Freely configurable | Local-first terminal coding where a remote API is one option among local models rather than the assumed default | Settings resolve block by block, so a one-field project override discards the rest of that block and falls back to built-in defaults instead of your global config | — |
| Mistral Vibe | Active; pushed 2026-09-18. An official Mistral project | OpenAI-compatible by default; provider blocks in config.toml carry api_base and the name of the key variable. Freely configurable | A small, auditable Python CLI from a model vendor, with your own endpoint underneath | The provider reference lives in the in-repo config reference rather than the README, so key names can move between releases — pin a version in any setup instructions | — |
| Gemini CLI | Active; pushed 2026-09-18 | Native Gemini only. The base-URL override applies to API-key auth, must be HTTPS unless it points at localhost, and no OpenAI-compatible mode is documented | Gemini-first terminal work — and the clearest example of why protocol and endpoint are separate questions | The override is documented only for the API-key path, so do not count on it reaching the Google-account OAuth login, and an OpenAI-compatible URL will not work unless the endpoint also serves the Gemini wire protocol | vs Claude Code |
| GitHub Copilot CLI | Active; release v1.0.86 on 2026-09-17. Not the archived gh copilot extension, which is a separate repo archived with a last push of 2025-10-30 | OpenAI Chat Completions, Azure OpenAI or Anthropic, selected by a provider-type variable alongside a base-URL variable. No plan gate for an individual; org and enterprise BYOK was not checked | Running GitHub's coding agent against your own endpoint with no Copilot seat and no GitHub login | BYOK lets the CLI run with no GitHub authentication, and the authentication page lists what stops working without it: /delegate, the GitHub MCP server and GitHub Code Search. Model calls still work, and you can sign in as well as bring a key to keep both | vs Claude Code |
| gptme | Active; pushed 2026-09-18. Moved from a personal namespace to the gptme org, old paths redirect | OpenAI-compatible only for custom endpoints, via a local model prefix with a base-URL variable or a named provider entry. Freely configurable | A general terminal agent with shell and browser tools, repointed by setting one environment variable | An endpoint that speaks only Anthropic Messages has no documented slot, and any other protocol needs a plugin written against the provider entry point | — |
| Open Interpreter | Active but rewritten into a different program: now a Rust implementation based on Codex, releases tagged rust-v0.0.44 on 2026-09-15, and the repository path itself moved to openinterpreter/openinterpreter | A TOML provider table where wire_api accepts responses or chat. Freely configurable | A Codex-style harness deliberately tuned for cheap open models, configured through a provider table | The name no longer means what most write-ups mean by it — old Python config files, flags and tutorials do not apply. The documented example uses the responses wire, so a chat-completions-only endpoint must be declared explicitly | — |
| Amp | Commercially active; a Sourcegraph agent, with a policy announcement dated 2026-09-13. Tiers are Hobby (free), Individual/Megawatt, Gigawatt, Teams and Enterprise | Arbitrary custom endpoint URLs are early access for Megawatt and Gigawatt members, behind an experimental feature toggle; the announcement promises only that it will roll out to everyone soon, with no date. Plain bring-your-own-key is separate and broader — the same announcement states there are no BYOK token fees or limits for anyone except the Enterprise tier, and that everyone can use Amp with their own keys at no monthly fee | Teams wanting a commercial agent with strong code search while token spend stays on their own provider account | Do not assume an arbitrary base URL: as of 2026-09-18 that specific capability is early access only | — |
| nanocode | Published but barely maintained: created 2026-04-01, last push 2026-04-02, 20 stars | Anthropic Messages only, despite the README table. Base URL set by environment variable or a config command. Freely configurable | Reading rather than running — a short Python codebase showing how a Claude-Code-shaped agent loop is assembled | The advertised OpenAI compatibility does not exist in the code: the client wraps the Anthropic SDK, so a plain chat-completions endpoint will not work | — |
| QodeX | Active but very small: created 2026-06-11, last push 2026-08-22, 32 stars. Unrelated to OpenAI's Codex | An openai type taking an arbitrary base URL, an ollama type, and an anthropic type with prompt caching on by default. Config holds the key variable name, not the key. Freely configurable | Local-first work where one configuration holds both a local server and a cloud endpoint, switched per run with a profile | Single-maintainer scale with no community to absorb a breaking upstream change, and none of it is runtime-verified by anyone | — |
| GoCode | Active but minimal: created 2026-07-25, last default-branch commit 2026-09-17, 5 stars | Mostly OpenAI-shaped across nine named gateways, with Anthropic as the one native entry; per-provider base_url in config.toml. Freely configurable | A single small Go binary with in-session provider switching and no Node or Python runtime on the machine | Shipped default model ids are already stale, so you will pin them by hand — and the name collides with the long-established Go autocompletion daemon | — |
| Jan Agent | Preview: the documentation states the installer pulls from a nightly channel. The parent repo is active, last commit 2026-09-18 | OpenAI-compatible by default, Anthropic Messages via an api-type flag. Flags, a config file or an environment variable. Freely configurable | A terminal agent aimed at either an OpenAI-style or an Anthropic-style endpoint by changing one flag | Preview software installed from a nightly channel, so flags and behaviour can change between builds and any setup you write down is version-specific | — |
| Junie CLI | Active; the JetBrains custom-model documentation page was stamped 18 September 2026, the day it was checked | A JSON model profile with a base URL, a key (environment-variable interpolation supported) and an apiType selecting OpenAI completions, Anthropic or Gemini format. The BYOK page states no JetBrains AI subscription is required | JetBrains users who want the Junie agent in a terminal, billed by their own provider | The documentation describes the CLI specifically and does not confirm the same profiles apply to the IDE plugin; it also stresses the model must be strong enough for agentic tool use | — |
| Docker Agent | Active, renamed from cagent; the old repo path resolves to the new one and legacy environment-variable prefixes still work | OpenAI chat completions through an explicit api_type with a base URL and a key-variable name, plus native anthropic, google and bedrock provider types. Freely configurable | Declarative multi-agent teams written in YAML and shipped as OCI artifacts | Naming and billing confusion: older cagent material, the current Docker Agent docs and Docker's own AI subscription pages describe different things | — |
| fast-agent | Active; repository not archived, with open issues and pull requests at the time of check | A generic OpenAI-compatible provider taking base_url and api_key in YAML, or a base-URL flag for a single run. Native Anthropic, OpenAI, Google, Azure and DeepSeek paths exist separately. Freely configurable | Building MCP-native agents and workflow patterns in Python, driven from an interactive CLI | A framework rather than a product — no hosted service or commercial support — and the documented generic examples are local endpoints, so a remote endpoint is in spec but not the illustrated shape | — |
| Stakpak | Dormant, not archived: Apache-2.0, but the newest default-branch commit is 2026-07-06 and the newest release v0.3.88 is dated 2026-06-10 — over two months quiet at the time of check | OpenAI-compatible via an api_endpoint key; native Anthropic and OpenAI keys also accepted. A Stakpak account is one option rather than a requirement | DevOps and infrastructure work — Kubernetes debugging, CI/CD and infrastructure-as-code — with guardrails against destructive commands | Both worked examples in the README point api_endpoint at a local server, so the remote case is in spec but not the illustrated shape. Combined with the commit gap above, treat it as a project to check before adopting rather than one in active development | — |
| VT Code | Active but explicitly experimental and solo-maintained; the README says local inference and some automation flows may change between releases | An OpenAI-compatible custom-provider array in vtcode.toml with base_url and a key-variable name, plus an optional providers allowlist. Freely configurable | A single static Rust binary for people who want wide provider choice plus an auditable provider allowlist | Spare-time solo maintenance with self-declared experimental surfaces, so configuration stability across releases is a real risk | — |
| CodeBuddy Code | Active; a Tencent Cloud product whose CLI documentation references v2.153.0 | OpenAI-compatible via a base-URL and key variable pair, presented for third-party model services. No Anthropic-format claim appears in the docs despite the familiar UX. No plan gate on the third-party path | A Claude-Code-shaped terminal workflow with sandboxed execution, custom sub-agents and hooks | Several unrelated products carry the CodeBuddy name, and the vendor's own region switch stops applying once you point the CLI at a third-party base URL | — |
| Warp | Active; the documentation pages checked carry a last-updated date of September 16, 2026 | OpenAI Chat Completions for the custom inference endpoint, configured per user on Free and eligible paid plans. Organizations above ten employees need Business or Enterprise. A separate enterprise-only feature covers cloud-vendor native paths | An agentic terminal UI running against your own endpoint instead of a bundled model quota | Two gates stack: the organization-size rule, and a hard requirement that the endpoint be publicly reachable — localhost, private network addresses and internal-only proxies are rejected outright | — |
Editors and IDE forks
Continue, Void and PearAI are in the archived and superseded section, not here.
| Client | Lifecycle | Protocol / BYOK boundary | Best for | Key limit | Kunavo page |
|---|---|---|---|---|---|
| Zed | Active; pushed 2026-09-18 | Two independent settings trees, OpenAI-compatible and Anthropic-compatible, each with its own api_url. The pricing page gives the free Personal plan unlimited use with your own API keys, so BYOK is not paywalled. Edit prediction has its own tree and can also take an OpenAI-compatible provider | A fast native editor where one key can drive the agent panel, inline assist and edit prediction | No model discovery: every model is hand-declared with its own token limits, and a typo yields a missing model rather than an error. Zed as the model provider, and the default edit-prediction model, still require a Zed sign-in | vs Cursor, setup |
| Theia IDE | Active; pushed 2026-09-18, with a nightly tagged the same day | OpenAI-compatible. A preference array of custom model objects carrying model, url, id and key. No plan or account gate, but AI features ship disabled behind a local toggle | A vendor-neutral Eclipse Foundation desktop IDE where every model endpoint is declared explicitly in settings | No model discovery, and a wrong url or id fails quietly. Do not confuse the downloadable Theia IDE with the Theia platform that other products embed — the configuration above is the IDE's | — |
| Twinny | Active; pushed 2026-09-18, MIT | OpenAI-compatible, over two different routes: chat appends chat-completions to the configured path while autocomplete uses the legacy completions route. Providers added one at a time through a form with a test button. Freely configurable | Free VS Code autocomplete plus chat, with fill-in-the-middle and chat deliberately pointed at different models or even different endpoints | Chat compatibility does not imply autocomplete works: an endpoint serving only chat completions gives working chat and dead ghost text. Verify the completions route and the fill-in-the-middle template separately | — |
| Qoder | Active; an Alibaba agentic coding platform with current custom-model documentation | Surface-gated. The IDE takes a base URL and key with an OpenAI-compatible (chat completions or responses) or Anthropic-compatible picker. The CLI does not: its own custom-models page says not to configure BYOK by hand in settings.json and that the available providers, models and credential fields are fixed by the BYOK catalogue on your account | Repo-aware agentic IDE work on your own key rather than a bundled quota | IDE and CLI do not share BYOK rules, so a product-wide "Qoder supports custom endpoints" claim is false for the CLI | — |
| Dyad | Active; release v1.15.0 on 2026-09-11 and a commit on 2026-09-18 | OpenAI-compatible only. Add a custom provider with an ID, display name and base URL, then add each model with an exact model ID. Dyad Pro credits are an alternative rather than a gate | Local desktop app building where the whole build loop runs on your own key | Custom models need output-token and context-window limits entered by hand; left blank, the app falls back to defaults that may quietly cap long builds | — |
| bolt.diy | Dormant, not archived: last commit 2026-02-07, 83 open issues, last tag v1.0.0 on 2025-05-12 | OpenAI-compatible through an OpenAI-like provider entry, or a base-URL and key pair in a local env file. Fully self-hosted, no gate | Self-hosted in-browser full-stack app building where every key stays in your own env file | Nobody has pushed code since 2026-02-07, so new model ids, provider quirks and the open backlog are yours to carry — a working setup today is not a maintained one | — |
Desktop chat and knowledge-base clients
Witsy is in the archived section; Smart Chat is in the no-endpoint table, because an arbitrary third-party base URL is not documented for it.
| Client | Lifecycle | Protocol / BYOK boundary | Best for | Key limit | Kunavo page |
|---|---|---|---|---|---|
| Cherry Studio | Active; pushed 2026-09-18. AGPL-3.0 community edition with a separately sold enterprise edition and a commercial licence option | OpenAI-compatible by default, with OpenAI Responses, Anthropic and Gemini selectable per provider. Enter the provider root — the app appends the version path itself, and a trailing hash pins the address exactly. Freely configurable | A free desktop workspace for one person juggling many providers, assistants, local models and documents | The API address field is a root, not an endpoint: the settings page says Cherry Studio appends /v1/chat/completions itself unless the address ends in #, so pasting a full chat-completions URL doubles the path. The pull request that would have stripped it (#19120) was closed unmerged on 2026-09-04 | Setup |
| Chatbox AI | Active; repo renamed to chatboxai/chatbox with the old path redirecting, pushed 2026-09-16 | OpenAI-compatible chat completions for custom providers: add a provider with an API host, an empty API path and a key, then fetch the model list. Not plan-gated | Handing a non-developer who already has a key something that works on desktop, mobile and web, with model-list fetching instead of hand-typed model IDs | Two API surfaces share the name and point in opposite directions: the product also serves an OpenAI-compatible endpoint on a paid plan billed in compute points, which is not BYOK | Setup |
| Jan Desktop | Active; pushed 2026-09-18, latest release v0.8.4 on 2026-07-23. The older org path redirects here | OpenAI-compatible or Anthropic-compatible, selected per provider. The base URL must include the version path your server expects, and a key is required even for unauthenticated local servers. Freely configurable | People who start local and offline with a built-in inference engine but want the same app to reach a paid cloud endpoint | Custom providers are not capability-detected — the app cannot infer whether a model supports tools, vision or audio, so those must be switched on per model or they silently do nothing | — |
| Msty Studio | Active commercial, closed source with no public repository; the vendor changelog shows v2.9.6 on 2026-07-24 | OpenAI-compatible for custom providers — base URL plus key — and that path is not plan-gated. Azure and Bedrock provider types are behind the paid tier | A polished closed-source desktop workspace for someone who will never run Docker | No public commit history, so maintenance rests entirely on the vendor changelog; built-in tool presets are provider-specific and a custom provider does not inherit them | — |
| AnythingLLM | Active; MIT, pushed 2026-09-17. Ships both a desktop app and a self-hosted server | OpenAI-compatible chat completions through a generic provider taking base URL, key, model name, context window and max tokens. No plan gate when self-hosted | Document retrieval on your own machine or server, with per-workspace model selection | Chat, embedding and transcription are configured independently, so a chat endpoint gives you no embeddings and a working retrieval install needs a second provider. The docs also flag the generic provider as developer-focused | vs Open WebUI |
| Open WebUI | Active; pushed 2026-09-18. Non-standard licence — BSD-3 plus a branding clause covering deployments above fifty end users in a rolling thirty-day period | OpenAI chat completions for both plain models and agent backends: enter a URL and key under admin connections. A model-list endpoint is recommended but optional; without one, list model IDs in the allowlist field. Freely configurable | A self-hosted, multi-user chat server placed in front of an endpoint, and the standard place to plug in an agent backend | Tool calling is only as good as the upstream's schema fidelity; the docs single out a compatibility layer where required fields are omitted and tool calls fail silently | Setup |
| LibreChat | Active; MIT, pushed 2026-09-18 | OpenAI-compatible by default; an anthropic provider value on a custom endpoint routes through the native Messages client instead. Config-file only, with the base URL as the API root. Freely configurable | Self-hosted multi-user deployments where each endpoint needs its own key policy, model allowlist and cost accounting | Adding a provider means editing YAML and restarting, not clicking a settings pane; per-endpoint token pricing is metadata you type yourself, so the costs it displays are only as accurate as what you entered | vs Open WebUI |
| LobeHub | Active and renamed: the old lobe-chat repo path now redirects, pushed 2026-09-18. Repositioned from a chat framework to an agent operator. Community licence with commercial conditions | A custom base URL is documented for self-hosted use, and the provider SDK options expose OpenAI and Anthropic types. Whether the hosted cloud gates custom base URLs behind a paid plan is not stated in the docs | A self-hosted chat and agent workspace with a plugin and MCP marketplace, for a team running its own instance | The rename is live but the ecosystem is not: third-party guides and older environment-variable walkthroughs still use the former name, and the setup steps changed with the new version | Setup |
| ChatWise | Active commercial, closed source with no public repository; documentation and pricing pages both live 2026-09-18 | OpenAI-compatible or Anthropic-compatible per custom provider, with models fetched from a model-list endpoint or added by hand. A one-time Pro licence exists; whether custom providers work on the free tier is not stated by either page | Someone who wants a fast native desktop client, pays once rather than subscribing, and brings their own key | Manually added models carry no auto-detected capabilities — you declare context length, vision, audio and reasoning yourself, and a wrong flag becomes a silently broken feature. The free tier is licensed for personal, non-commercial use | — |
| TypingMind | Active commercial; sold as one-time licence plans, with the team product billed separately | OpenAI-compatible chat completions, but the field wants the FULL path — the official example ends in the chat-completions route. Not tier-gated in the published plans table | A polished BYOK chat front-end you buy once, then feed with your own tokens | An endpoint published as a base URL needs the suffix appended by hand. Whether the browser app calls your endpoint directly, making CORS headers your problem, or proxies it, is not documented anywhere we could find — unverified | — |
| Copilot for Obsidian | Active; release 4.0.9 on 2026-09-16, AGPL-3.0. Documentation moved to a new domain and the old paths redirect | OpenAI-compatible. Add a custom provider with a base URL and model ID, plus a key when the endpoint requires one. The docs state this does not require a self-host licence; the paid tiers are a separate managed path | Chatting with and searching an Obsidian vault on your own key, with no subscription to the plugin's hosted service | If the connection test passes but chat still fails, you must enable the provider's CORS option — and that kills streaming, so responses appear after completion instead of token by token | — |
| NextChat | Active but slowing and commercialising: last commit 2026-08-11, last tagged release 2025-07-29. The repo now leads with a paid hosted service while self-hosting remains the documented deployment path | OpenAI-compatible: one base-URL variable rewrites the OpenAI route, and other vendors have their own variables. Self-hosted only, no plan gate | A one-click self-hosted chat UI in front of an endpoint, where a model-name variable controls exactly which names your users see | Your endpoint's model IDs do not appear until you list them in that variable — setting the base URL alone leaves users looking at the default menu | — |
| ChatGPTBox | Active; ownership transferred to a project org with the old path redirecting, release v2.7.1 on 2026-09-06. A transfer, not a product rename | OpenAI-compatible in custom-model mode, which accepts a custom API address and key. Freely configurable | An in-page browser assistant — selection actions, summaries, a search-results sidebar — pointed at your own endpoint | The headline free modes drive a logged-in web session rather than your key; BYOK applies only once you deliberately switch to custom-model mode | — |
Workflow builders
Flowise is in the archived section, not here.
| Client | Lifecycle | Protocol / BYOK boundary | Best for | Key limit | Kunavo page |
|---|---|---|---|---|---|
| Dify | Active and fast-moving: last commit 2026-09-18, release 1.17.1 on 2026-09-10. Modified Apache 2.0 | OpenAI-compatible, declared per model type through a first-party compatibility plugin — a separate plugin instance for LLM, embedding, rerank, speech-to-text and text-to-speech. No plan gate when self-hosted | Teams assembling retrieval pipelines and agent workflows visually, with one key sitting behind many model slots | For non-LLM types the plugin appends the API version itself, so a base URL that already ends in a version path produces a duplicated path. The licence also forbids running it as a multi-tenant service without a commercial licence | — |
| n8n | Active; last commit 2026-09-18. Fair-code under the Sustainable Use License, with enterprise-licensed files marked in the tree | OpenAI-compatible. The credential exposes a base-URL field described as overriding the default API base, verified directly in the credential source rather than only in docs. Chat completions by default with an opt-in responses toggle. No plan gate on self-hosted | Self-hosted automation where an LLM step sits inside a larger workflow and one base-URL change moves every AI node at once | The credential test issues a model-list request against your base URL, so an endpoint that does not serve one will fail to save. On the hosted cloud the same node can run on the vendor's own credits instead of your credential — confirm which is selected | — |
| AutoGPT Platform | The repository is active (pushed 2026-09-18), but AutoGPT Classic — the 2023 autonomous agent most search traffic means — is explicitly unmaintained, with the official docs stating dependencies will not be updated and issues will not be fixed | OpenAI-compatible chat completions, and the two halves of the product differ. Surface-gated: the AutoPilot chat agent takes CHAT_BASE_URL on a self-hosted install, and the guide lists a managed OpenAI-compatible API among the shapes that work. The block-layer provider helper is the opposite: a closed provider enumeration whose OpenAI and Anthropic clients are constructed with no base URL, its only user-settable host being an Ollama host checked against a trusted-hostname allowlist | A block-based visual builder with a marketplace, where the chat agent beside it can run on your own endpoint | The two paths read different environment variables, so configuring one does not configure the other, and the guide states the hosted agpt.co deployment ignores these variables entirely — this is a self-hosting route. The chat transport also refuses to fall back to an ambient OpenAI key, so CHAT_API_KEY must be set explicitly | — |
Always-on personal agents
| Client | Lifecycle | Protocol / BYOK boundary | Best for | Key limit | Kunavo page |
|---|---|---|---|---|---|
| OpenClaw | Active; pushed 2026-09-18. Renamed twice — Clawdbot, then Moltbot, then OpenClaw — and both old repository paths still resolve here | A per-provider api field selects openai-completions, anthropic-messages or openai-responses, alongside baseUrl, apiKey and a models array in JSON. Freely configurable | The default general-purpose personal agent when you want the largest plugin ecosystem and community coverage | No catalogue discovery: each model must be listed by id, and contextWindow, maxTokens and the per-token cost fields are optional with defaults applied when omitted. Leave the costs out and its spend reporting is estimating; fill them in and it reflects what you typed rather than what was billed | Pricing, alternatives |
| Hermes Agent | Active; MIT, pushed 2026-09-18, release tag v2026.9.14 | OpenAI-compatible by default; a transport field on the custom provider switches it to Anthropic Messages. Set interactively or in a YAML config. No plan, subscription or account gate | A persistent personal CLI agent with memory in a local database, reachable from several chat platforms through one endpoint | The default assumption is OpenAI-shaped chat completions, so an Anthropic-only endpoint needs that separate transport field — and the failure looks like a broken endpoint rather than a wrong wire format | Pricing, vs OpenClaw |
| nanobot | Active; MIT, pushed 2026-09-18, published by HKUDS. A different, also-active project holds the same name elsewhere — check the org before following a link | OpenAI-compatible for custom and arbitrarily named providers; an Anthropic-shaped endpoint must instead override the base on the built-in anthropic provider. The docs say to include the version path. Freely configurable | A self-hosted personal agent that runs as web UI, terminal or chat app, and re-exposes an OpenAI-compatible API of its own | Arbitrarily named custom providers are OpenAI-shaped only and do not use the Anthropic request format; native backends reject the proxy field outright | vs OpenClaw |
| ZeroClaw | Active; Apache-2.0, pushed 2026-09-18 | A wire_api field selects chat completions or OpenAI Responses per provider, with Anthropic-shaped routes in a separate provider slot. The uri field is required on the custom slot and also overrides any built-in family. Every field is settable by environment variable. Freely configurable | A security-first Rust runtime small enough for cheap hardware, with supervised autonomy and OS-level sandboxing | The wire changes behaviour, not just transport: OpenAI-compatible and Responses wires cannot carry Anthropic refusal metadata, so automatic fallback works only through the Anthropic slot, and prompt caching across a chat-completions route needs a non-default flag | vs OpenClaw |
| NanoClaw | Active; MIT, pushed 2026-09-17 | Anthropic-shaped and account-gated on the default path: the default runtime is the Claude Agent SDK, so out of the box it expects a Claude subscription or an Anthropic key. Any Anthropic-compatible endpoint works through a base-URL and token pair; OpenAI-compatible access is indirect, by delegating through a skill | A container-isolated alternative to OpenClaw for people already living in Claude Code, wired into several messaging platforms | An OpenAI-only endpoint has to be reached through a delegation skill. The project also ships no configuration files by design, so BYOK settings live in an env file and per-group CLI commands | vs OpenClaw |
| PicoClaw | Active; MIT, pushed 2026-09-17, published by Sipeed. Written in Go from scratch, explicitly not a fork | Naming trap: the anthropic provider value speaks OpenAI-compatible chat completions, while anthropic-messages speaks the native Messages API. An api_base field overrides the endpoint and custom headers can override authorization. Freely configurable | The smallest footprint here — one Go binary with agent, gateway and TUI modes, aimed at always-on and embedded deployments | An endpoint serving only the Messages route returns 404 under the anthropic value. Bedrock and the Azure identity path are not in the default binary and need a rebuild with build tags | — |
| IronClaw | Active; Apache-2.0, pushed 2026-09-13, published under the nearai org | A generic openai-compatible chat-completions adapter where the base URL is mandatory, plus native Anthropic, Gemini, Bedrock and others that each accept a base-URL override. An environment-variable fallback covers containers and one-off runs. Freely configurable | A privacy- and security-oriented agent OS with an encrypted local secret store, sandboxed tools and progressive tool disclosure | The generic adapter has no default host, so the base URL has to be supplied — every documented example sets it explicitly, and none of them is a hosted third-party endpoint. Which layer a missing base URL fails at is not stated in the docs | — |
| Agent Zero | Active; pushed 2026-09-18, created 2024-06-10 — the oldest project in this group. Ownership moved from a personal account to the agent0ai org, and the old path redirects | OpenAI-compatible chat completions through a generic provider with a per-model API URL field, and the key entered separately. UI-only: the installation guide documents no config-file or environment-variable equivalent. No plan gate | A hackable, prompt-driven agent framework run in Docker with a web UI, closer to a framework you shape than a finished assistant | Chat, utility and embedding models are configured independently, so an endpoint serving chat but not embeddings forces a split setup; the docs warn that very small utility models fail at memory tasks outright | vs OpenClaw |
| OpenManus | Active but visibly slower: pushed 2026-08-22 with the newest commits dated 2026-08-16. Stale-link trap — the original repo path does NOT redirect and now resolves to a separate, unrelated repository | OpenAI-compatible chat completions, confirmed in source rather than only in docs. A config.toml block with base_url, api_key and model; an api_type field switches to Azure or Bedrock clients. Freely configurable | An open reimplementation of a general-agent loop for research and browser automation, and the most mechanical configuration in this group | There are two independent LLM blocks, one for the main model and one for vision, each needing its own base URL and key. The example config also still pins a 2025 model id that will fail on most current endpoints | — |
| SillyTavern | Active; AGPL-3.0, pushed 2026-09-14 | OpenAI-compatible chat completions via a custom completion source. The docs say not to add the chat-completions suffix, and to try adding the version path if the connection fails. Freely configurable | Long-form roleplay and character chat with heavy prompt control — a genuinely different buyer from the coding cohort, with different context and token patterns | The prompt post-processing mode matters more than the endpoint: the "no tools" variants remove tool calls from the prompt, and tool calling is not supported under them — with no error | Best API, setup |
| Msty Go | Active, renamed from Msty Claw on 2026-08-04. Closed source; the pricing page lists it on a $0 beta plan with team tiers marked planned | Unknown. Settings documents a type, display name, base URL, key and model-list behaviour, but the docs never enumerate the type options, so the wire format a custom provider produces is not published | A bounded desktop task runner with explicit folders, isolated execution and reviewable work | Closed source, free beta and an undocumented provider type list: you cannot confirm from documentation that an arbitrary OpenAI-compatible endpoint will work. This one needs an install to prove | — |
| Page Assist | Active; MIT, pushed 2026-09-13 | OpenAI-compatible. Settings offers an OpenAI-compatible tab where a Custom option takes the API URL and key. Freely configurable | A browser-sidebar chat that can read the page you are on, for people who will never open a terminal | A browser-extension chat UI rather than an autonomous agent — no coding or tool-running loop — and its centre of gravity is still local models, so cloud paths get comparatively little testing | — |
Clients with no documented third-party endpoint
These three are live enough to appear in search results but none of them documents pointing the client at an arbitrary base URL. Keep three different facts apart here, because they are routinely collapsed into one: whether you can supply your own vendor key, whether you can supply your own endpoint, and whether nobody has established it either way. Kiro CLI and Devon take keys and document no base-URL field; Smart Chat is plan-gated and its arbitrary-endpoint support is simply unconfirmed, which is not the same as refused. Only the endpoint column makes a client reachable from Kunavo.
| Client | Category | Lifecycle | What is actually available | Where that leaves you |
|---|---|---|---|---|
| Kiro CLI | Terminal | Active, renamed from Amazon Q Developer CLI (available 2025-11-17, auto-updated 2025-11-24, old entry points still work). Separately, Amazon Q Developer IDE plugins and paid subscriptions reach end of support on 2027-04-30, with new signups blocked from 2026-05-15 | None documented. Models are supplied through subscription tiers and delivered over Bedrock; the model documentation contains no custom provider, key or base-URL option. BYOK exists only as open feature requests | No third-party endpoint is possible today. Do not conflate it with Kiro Crew, a separate open-source orchestration product built on top of the CLI |
| Devon | Terminal | Not formally archived but effectively abandoned: the newest default-branch commit is dated 2024-07-29 and the last repository push of any kind is 2025-05-26 | Keys yes, endpoint no. The README documents per-vendor key variables and a local Ollama path, and contains no base-URL or api-base override anywhere | Historical reference only. Its directory value is disambiguation: Devon (open source, dormant) is not Devin, a different commercial product that dominates the same search results |
| Smart Chat (Smart Connections) | Obsidian plugin | Active but split into separate products: the free core is positioned as semantic search with no key required, while chat with API models is a separate extension. Last commit 2026-09-16 | Plan-gated, and an arbitrary endpoint is not confirmed. The documented workflow requires Smart Chat Pro plus a model from a fixed set of named adapters; the only custom base URL documented is for one specific self-hosted app | Treat its arbitrary-endpoint support as unknown rather than absent — nothing in the current documentation settles it. The older Smart Connections setup pages are explicitly deprecated and should not be reused |
Retired, archived and superseded
These ten are in the directory so that a search landing on the name reaches the status rather than an install command. None of them is a current recommendation.
| Client | Status | What it is now | Where to go instead |
|---|---|---|---|
| Continue | Maintenance ceased; the repository is read-only after a final 2.0.0 release of the VS Code extension, CLI and JetBrains plugin. The company's own site states it was acquired by Cursor. Last default-branch commit 2026-07-21 | A frozen coding agent — VS Code extension, CLI and JetBrains plugin — that can still be repointed at a third-party endpoint now that the bundled authentication has been pulled out | Existing installs only, not a starting point. Mechanical warning for anyone re-checking: the repo is not flagged archived and its push date still moves daily, so an archive-flag check reports it as live. Existing setup page |
| Void | Archived 2026-06-02; read-only and not accepting contributions. The README opens by declaring it deprecated | An archived VS Code fork the README itself recommends mainly as a reference for forking VS Code | Migrate. The README points to a community forks repository; Zed and Theia are the maintained editors in this directory |
| PearAI | Editor repository has not shipped since 2025-05-20; the newest activity anywhere in the org is 2026-06-19. The homepage is live and still sells a router subscription | A Continue-lineage editor whose BYOK instructions were last edited in late November 2024 and still present 2024-era models as the current line-up | Do not present it as a working BYOK target. Nobody can currently confirm the custom-endpoint flow against a current build — verify against an installed copy first, and do not infer the product is dead from the editor repo alone |
| Witsy | Transferred to a corporate owner and dormant: relocated on 2026-04-08, last release 2026-03-04, newest commit 2026-04-09. The product domain now redirects to the repository | A BYOK desktop assistant and MCP client whose documentation is accurate but unmaintained | Not a live recommendation. Choose a maintained desktop client from the table above |
| Flowise | Archived 2026-08-13, along with its docs and embed repositories. Issues and pull requests are locked and the maintainers state published packages will be marked deprecated | An Apache-2.0 codebase the maintainers tell users to fork. Whether the hosted cloud still operates is not stated either way, and the marketing site carries no archive notice | Migration or exit step only. Dify and n8n are the maintained workflow builders in this directory |
| SWE-agent | Maintenance-only and superseded. The repository is not archived (last push 2026-09-14) but both the README and the docs state development has moved | Still usable for reproducing published benchmark runs from a single fully documented YAML config | Upstream recommends mini-SWE-agent for new work; it is in the terminal table above |
| Plandex | Dormant, and its domain no longer resolves. Last push 2025-10-03; on 2026-09-18 neither the site nor the hosted docs resolved, confirmed through two independent public resolvers | A self-hosted planning agent whose website, hosted documentation and cloud are all unreachable. Custom providers required self-hosting even when the site was up — the cloud BYOK tier could only use built-in providers | Treat as unmaintained until upstream says otherwise |
| Mentat (archived CLI) | Archived, last push 2025-01-07. The repository was deliberately renamed to an archive path and its README opens with an archived-project notice | A dead command-line tool. The name was reassigned — the archive README says Mentat now refers to a different product, a hosted code-review bot, whose current operating status could not be verified from this environment | Nothing to migrate to within the project. Choose any maintained terminal agent above |
| OpenCode (archived Go CLI) | Archived, last push 2025-09-18. The README leads with a notice that the project has continued under the name Crush | The original Go and TUI OpenCode, kept for provenance only | Crush, in the terminal table above. Do not confuse this with the OpenCode people use today, which is a separate TypeScript project — Kunavo's existing OpenCode pages describe that one, not this archived repository |
| iFlow CLI | Shut down. The repository notice states it would shut down on April 17, 2026; that date has passed and the notice is still at the top of the README | A retired OpenAI-compatible terminal agent whose configuration documentation is still reachable — which is exactly the trap | Migration only. Pick a maintained OpenAI-compatible terminal agent from the table above |
Kunavo verification status
Kunavo has not run a compatibility test against any client in this directory. That is the honest state of things, and it is worth stating plainly rather than burying, because the distinction changes what you should do next.
| Status | What it means | What it does not mean |
|---|---|---|
| Setup guide published | Kunavo wrote configuration steps for this client, based on the client's own documentation | It does not mean a request was sent, a tool call was measured, or that the client is certified, verified or officially supported |
| Not tested | The protocol and endpoint details in the row come from the vendor's documentation, README or repository source on the stated check date | It does not mean the client fails — only that nobody here has run it |
Clients in this directory with a published Kunavo setup guide: Aider, Continue, Zed, Cherry Studio, Chatbox, Open WebUI, SillyTavern and LobeHub, whose guide is filed under the product's former name. Every other row in this directory is untested, and so are the specific features inside the eight above.
A practical consequence: treat your first task on any new client as the verification step. Send one bounded request, confirm the response streams, confirm a tool call returns, and check the recorded charge before moving scheduled or paid work onto it.
What running your own key costs
Once a client is pointed at your own endpoint, the bill is per token rather than per seat. At Kunavo's live catalog rates, Claude Sonnet 5 lists $2.00 per million input tokens and $10.00 per million output tokens; Claude Haiku 4.5 lists $0.40 and $2.00.
A hypothetical agent session using 400,000 uncached input tokens and 30,000 output tokens has a catalog estimate of $1.10 on Claude Sonnet 5 and $0.22 on Claude Haiku 4.5. That is token arithmetic on assumed volumes, not a measured task cost and not a ceiling on a bill. It excludes cache charges, external tools and any retries the agent makes; an agent that retries a failed tool call pays for every attempt.
The cheapest listed rate and the lowest cost to finish a task are different claims, and this directory does not promise either. A smaller model at a lower rate can need more attempts and more review; compare candidates on a rate card, then measure the same real task on two of them. Kunavo's minimum is a $10 prepaid top-up with no subscription — see billing details for how a catalog estimate relates to the final charge, and pricing for the current catalog.
Related reading: OpenAI-compatible API covers the endpoint shape most of these clients expect, Anthropic base URL covers the Messages-protocol clients, and quickstart gets a first key working. Create a Kunavo account when you are ready to test one of these clients against a real endpoint.
FAQ
Which AI agent clients can use a custom API endpoint?
Most open-source terminal agents, most self-hosted chat front-ends and most always-on personal agents document a base-URL field with no plan or account requirement. The exceptions fall into four groups: clients where the endpoint field exists only on some surfaces (Factory Droid on CLI and desktop, Qoder in the IDE but not the CLI, OpenHands on a local backend but not its cloud backend, the AutoGPT Platform chat agent when self-hosted but not on its hosted cloud), clients where an arbitrary base URL is behind a paid or early-access tier (Amp custom endpoint URLs, Warp for organizations above ten employees, Smart Chat Pro), clients that speak only one vendor protocol (Gemini CLI takes a base URL but still sends native Gemini requests), and clients with no endpoint field at all (Kiro CLI, Devon).
Does a documented custom endpoint mean every feature will work?
No. A base-URL field only establishes where requests go. Tool calling, prompt caching, fill-in-the-middle autocomplete, embeddings, vision and streaming are separate capabilities that can each fail while chat succeeds. Twinny sends autocomplete to the legacy completions route rather than chat completions, AnythingLLM configures embeddings as a separate provider, SillyTavern strips tool calls under some prompt post-processing modes, and several clients require you to type each model's context window and token prices by hand. Test the specific features you need before moving real work.
Has Kunavo tested these agent clients?
No. Kunavo has not run a compatibility test against any client in this directory. Where a Kunavo setup guide exists, it means configuration steps were written from that client's own documentation, not that a request was measured end to end. Every protocol and endpoint statement here is transcribed from the vendor's documentation, README or repository source on the stated check date. Treat the first task you run on any new client as your own verification step.
Which of these projects should I not start with?
Continue is read-only after a final 2.0.0 release and its company says it was acquired by Cursor. Void was archived on 2026-06-02 and Flowise on 2026-08-13. iFlow CLI published its own shutdown date of April 17, 2026. Mentat and the Go OpenCode CLI are archived, and SWE-agent is maintenance-only with upstream recommending mini-SWE-agent instead. Plandex has had no repository activity since 2025-10-03 and its domain no longer resolves. Devon has no default-branch commit since 2024-07-29, and PearAI's bring-your-own-key instructions were last edited in November 2024. These belong in a directory for migration and disambiguation, not as a starting point.
Is the cheapest listed model price the cheapest way to finish a task?
Not necessarily. A listed per-token rate and the total cost of completing a piece of work are different measurements. A smaller model at a lower rate can need more attempts, longer context or more human review, and an agent that retries a failed tool call pays for every attempt. Compare a rate card to pick candidates, then measure the same real task on two models before deciding. Kunavo publishes per-token catalog rates and starts at a $10 prepaid top-up, with no subscription.
Every client name in the tables above links to the project's own documentation page, README or repository file that the row was written from; where a row also rests on a second page — a CLI's separate docs, a vendor's authentication page — that page is linked inline in the cell making the claim. Those facts were gathered on September 17, 2026. The September 18, 2026 pass re-checked lifecycle through the GitHub REST API — archive flags, push dates, commit dates and old-path redirects — for every archived and no-endpoint row and for most active ones, and re-read the linked documentation for a subset of the protocol and bring-your-own-key cells rather than for every row. Where a project's marketing site and its repository disagreed, the repository and the maintainers' own statements were used and the disagreement is noted in the row. Star counts, push dates and plan structures are point-in-time and will drift — every lifecycle cell is written so the same check can be re-run. Kunavo token rates are read from the live catalog; cost examples are illustrative token arithmetic.