KISS Sorcar is a free, simple, local-first, bring-your-own-key AI agent framework. It runs as a VS Code extension and a browser/mobile web app, both served by a local daemon, and offers a Python client API for scripting tasks. Your prompts and code are sent directly to the model provider or local endpoint you configure — not through our servers. It supports multi-model workflows just via prompts. Agents run as daemons hosted by the local server (a standalone sorcar terminal command can also run a task without the daemon). Complex AI systems/techniques can be replaced with a paragraph of prompt in KISS Sorcar.
curl -fsSL https://raw.githubusercontent.com/ksenxx/kiss_ai/main/scripts/install.sh | bashTable of Contents
| Capability | KISS Sorcar | Claude Code | Cursor |
|---|---|---|---|
| Interfaces | VS Code extension + web/mobile app + Python API | CLI + mobile app | Custom VS Code |
| AI Discovery | ✅ simply via prompt | ❌ | ❌ |
| GEPA Prompt Optimization | ✅ simply via prompt | ❌ | ❌ |
| Multiple models from multiple vendors in the same task | ✅ Mix OpenAI, Anthropic, Gemini, Together, Z.AI, Moonshot AI, OpenRouter, Claude Code CLI, and Codex CLI | ❌ Anthropic Claude models only | ❌ One model per task |
| Primary focus | ✅ Quality — rigorous review, end-to-end tests | Speed and developer ergonomics | Speed |
| Core Agents # LoC | ~3000 | Unknown | Unknown |
| Models in bundled catalog | 664 across 9 provider categories | Claude family only | Subset chosen by Cursor |
| Bring your own API key / endpoint | ✅ Yes — keys stay on your machine | ✅ Anthropic key | |
| Open source | ✅ Apache-2.0 | ❌ Proprietary | ❌ Proprietary |
| Price | Free framework; pay only your chosen model provider | Subscription / API usage | Subscription |
| Run on top of Claude Code / Codex CLI | ✅ cc/* and codex/* namespaces |
N/A | ❌ |
| Messaging and communication channels | ✅ 43 third-party agents: 32 messaging channels (Slack, Gmail, Email (IMAP/SMTP), Phone Control, SMS, WhatsApp, Home Assistant, …) plus service agents for GitHub, Notion, Postgres, Brave Search, Firecrawl, and Google Workspace | ||
| Scheduled automations | ✅ natural-language cron agent | ❌ | ❌ |
| Wake word for voice interaction | Sorcar | N/A | N/A |
KISS Agent Framework is a deliberately small agent runtime organized around the KISS principle ("Keep it Simple, Stupid"). The name “Sorcar” pays homage to P. C. Sorcar, the legendary Bengali magician, evoking the idea of an agent that performs feats that appear magical yet are grounded in disciplined engineering. Note: Sorcar also means government in Bengali.
curl -fsSL https://raw.githubusercontent.com/ksenxx/kiss_ai/main/scripts/install.sh | bashIf the Update button in the settings UI fails, run the full installation command again. It will not delete your history.
The installer targets macOS and Linux on x86_64, aarch64, and arm64. It installs or checks the tools needed to run KISS Sorcar and build/install the VS Code extension.
If you only want the Python package (the kiss-web daemon, the Python client API, and the messaging-agent entry points):
pipx install kiss-agent-framework
# or
uv tool install kiss-agent-frameworkKISS Sorcar requires Python 3.13+.
Provide at least one model backend. You can use environment variables such as:
export ANTHROPIC_API_KEY=...
export OPENAI_API_KEY=...
export ZAI_API_KEY=...
export MOONSHOT_API_KEY=...
export TOGETHER_API_KEY=...
export OPENROUTER_API_KEY=...
export GEMINI_API_KEY=...You can also set API keys, a custom model endpoint, and custom HTTP headers in the Settings panel of the VS Code extension or web app.
You can register your own models (e.g. a local vLLM/Ollama endpoint or a provider model not in the bundled catalog) in the Custom Models section of the Settings panel; entries are stored in ~/.kiss/MY_MODELS.json and appear in the model picker alongside the bundled catalog.
To install only the KISS Sorcar extension, open Visual Studio Code, search for KISS Sorcar in the extension marketplace, install it, and relaunch VS Code. Press ESC if you do not have a specific API key ready, but configure at least one model backend before running tasks.
KISS Sorcar has three client interfaces, all served by one local daemon: the VS Code extension, the remote web/mobile app, and the Python client API. A fourth interface, the sorcar terminal command, runs a SorcarAgent directly in the current directory without the daemon: sorcar -t "Summarize README.md" runs an inline task, sorcar -f task.txt runs the file's content as the task (exactly one of -t/-f is required; see sorcar --help for the model, budget, and work-dir flags).
Open the KISS Sorcar sidebar in VS Code (or the remote web app in a browser) and type or speak your task. The chat interface provides:
@file/folder mentions with ranked project-file completion.- Per-task git worktree isolation — worktrees are pre-warmed in the background for fast task start, with auto-commit and merge on success, or an interactive merge/discard prompt — toggle both in the Settings panel.
- A pre-run task classifier that detects whether the task is a development task that requires creating or editing files — non-development tasks (questions, git-only operations) skip worktree isolation, and simple tasks get a lite system prompt for faster starts. With an
OPENROUTER_API_KEYit asks the~typesafe/jev-latestdecisions model one typed question (about 0.2 s and $0.00003 per task; on a 415-prompt benchmark it matched hand labels more often than the LLM classifiers, seebenchmarkings/task_classifier/); otherwise, or if that call fails, it falls back to one fast non-agentic call on the run's own model (structured output, with one plain-text retry if that fails; skipped forcc/*andcodex/*models). Both are Settings-panel checkboxes: "Classify tasks before running" (classify_tasks) and "Classify with Jev" (classify_with_decisions; unticked pins the LLM classifier). - A model picker, per-task budget caps, chat history with resume (filtered to the current workspace by default), an agent dashboard (burger menu, bottom-left), and inline rendering of tool-generated images in the chat panels.
- Image and PDF attachments: attach files to a task via the picker, paste, or drag-and-drop — images (HEIC/HEIF converted, oversized ones re-encoded) and PDFs are sent to the model along with the prompt.
- Persistent agent memory (on by default): standard Sorcar runs get seven
memory_*tools (search, pull, read, write, list, refresh, delete) and a memory protocol, so agents recall lessons, preferences, and decisions across tasks (not for Docker runs,cc/*/codex/*models, runs that drop the built-in toolset, or runs whosemodel_configsupplies its ownsystem_instruction). Pages are Markdown files under~/.kiss/memorieswith a SQLite vector index (OpenAI embeddings when anOPENAI_API_KEYis available, otherwise a fully offline hashed embedder). Toggle it — or point it at a custom directory — in the Settings panel, or setKISS_USE_MEMORY=0. - Wake-word voice chat ("sorcar, …") via the mic button, including steering a running agent by voice.
- Live steering: inject a message into a running agent, or switch its model mid-run. Wrapping the message in
<task>…</task>tags instead queues it as a follow-up task that runs sequentially after the current task finishes. - Tab mirroring — every VS Code window and web client opened on the same workspace shows the same tabs with the same contents; the tab bar is scoped to the client's workspace directory, and sub-agents dispatched with
run_agentopen their own tab in the calling workspace. - Scheduled automations: ask in plain language ("every weekday at 9am, summarize my unread Slack messages") and the built-in cron agent (also runnable from the shell as
kiss-cron) creates, lists, pauses, resumes, or removes the schedule. A job runs an unattended LLM task or a plain shell command and can deliver its result to an authenticated messaging channel (25 of the 32 channels support delivery, e.g.telegram:123456,email:[email protected]).
The remote web app is the same interface served over a cloudflared tunnel: copy the URL and password from the Settings panel and open it on any device. Its desktop mode adds a docked Task Info sidebar next to the chat — live token, cost, step, elapsed-time, machine, work-dir, and budget metrics for the visible tab's running task, plus a live view of that task's own tmp/PROGRESS.md.
The kiss-web daemon hosts the agents, chat sessions, and the web app, and services every client command — including config reads/writes, default-model lookup, and the wake-word listener — over its socket. The VS Code extension starts it automatically; you can also manage it yourself:
# Start the daemon (serves the web app and the extension).
kiss-web
# Pin the daemon's working directory.
kiss-web --workdir "$HOME/projects/my-repo"
# Print the active remote (cloudflared) URL and exit.
kiss-web --urlAny Python process can run a task on the daemon with kiss.server.sorcar.run and block until it finishes (up to timeout, one hour by default):
from kiss.server import sorcar
result = sorcar.run("Summarize README.md", work_dir="/path/to/repo")
print(result.text, result.success, result.cost, result.tokens, result.steps)
# Continue the same chat (the agent sees the prior task as context):
follow_up = sorcar.run("Now fix the typos you found", chat_id=result.chat_id)run() accepts keyword options mirroring the chat interface — model, work_dir, scope_work_dir (workspace directory the task's tab is scoped to, when different from the execution work_dir), chat_id, use_worktree, auto_commit, max_budget, model_config (custom endpoint/headers), use_web_tools, classify_tasks (per-run task-classifier override; None falls back to the daemon's persisted setting), use_memory (per-run persistent-memory override — the memory_* tools plus the memory protocol; None falls back to the daemon process's non-empty KISS_USE_MEMORY environment variable, else its persisted setting), is_parallel, timeout (how long the client waits for the result — 3600 seconds by default, None waits indefinitely; on expiry the client raises TimeoutError while the daemon task keeps running), stop_on_timeout (also stop the task when timeout expires; default False), sock_path (daemon socket override), parent_task_id / parent_tab_id (attach the run as a sub-agent of a calling task, nesting its tab and history row under that task — how the run_agent tool dispatches) — plus options to customize the agent itself:
tools="/path/to/my_tools.py"— a Python file whoseget_tools()function returns the functions the daemon registers as extra agent tools. The functions are never serialized: only the path travels over the socket, and the daemon imports the file, callsget_tools(), and runs the tools in its own process.system_prompt— replace the default system prompt for the run (and its sub-agents);append_to_system_prompt/append_to_prompt— append text to the system prompt or task prompt instead of replacing them.append_basic_tools=False— restrict the agent tofinishplus yourtoolsfile, dropping the built-in toolset.extension_agent_path— run a full Sorcar Extension Agent (SEA), a Python file that computes the run's parameters and tools on the daemon; see Sorcar Extension Agents (SEAs) below.
A Sorcar Extension Agent (SEA) is a plain Python file whose path you pass as extension_agent_path to sorcar.run(). The daemon imports the file on every run and calls its top-level X() functions — named after run()'s parameters — to compute the run's parameters; parameters without a getter keep whatever the caller passed. One file can define the task prompt, system prompt, model, budget, tools, and safety hooks — a complete custom agent:
# weather_agent.py — a minimal SEA
import requests
def prompt() -> str:
return "Look up the current weather in San Francisco and report it."
def max_budget() -> float:
return 0.50
def use_worktree() -> bool:
return False # no repo changes expected
def if_append_basic_tools() -> bool:
return False # restrict the agent to finish + our tools
def system_prompt() -> str:
return ("You are a weather assistant. Use the get_weather tool "
"to look up weather, then call finish with the result.")
def get_weather(city: str) -> str:
"""Return current weather for a city from wttr.in.
Args:
city: City name to look up.
"""
resp = requests.get(f"https://wttr.in/{city}?format=3", timeout=10)
resp.raise_for_status()
return resp.text.strip()
def tools() -> list:
"""Return the tools the agent may call."""
return [get_weather]from kiss.server import sorcar
result = sorcar.run(
"placeholder", # required non-blank; overridden by prompt()
extension_agent_path="weather_agent.py",
)Key points:
- Overridable parameters. Every
sorcar.run()parameter excepttimeout,stop_on_timeout,sock_path,parent_task_id,parent_tab_id, andextension_agent_pathitself has a getter named after it:prompt(),work_dir(),model(),chat_id(),system_prompt(),tools(),use_worktree(),auto_commit(),max_budget(),model_config(),if_append_basic_tools()(overridesappend_basic_tools),append_to_system_prompt(),append_to_prompt(),scope_work_dir(),use_web_tools(),classify_tasks(),use_memory(), andis_parallel().use_web_tools(),classify_tasks(), anduse_memory()return a bool, orNoneto fall back to the daemon's default (the persisted setting — foruse_memory()a non-emptyKISS_USE_MEMORYenvironment variable on the daemon process wins over the stored value). - Atomic, type-checked overrides. Getters run in the daemon process and are re-imported from source on every run. Each return value is type-checked; overrides apply only after every getter succeeds, and a broken getter fails the task with a diagnostic in
TaskResult.text. - Tools, two ways.
tools()may return a list of callables — making the script its own tools file — or the path of a separate Python file whoseget_tools()(ortools()) returns the callables. Either way the tools execute in the daemon process; nothing is serialized over the socket.tools()overrides (does not append to) the caller'stoolsargument. - Hook getters.
llm_call_hook()andtool_call_hook()return functions with norun()equivalent (callables can't travel the wire).llm_call_hook(new_messages)runs before every LLM call and its return value replaces the outgoing messages;tool_call_hook(name, args)runs before every tool call — returning"OK"lets the tool execute, any other string suppresses the call and is given to the model as the tool's result:
# guarded_agent.py — veto dangerous shell commands
def veto_destructive(name, args):
if name == "Bash" and "rm -rf" in str(args.get("command", "")):
return "Blocked: destructive command"
return "OK"
def tool_call_hook():
return veto_destructiveThe full authoring guide — every getter's semantics, error handling, chat continuation, model configuration, and a complete worked example — is in src/kiss/server/README.md.
- Agent Skills loaded from
~/.kiss/skills,<project>/.kiss/skills, Claude skill directories,.agents/skills, and bundled Sorcar skills. - MCP server discovery from
~/.kiss/mcp.json,<project>/.kiss/mcp.json, and<project>/.mcp.json; OAuth tokens are persisted under~/.kiss/mcp_auth/. A curated catalog of privacy-first MCP connectors (fetch, time, memory, GitHub, Slack, Google Workspace, WhatsApp, …) ships in connectors/ withenable.py/verify.pyCLIs. - "Tricks" (inject-instruction) entries are the concatenation of two
## Trick-sectioned Markdown files: (1)~/.kiss/MY_INJECTION.md— your personal tricks, auto-created on first read with a starter trick and never overwritten thereafter; (2) the bundledsrc/kiss/INJECTIONS.md, read directly from the package so every upgrade delivers the latest bundled tricks. Edit~/.kiss/MY_INJECTION.mdto customise; your tricks are listed first. - Welcome-screen sample-task chips are the concatenation of two
## Task-sectioned Markdown files: (1)~/.kiss/MY_TASK_TEMPLATES.md— your personal tasks, auto-created on first launch with the seed## Task\n\nHi!\nand never overwritten thereafter; (2) the bundledsrc/kiss/SAMPLE_TASKS.md— sample tasks shipped with the extension, read directly from the package so every upgrade delivers the latest chips. To customise your chips edit~/.kiss/MY_TASK_TEMPLATES.md; to reset it remove the file.
KISS Sorcar includes 43 third-party agents that act on messaging services, mailboxes, devices, and web services on your behalf. 32 are messaging-channel agents:
BlueBubbles · DingTalk · Discord · Email (IMAP/SMTP) · Feishu · Gmail · Google Chat · Home Assistant · iMessage · IRC · LINE · Matrix · Mattermost · Microsoft Teams · Nextcloud Talk · Nostr · ntfy · Phone Control · QQ · Signal · SimpleX · Slack · SMS · Synology Chat · Telegram · Tlon · Twitch · Webhook · WeCom · WeiXin · WhatsApp · Zalo
Nine more are service agents that give Sorcar authenticated API tools for productivity and data services:
Brave Search (kiss-brave) · Firecrawl (kiss-firecrawl) · GitHub (kiss-github) · Google Calendar (kiss-gcal) · Google Docs (kiss-gdocs) · Google Drive (kiss-gdrive) · Google Sheets (kiss-gsheets) · Notion (kiss-notion) · PostgreSQL (kiss-postgres)
In a chat task, just say what you want ("send 'running late' to Alice on WhatsApp", "list my open GitHub PRs") — Sorcar dispatches the matching agent through its run_agent tool. Each agent also has its own CLI entry point (kiss-slack, kiss-gmail, kiss-whatsapp, …) for running tasks directly from the shell.
Channels also work inbound: gateway-capable messaging channels can become prompt surfaces of their own. A one-shot --channel poll tick (normally scheduled as a recurring cron job — just ask for "an always-on Telegram gateway" in chat) drains new inbound messages and runs each as a Sorcar task, with persisted thread continuity across ticks, a delivery ledger, per-channel model/budget overrides, sender allow-lists (--allow-users), and an optional pairing handshake (--pairing, --approve, --list-pending) so only approved senders can drive the agent.
Two infrastructure agents round out the set: an A2A agent (kiss-a2a) exposing Sorcar over the agent-to-agent protocol, and an OpenAI-compatible server (kiss-oai) that serves Sorcar behind an OpenAI-style HTTP API. It also ships a Govee smart-home CLI for controlling IoT lights (on/off, brightness, color, and color temperature) via the Govee Developer API.
Credential isolation (Muse auth). On Linux, credentials for the 24 Muse-supported connectors (the six Google services — Google Chat's service-account mode excepted — plus Slack, GitHub, Notion, Discord, Home Assistant, Firecrawl, Brave Search, ntfy, Govee, LINE, Mattermost, Nextcloud Talk, Synology Chat, Twitch, Zalo, BlueBubbles, Microsoft Teams, and Telegram) are isolated by default behind a Meta-Muse-style security boundary: legacy tokens auto-migrate into a vault owned by a local auth daemon on first use (a one-time hand-off of the real credential; plaintext copies are then scrubbed on a best-effort basis), the agent process holds only opaque surrogate tokens that the daemon swaps for the real ones at the network edge, and every boundary-routed API request is host-allowlisted (credential-free, bodyless GET/HEAD redirect hops are the one permitted off-list exception), classified read vs. write, and checked against an allow/deny/ask policy with an audit log. Reads are allowed by default; writes ask for a grant. For Microsoft Teams, after the one-time enrollment hand-off, the daemon performs the OAuth token exchange itself, keeping the vaulted client secret out of ordinary agent API requests. Where the provider supports a poll-based grant, connecting works like the Muse app's Connect button — the user signs in and approves in their own browser, nothing is pasted back: GitHub, Twitch, and Microsoft Teams use the OAuth device authorization grant (RFC 8628) with a public client ID, Nextcloud Talk uses Login Flow v2, Matrix uses the OAuth 2.0 device grant of homeservers backed by Matrix Authentication Service (matrix.org included), and Signal links this computer like Signal Desktop via a signal-cli link QR code; the refresh tokens these sign-ins produce are renewed by the daemon (oauth2_refresh_token credentials) or, for Matrix, by the agent itself. Providers without such a grant get a safe hand-off instead of browser automation: on a headless host the six Google services return the consent URL for the user to approve in their own browser and paste back the resulting localhost redirect URL, and Slack/Discord ask the user to create the bot in their own browser and paste back the bot token — the agent never asks for a password or 2FA code. Manage it with python -m kiss.agents.third_party_agents.muse_auth (status, enroll, import, grant, revoke, audit, clear, daemon, stop, and an export command that reads a vaulted credential back out for recovery); opt out with KISS_MUSE_AUTH=0.
These agents live in src/kiss/agents/third_party_agents/; a prompt-oriented usage guide with a complete agent catalog and 26 worked examples is in src/kiss/agents/third_party_agents/README.md.
KISS Sorcar ships a catalog of 664 models across 9 provider categories, with built-in prices, context lengths, and capability flags (fc function calling, gen generation, emb embedding, dec typed decisions via OpenRouter's /api/alpha/decisions). The source of truth is src/kiss/core/models/MODEL_INFO.json. Models are grouped below by the provider that routes them (i.e., whose API key or CLI serves the model); open-weight openai/gpt-oss-* and google/gemma-* models are served via Together AI.
| Provider category | Catalog entries |
|---|---|
| OpenAI | 102 |
| Anthropic | 14 |
| Gemini | 24 |
| Together AI | 103 |
| Z.AI | 8 |
| Moonshot AI | 10 |
| OpenRouter | 381 |
Claude Code CLI (cc/*) |
14 |
Codex CLI (codex/*) |
8 |
Current catalog capability totals:
- 642 generation-capable models
- 485 function-calling-capable models
- 11 embedding models
- 2 decision models
Full model list:
OpenAI (102)
computer-use-previewcomputer-use-preview-2025-03-11gpt-3.5-turbogpt-3.5-turbo-0125gpt-3.5-turbo-1106gpt-3.5-turbo-16kgpt-4gpt-4-0613gpt-4-turbogpt-4-turbo-2024-04-09gpt-4.1gpt-4.1-2025-04-14gpt-4.1-minigpt-4.1-mini-2025-04-14gpt-4.1-nanogpt-4.1-nano-2025-04-14gpt-4ogpt-4o-2024-05-13gpt-4o-2024-08-06gpt-4o-2024-11-20gpt-4o-minigpt-4o-mini-2024-07-18gpt-4o-mini-search-previewgpt-4o-mini-search-preview-2025-03-11gpt-4o-search-previewgpt-4o-search-preview-2025-03-11gpt-5gpt-5-2025-08-07gpt-5-chat-latestgpt-5-minigpt-5-mini-2025-08-07gpt-5-nanogpt-5-nano-2025-08-07gpt-5.1gpt-5.1-2025-11-13gpt-5.1-chat-latestgpt-5.2gpt-5.2-2025-12-11gpt-5.2-chat-latestgpt-5.3-chat-latestgpt-5.4gpt-5.4-2026-03-05gpt-5.4-minigpt-5.4-mini-2026-03-17gpt-5.4-nanogpt-5.4-nano-2026-03-17gpt-5.5gpt-5.5-2026-04-23gpt-5.5-2026-04-23-highgpt-5.5-2026-04-23-lowgpt-5.5-2026-04-23-mediumgpt-5.5-2026-04-23-xhighgpt-5.5-highgpt-5.5-lowgpt-5.5-mediumgpt-5.5-xhighgpt-5.6-lunagpt-5.6-luna-highgpt-5.6-luna-lowgpt-5.6-luna-mediumgpt-5.6-luna-xhighgpt-5.6-solgpt-5.6-sol-highgpt-5.6-sol-lowgpt-5.6-sol-mediumgpt-5.6-sol-xhighgpt-5.6-terragpt-5.6-terra-highgpt-5.6-terra-lowgpt-5.6-terra-mediumgpt-5.6-terra-xhighgpt-6-astragpt-6-astra-highgpt-6-astra-lowgpt-6-astra-mediumgpt-6-astra-xhighgpt-audiogpt-audio-1.5gpt-audio-2025-08-28gpt-audio-minigpt-audio-mini-2025-10-06gpt-audio-mini-2025-12-15gpt-image-1gpt-image-1-minigpt-image-1.5gpt-image-2gpt-image-2-2026-04-21o1o1-2024-12-17o3o3-2025-04-16o3-deep-researcho3-deep-research-2025-06-26o3-minio3-mini-2025-01-31o4-minio4-mini-2025-04-16o4-mini-deep-researcho4-mini-deep-research-2025-06-26text-embedding-3-largetext-embedding-3-smalltext-embedding-ada-002
Anthropic (14)
claude-fable-5claude-fable-5-1claude-haiku-4-5claude-haiku-4-5-20251001claude-opus-4-5claude-opus-4-5-20251101claude-opus-4-6claude-opus-4-7claude-opus-4-8claude-opus-5claude-sonnet-4-5claude-sonnet-4-5-20250929claude-sonnet-4-6claude-sonnet-5
Gemini (24)
gemini-2.5-flashgemini-2.5-flash-imagegemini-2.5-flash-litegemini-2.5-progemini-3-flash-previewgemini-3-pro-imagegemini-3.1-flash-imagegemini-3.1-flash-litegemini-3.1-flash-lite-imagegemini-3.1-flash-lite-previewgemini-3.1-flash-tts-previewgemini-3.1-pro-previewgemini-3.5-flashgemini-3.5-flash-litegemini-3.5-transcribegemini-3.5-transcribe-livegemini-3.6-flashgemini-3.7-flashgemini-3.8-flashgemini-embedding-001gemini-embedding-2gemini-embedding-2-previewgemini-omni-1.1-flashgemini-omni-flash-preview
Together AI (103)
BAAI/bge-base-en-v1.5Qwen/QwQ-32BQwen/Qwen2-1.5B-InstructQwen/Qwen2-VL-72B-InstructQwen/Qwen2.5-14B-InstructQwen/Qwen2.5-72B-InstructQwen/Qwen2.5-72B-Instruct-TurboQwen/Qwen2.5-7B-Instruct-TurboQwen/Qwen2.5-Coder-32B-InstructQwen/Qwen2.5-VL-72B-InstructQwen/Qwen3-235B-A22B-Instruct-2507-tputQwen/Qwen3-235B-A22B-Thinking-2507Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8Qwen/Qwen3-Coder-Next-FP8Qwen/Qwen3-Next-80B-A3B-InstructQwen/Qwen3-Next-80B-A3B-ThinkingQwen/Qwen3-VL-32B-InstructQwen/Qwen3-VL-8B-InstructQwen/Qwen3.5-397B-A17BQwen/Qwen3.5-9BQwen/Qwen3.6-PlusQwen/Qwen3.7-MaxQwen/Qwen3.7-PlusQwen/Qwen3.8-2.4T-A95BQwen/Qwen3.8-Flasharcee-ai/trinity-minideepcogito/cogito-v1-preview-llama-70Bdeepcogito/cogito-v1-preview-llama-70B-Turbodeepcogito/cogito-v1-preview-llama-8Bdeepcogito/cogito-v1-preview-qwen-14Bdeepcogito/cogito-v1-preview-qwen-32Bdeepcogito/cogito-v2-1-671bdeepseek-ai/DeepSeek-R1deepseek-ai/DeepSeek-R1-0528deepseek-ai/DeepSeek-R1-0528-tputdeepseek-ai/DeepSeek-R1-Distill-Llama-70Bdeepseek-ai/DeepSeek-R1-Distill-Qwen-1.5Bdeepseek-ai/DeepSeek-R1-Distill-Qwen-14Bdeepseek-ai/DeepSeek-V3-0324deepseek-ai/DeepSeek-V3.1deepseek-ai/DeepSeek-V4-Flash-0731deepseek-ai/DeepSeek-V4-Prodeepseek-ai/DeepSeek-V4-Pro-0813deepseek-ai/DeepSeek-V4.1-Flashdeepseek-ai/deepseek-coder-33b-instructessentialai/rnj-1-instructgoogle/gemma-2-27b-itgoogle/gemma-3n-E4B-itgoogle/gemma-4-31B-itintfloat/multilingual-e5-large-instructmeta-llama/Llama-3-70b-chat-hfmeta-llama/Llama-3-8b-chat-hfmeta-llama/Llama-3.1-405B-Instructmeta-llama/Llama-3.2-1B-Instructmeta-llama/Llama-3.2-3B-Instruct-Turbometa-llama/Llama-3.3-70B-Instruct-Turbometa-llama/Llama-3.3-70B-Instruct-Turbo-testmeta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8meta-llama/Llama-4-Scout-17B-16E-Instructmeta-llama/Meta-Llama-3-70B-Instruct-Turbometa-llama/Meta-Llama-3-8B-Instructmeta-llama/Meta-Llama-3-8B-Instruct-Litemeta-llama/Meta-Llama-3.1-70B-Instruct-Referencemeta-llama/Meta-Llama-3.1-70B-Instruct-Turbometa-llama/Meta-Llama-3.1-8B-Instruct-Referencemeta-llama/Meta-Llama-3.1-8B-Instruct-Turbomistralai/Ministral-3-14B-Instruct-2512mistralai/Mistral-7B-Instruct-v0.1mistralai/Mistral-7B-Instruct-v0.2mistralai/Mistral-7B-Instruct-v0.3mistralai/Mistral-Small-24B-Instruct-2501mistralai/Mixtral-8x7B-Instruct-v0.1moonshotai/Kimi-K2-Instructmoonshotai/Kimi-K2-Instruct-0905moonshotai/Kimi-K2-Thinkingmoonshotai/Kimi-K2.5moonshotai/Kimi-K2.6moonshotai/Kimi-K2.7-Codemoonshotai/Kimi-K3moonshotai/Kimi-K3-highmoonshotai/Kimi-K3-lowmoonshotai/Kimi-K3-maxnvidia/Llama-3.1-Nemotron-70B-Instruct-HFnvidia/NVIDIA-Nemotron-Nano-9B-v2nvidia/nemotron-3-ultra-550b-a55bopenai/gpt-oss-120bopenai/gpt-oss-120b-highopenai/gpt-oss-120b-lowopenai/gpt-oss-120b-mediumopenai/gpt-oss-20bopenai/gpt-oss-20b-highopenai/gpt-oss-20b-lowopenai/gpt-oss-20b-mediumzai-org/GLM-4.5-Air-FP8zai-org/GLM-4.6zai-org/GLM-4.7zai-org/GLM-5zai-org/GLM-5.1zai-org/GLM-5.2zai-org/GLM-5.2-highzai-org/GLM-5.2-maxzai-org/GLM-5.3zai-org/GLM-5.3-Flash
Z.AI (8)
glm-4-32b-0414-128kglm-4.5glm-4.5-airglm-4.5-airxglm-4.5-flashglm-4.5-xglm-4.6glm-4.7
Moonshot AI (10)
kimi-k2.5kimi-k2.6kimi-k2.7-codekimi-k3kimi-k3-highkimi-k3-lowkimi-k3-maxmoonshot-v1-128kmoonshot-v1-32kmoonshot-v1-8k
OpenRouter (381)
openrouter/aion-labs/aion-2.0openrouter/aion-labs/aion-3.0openrouter/aion-labs/aion-3.0-miniopenrouter/aion-labs/aion-rp-llama-3.1-8bopenrouter/amazon/nova-2-lite-v1openrouter/amazon/nova-lite-v1openrouter/amazon/nova-micro-v1openrouter/amazon/nova-premier-v1openrouter/amazon/nova-pro-v1openrouter/anthracite-org/magnum-v4-72bopenrouter/anthropic/claude-3-haikuopenrouter/anthropic/claude-3.7-sonnet:thinkingopenrouter/anthropic/claude-fable-5openrouter/anthropic/claude-fable-5.1openrouter/anthropic/claude-haiku-4.5openrouter/anthropic/claude-opus-4openrouter/anthropic/claude-opus-4.1openrouter/anthropic/claude-opus-4.5openrouter/anthropic/claude-opus-4.6openrouter/anthropic/claude-opus-4.7openrouter/anthropic/claude-opus-4.8openrouter/anthropic/claude-opus-5openrouter/anthropic/claude-sonnet-4openrouter/anthropic/claude-sonnet-4.5openrouter/anthropic/claude-sonnet-4.6openrouter/anthropic/claude-sonnet-5openrouter/arcee-ai/trinity-large-thinkingopenrouter/baidu/ernie-4.5-vl-424b-a47bopenrouter/bytedance-seed/seed-1.6openrouter/bytedance-seed/seed-1.6-flashopenrouter/bytedance-seed/seed-2-1-turboopenrouter/bytedance-seed/seed-2.0-codeopenrouter/bytedance-seed/seed-2.0-liteopenrouter/bytedance-seed/seed-2.0-miniopenrouter/bytedance/ui-tars-1.5-7bopenrouter/cognitivecomputations/dolphin-mistral-24b-venice-editionopenrouter/cohere/command-aopenrouter/cohere/command-r-08-2024openrouter/cohere/command-r-plus-08-2024openrouter/cohere/command-r7b-12-2024openrouter/deepseek/deepseek-chatopenrouter/deepseek/deepseek-chat-v3-0324openrouter/deepseek/deepseek-chat-v3.1openrouter/deepseek/deepseek-r1openrouter/deepseek/deepseek-r1-0528openrouter/deepseek/deepseek-r1-distill-llama-70bopenrouter/deepseek/deepseek-v3.1-terminusopenrouter/deepseek/deepseek-v3.2openrouter/deepseek/deepseek-v3.2-expopenrouter/deepseek/deepseek-v4-flashopenrouter/deepseek/deepseek-v4-flash-0731openrouter/deepseek/deepseek-v4-flash-vision-expopenrouter/deepseek/deepseek-v4-proopenrouter/deepseek/deepseek-v4-pro-0813openrouter/deepseek/deepseek-v4.1-flashopenrouter/google/gemini-2.5-flashopenrouter/google/gemini-2.5-flash-imageopenrouter/google/gemini-2.5-flash-liteopenrouter/google/gemini-2.5-proopenrouter/google/gemini-2.5-pro-previewopenrouter/google/gemini-3-flash-previewopenrouter/google/gemini-3-pro-imageopenrouter/google/gemini-3-pro-image-previewopenrouter/google/gemini-3.1-flash-imageopenrouter/google/gemini-3.1-flash-image-previewopenrouter/google/gemini-3.1-flash-liteopenrouter/google/gemini-3.1-flash-lite-imageopenrouter/google/gemini-3.1-flash-lite-previewopenrouter/google/gemini-3.1-pro-previewopenrouter/google/gemini-3.1-pro-preview-customtoolsopenrouter/google/gemini-3.5-flashopenrouter/google/gemini-3.5-flash-liteopenrouter/google/gemini-3.6-flashopenrouter/google/gemini-3.7-flashopenrouter/google/gemini-3.8-flashopenrouter/google/gemma-2-27b-itopenrouter/google/gemma-3-12b-itopenrouter/google/gemma-3-27b-itopenrouter/google/gemma-3-4b-itopenrouter/google/gemma-4-26b-a4b-itopenrouter/google/gemma-4-31b-itopenrouter/google/lyria-3-clip-previewopenrouter/google/lyria-3-pro-previewopenrouter/gryphe/mythomax-l2-13bopenrouter/ibm-granite/granite-4.0-h-microopenrouter/ibm-granite/granite-4.2-8bopenrouter/inception/mercury-2openrouter/inception/mercury-2.5openrouter/inclusionai/ling-3.0-flashopenrouter/inclusionai/ling-3.0-flash-finopenrouter/inclusionai/ling-3.0-flash-vlopenrouter/inference-net/schematron-v2-smallopenrouter/inference-net/schematron-v2-turboopenrouter/kwaipilot/kat-coder-pro-v2openrouter/kwaipilot/kat-coder-pro-v2.5openrouter/mancer/weaveropenrouter/meituan/longcat-2.0openrouter/meta-llama/llama-3.1-70b-instructopenrouter/meta-llama/llama-3.1-8b-instructopenrouter/meta-llama/llama-3.2-1b-instructopenrouter/meta-llama/llama-3.2-3b-instructopenrouter/meta-llama/llama-3.3-70b-instructopenrouter/meta-llama/llama-4-maverickopenrouter/meta-llama/llama-4-scoutopenrouter/meta-llama/llama-guard-4-12bopenrouter/meta/muse-glimmer-30bopenrouter/meta/muse-spark-1.1openrouter/meta/muse-spark-1.2openrouter/meta/muse-spark-1.3openrouter/microsoft/phi-4openrouter/microsoft/wizardlm-2-8x22bopenrouter/mistralai/codestral-2508openrouter/mistralai/devstral-2512openrouter/mistralai/ministral-14b-2512openrouter/mistralai/ministral-3b-2512openrouter/mistralai/ministral-8b-2512openrouter/mistralai/mistral-largeopenrouter/mistralai/mistral-large-2407openrouter/mistralai/mistral-medium-3openrouter/mistralai/mistral-medium-3-5openrouter/mistralai/mistral-medium-3.1openrouter/mistralai/mistral-nemoopenrouter/mistralai/mistral-sabaopenrouter/mistralai/mistral-small-24b-instruct-2501openrouter/mistralai/mistral-small-2603openrouter/mistralai/mistral-small-3.1-24b-instructopenrouter/mistralai/mistral-small-3.2-24b-instructopenrouter/mistralai/mixtral-8x22b-instructopenrouter/mistralai/voxtral-small-24b-2507openrouter/moonshotai/kimi-k2openrouter/moonshotai/kimi-k2-0905openrouter/moonshotai/kimi-k2-thinkingopenrouter/moonshotai/kimi-k2.5openrouter/moonshotai/kimi-k2.6openrouter/moonshotai/kimi-k2.7-codeopenrouter/moonshotai/kimi-k3openrouter/moonshotai/kimi-k3-highopenrouter/moonshotai/kimi-k3-lowopenrouter/moonshotai/kimi-k3-maxopenrouter/morph/morph-v3-fastopenrouter/morph/morph-v3-largeopenrouter/nousresearch/hermes-3-llama-3.1-405bopenrouter/nousresearch/hermes-3-llama-3.1-70bopenrouter/nousresearch/hermes-4-405bopenrouter/nvidia/nemotron-3-nano-30b-a3bopenrouter/nvidia/nemotron-3-super-120b-a12bopenrouter/nvidia/nemotron-3-ultra-550b-a55bopenrouter/nvidia/nemotron-3.5-content-safetyopenrouter/nvidia/nemotron-3.5-lightningopenrouter/openai/gpt-3.5-turboopenrouter/openai/gpt-3.5-turbo-0613openrouter/openai/gpt-3.5-turbo-16kopenrouter/openai/gpt-3.5-turbo-instructopenrouter/openai/gpt-4openrouter/openai/gpt-4-turboopenrouter/openai/gpt-4.1openrouter/openai/gpt-4.1-miniopenrouter/openai/gpt-4.1-nanoopenrouter/openai/gpt-4oopenrouter/openai/gpt-4o-2024-05-13openrouter/openai/gpt-4o-2024-08-06openrouter/openai/gpt-4o-2024-11-20openrouter/openai/gpt-4o-miniopenrouter/openai/gpt-4o-mini-2024-07-18openrouter/openai/gpt-4o:extendedopenrouter/openai/gpt-5openrouter/openai/gpt-5-imageopenrouter/openai/gpt-5-image-miniopenrouter/openai/gpt-5-miniopenrouter/openai/gpt-5-nanoopenrouter/openai/gpt-5.1openrouter/openai/gpt-5.2openrouter/openai/gpt-5.2-chatopenrouter/openai/gpt-5.4openrouter/openai/gpt-5.4-image-2openrouter/openai/gpt-5.4-miniopenrouter/openai/gpt-5.4-nanoopenrouter/openai/gpt-5.5openrouter/openai/gpt-5.5-highopenrouter/openai/gpt-5.5-lowopenrouter/openai/gpt-5.5-mediumopenrouter/openai/gpt-5.5-xhighopenrouter/openai/gpt-5.6-lunaopenrouter/openai/gpt-5.6-luna-highopenrouter/openai/gpt-5.6-luna-lowopenrouter/openai/gpt-5.6-luna-mediumopenrouter/openai/gpt-5.6-luna-xhighopenrouter/openai/gpt-5.6-solopenrouter/openai/gpt-5.6-sol-highopenrouter/openai/gpt-5.6-sol-lowopenrouter/openai/gpt-5.6-sol-mediumopenrouter/openai/gpt-5.6-sol-xhighopenrouter/openai/gpt-5.6-terraopenrouter/openai/gpt-5.6-terra-highopenrouter/openai/gpt-5.6-terra-lowopenrouter/openai/gpt-5.6-terra-mediumopenrouter/openai/gpt-5.6-terra-xhighopenrouter/openai/gpt-6-astraopenrouter/openai/gpt-6-astra-highopenrouter/openai/gpt-6-astra-lowopenrouter/openai/gpt-6-astra-mediumopenrouter/openai/gpt-6-astra-xhighopenrouter/openai/gpt-audioopenrouter/openai/gpt-audio-miniopenrouter/openai/gpt-chat-latestopenrouter/openai/gpt-oss-120bopenrouter/openai/gpt-oss-120b-highopenrouter/openai/gpt-oss-120b-lowopenrouter/openai/gpt-oss-120b-mediumopenrouter/openai/gpt-oss-20bopenrouter/openai/gpt-oss-20b-highopenrouter/openai/gpt-oss-20b-lowopenrouter/openai/gpt-oss-20b-mediumopenrouter/openai/gpt-oss-safeguard-20bopenrouter/openai/gpt-oss-safeguard-20b-highopenrouter/openai/gpt-oss-safeguard-20b-lowopenrouter/openai/gpt-oss-safeguard-20b-mediumopenrouter/openai/o1openrouter/openai/o1-proopenrouter/openai/o3openrouter/openai/o3-miniopenrouter/openai/o3-mini-highopenrouter/openai/o3-proopenrouter/openai/o4-miniopenrouter/openai/o4-mini-highopenrouter/perceptron/perceptron-mk1openrouter/perplexity/sonaropenrouter/perplexity/sonar-deep-researchopenrouter/perplexity/sonar-proopenrouter/perplexity/sonar-pro-searchopenrouter/perplexity/sonar-reasoning-proopenrouter/poolside/laguna-s-2.1openrouter/poolside/laguna-xs-2.1openrouter/prism-ml/ternary-bonsai-2-27bopenrouter/qwen/qwen-2.5-72b-instructopenrouter/qwen/qwen-2.5-7b-instructopenrouter/qwen/qwen-2.5-coder-32b-instructopenrouter/qwen/qwen-plusopenrouter/qwen/qwen-plus-2025-07-28openrouter/qwen/qwen-plus-2025-07-28:thinkingopenrouter/qwen/qwen2.5-vl-72b-instructopenrouter/qwen/qwen3-14bopenrouter/qwen/qwen3-235b-a22bopenrouter/qwen/qwen3-235b-a22b-2507openrouter/qwen/qwen3-235b-a22b-thinking-2507openrouter/qwen/qwen3-30b-a3bopenrouter/qwen/qwen3-30b-a3b-instruct-2507openrouter/qwen/qwen3-30b-a3b-thinking-2507openrouter/qwen/qwen3-32bopenrouter/qwen/qwen3-8bopenrouter/qwen/qwen3-coderopenrouter/qwen/qwen3-coder-30b-a3b-instructopenrouter/qwen/qwen3-coder-flashopenrouter/qwen/qwen3-coder-nextopenrouter/qwen/qwen3-coder-plusopenrouter/qwen/qwen3-maxopenrouter/qwen/qwen3-max-thinkingopenrouter/qwen/qwen3-next-80b-a3b-instructopenrouter/qwen/qwen3-next-80b-a3b-thinkingopenrouter/qwen/qwen3-vl-235b-a22b-instructopenrouter/qwen/qwen3-vl-235b-a22b-thinkingopenrouter/qwen/qwen3-vl-30b-a3b-instructopenrouter/qwen/qwen3-vl-30b-a3b-thinkingopenrouter/qwen/qwen3-vl-32b-instructopenrouter/qwen/qwen3-vl-8b-instructopenrouter/qwen/qwen3-vl-8b-thinkingopenrouter/qwen/qwen3.5-122b-a10bopenrouter/qwen/qwen3.5-27bopenrouter/qwen/qwen3.5-35b-a3bopenrouter/qwen/qwen3.5-397b-a17bopenrouter/qwen/qwen3.5-9bopenrouter/qwen/qwen3.5-flash-02-23openrouter/qwen/qwen3.5-plus-02-15openrouter/qwen/qwen3.5-plus-20260420openrouter/qwen/qwen3.6-27bopenrouter/qwen/qwen3.6-35b-a3bopenrouter/qwen/qwen3.6-flashopenrouter/qwen/qwen3.6-max-previewopenrouter/qwen/qwen3.6-plusopenrouter/qwen/qwen3.7-flashopenrouter/qwen/qwen3.7-maxopenrouter/qwen/qwen3.7-plusopenrouter/qwen/qwen3.8-2.4t-a95bopenrouter/qwen/qwen3.8-27bopenrouter/qwen/qwen3.8-flashopenrouter/qwen/qwen3.8-max-0902openrouter/rekaai/reka-edgeopenrouter/rekaai/reka-flash-3openrouter/relace/relace-apply-3openrouter/relace/relace-searchopenrouter/sakana/fugu-maxopenrouter/sakana/fugu-ultraopenrouter/sakana/fugu-ultra-v2openrouter/sao10k/l3-lunaris-8bopenrouter/sao10k/l3.1-euryale-70bopenrouter/sao10k/l3.3-euryale-70bopenrouter/stepfun/step-3.5-flashopenrouter/stepfun/step-3.7-flashopenrouter/tencent/hunyuan-a13b-instructopenrouter/tencent/hy-mt2-1.8bopenrouter/tencent/hy-mt2-30b-a3bopenrouter/tencent/hy-mt2-7bopenrouter/tencent/hy3openrouter/tencent/hy3-previewopenrouter/tencent/hy4-previewopenrouter/thedrummer/cydonia-24b-v4.1openrouter/thedrummer/skyfall-36b-v2openrouter/thedrummer/unslopnemo-12bopenrouter/thinkingmachines/inklingopenrouter/thinkingmachines/inkling-smallopenrouter/typesafe/jev-1.13openrouter/unbiased/paretoopenrouter/undi95/remm-slerp-l2-13bopenrouter/upstage/solar-pro-3openrouter/upstage/solar-pro4openrouter/writer/palmyra-x5openrouter/x-ai/grok-4.20openrouter/x-ai/grok-4.20-multi-agentopenrouter/x-ai/grok-4.3openrouter/x-ai/grok-4.3-highopenrouter/x-ai/grok-4.3-lowopenrouter/x-ai/grok-4.3-mediumopenrouter/x-ai/grok-4.5openrouter/x-ai/grok-4.5-highopenrouter/x-ai/grok-4.5-lowopenrouter/x-ai/grok-4.5-mediumopenrouter/x-ai/grok-4.6openrouter/x-ai/grok-build-0.1openrouter/xiaomi/mimo-v2.5openrouter/xiaomi/mimo-v2.5-proopenrouter/z-ai/glm-4.5openrouter/z-ai/glm-4.5-airopenrouter/z-ai/glm-4.5vopenrouter/z-ai/glm-4.6openrouter/z-ai/glm-4.6vopenrouter/z-ai/glm-4.7openrouter/z-ai/glm-4.7-flashopenrouter/z-ai/glm-5openrouter/z-ai/glm-5-turboopenrouter/z-ai/glm-5.1openrouter/z-ai/glm-5.2openrouter/z-ai/glm-5.2-highopenrouter/z-ai/glm-5.2-maxopenrouter/z-ai/glm-5.3openrouter/z-ai/glm-5.3-flashopenrouter/z-ai/glm-5v-turboopenrouter/~anthropic/claude-fable-latestopenrouter/~anthropic/claude-haiku-latestopenrouter/~anthropic/claude-opus-latestopenrouter/~anthropic/claude-sonnet-latestopenrouter/~deepseek/deepseek-flash-latestopenrouter/~deepseek/deepseek-pro-latestopenrouter/~deepseek/deepseek-v4-flash-latestopenrouter/~google/gemini-flash-latestopenrouter/~google/gemini-pro-latestopenrouter/~moonshotai/kimi-latestopenrouter/~openai/gpt-astra-latestopenrouter/~openai/gpt-astra-latest-highopenrouter/~openai/gpt-astra-latest-lowopenrouter/~openai/gpt-astra-latest-mediumopenrouter/~openai/gpt-astra-latest-xhighopenrouter/~openai/gpt-luna-latestopenrouter/~openai/gpt-luna-latest-highopenrouter/~openai/gpt-luna-latest-lowopenrouter/~openai/gpt-luna-latest-mediumopenrouter/~openai/gpt-luna-latest-xhighopenrouter/~openai/gpt-mini-latestopenrouter/~openai/gpt-sol-latestopenrouter/~openai/gpt-sol-latest-highopenrouter/~openai/gpt-sol-latest-lowopenrouter/~openai/gpt-sol-latest-mediumopenrouter/~openai/gpt-sol-latest-xhighopenrouter/~openai/gpt-terra-latestopenrouter/~openai/gpt-terra-latest-highopenrouter/~openai/gpt-terra-latest-lowopenrouter/~openai/gpt-terra-latest-mediumopenrouter/~openai/gpt-terra-latest-xhighopenrouter/~typesafe/jev-latestopenrouter/~x-ai/grok-latestopenrouter/~z-ai/glm-flash-latestopenrouter/~z-ai/glm-latest
Claude Code CLI (cc/*) (14)
cc/claude-fable-5cc/claude-fable-5-1cc/claude-haiku-4-5-20251001cc/claude-opus-4-5-20251101cc/claude-opus-4-6cc/claude-opus-4-7cc/claude-opus-4-8cc/claude-opus-5cc/claude-sonnet-4-5-20250929cc/claude-sonnet-4-6cc/claude-sonnet-5cc/haikucc/opuscc/sonnet
Codex CLI (codex/*) (8)
codex/codex-auto-reviewcodex/defaultcodex/gpt-5.4codex/gpt-5.5codex/gpt-5.6-lunacodex/gpt-5.6-solcodex/gpt-5.6-terracodex/gpt-6-astra
Contributions in the form of issues are welcome. KISS Sorcar should be able to help implement and review them.
Apache-2.0. See LICENSE.
If you use KISS Sorcar in your research, please cite:
@misc{sen2026kisssorcar,
title = {KISS Sorcar: A Stupidly-Simple General-Purpose and Software Engineering AI Assistant},
author = {Sen, Koushik},
year = {2026},
eprint = {2604.23822},
archivePrefix = {arXiv},
primaryClass = {cs.SE},
url = {https://arxiv.org/abs/2604.23822}
}
