Everything should be made as simple as possible, but not simpler.
— Albert Einstein
Tell it what to do, in any language and give it a concrete goal. It picks the best LLMs, runs on your laptop, and ships the work.
Apache 2.0 · open source603 models · 9 providers~2,850 lines of core agents code
KISS Sorcar is an open-source general-purpose AI agent for long-horizon tasks and AI discovery.
It is a simple, local-first, bring-your-own-key AI agent framework. It runs as a VS Code extension,
a Claude-Code-style CLI, and a browser/mobile web app. 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. All agents run as daemons. Complex AI systems/techniques
can be replaced with a paragraph of prompt in KISS Sorcar.
Full installation script
★ Recommended
Preferred way to install KISS Sorcar — macOS & Linux, one command, no extra steps.
A side-by-side look at the differences that matter for everyday use.
Capability
KISS Sorcar
Claude Code
Cursor
Interfaces
CLI + VS Code extension + web/mobile app
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
~2850
Unknown
Unknown
Models in bundled catalog
603 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
⚠ Routed through Cursor backend
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
✓ 23 third-party agents, including Slack, Gmail, Phone Control, SMS, and WhatsApp
⚠ Slack, mobile Remote Control, and research-preview channels for Telegram, Discord, and iMessage; no documented built-in Gmail, WhatsApp, phone-call, or SMS channel
⚠ Slack and Microsoft Teams Cloud Agent integrations; no documented built-in Gmail, WhatsApp, phone-call, or SMS channel
§ 02 — All you need is a short prompt in KISS Sorcar to do big complex tasks
All You Need is a Short Prompt in KISS Sorcar to do Big Complex Tasks.¶
KISS Sorcar ships with a curated set of sample tasks (long-horizon prompts you can drop straight into the CLI or VS Code extension or Web app) and promptlet tricks (short reusable directives that steer Sorcar's behaviour by injecting to the prompt). The tasks live in src/kiss/SAMPLE_TASKS.md; the tricks live in src/kiss/INJECTIONS.md. You can add your tasks at ~/.kiss/MY_TASK_TEMPLATES.md and your promptlets at ~/.kiss/MY_INJECTION.md.
Explain a workflow step-by-step
Task
Ask Sorcar to walk you through the detailed step-by-step workflow of any algorithm or feature in your codebase, so you can understand it before changing it.
Can you show me the detailed step-by-step workflow of <<your algorithm or feature>>
Edit a specific step of a workflow
Task
Modify a specific step of an existing workflow with a precise natural-language instruction — no need to point Sorcar at the file, it will find the right code.
Can you change the step <<specify step>> as follows: <<whatever way you want to change>>
Authenticate with a Slack workspace
Task
Have Sorcar log you into a Slack workspace using the bundled Slack agent, so it can send and receive messages on your behalf.
Can you authenticate me with the <<workspace name>> workspace on Slack using the Slack agent?
Run a Slack-driven cron job
Task
Spin up a named cron job that polls a Slack channel for the latest unanswered messages, runs them as Sorcar tasks in arrival order, and replies with Slack-formatted results.
Can you create a cron job with a name prefixed with "kiss-" which will check every 3 seconds if there are the latest unanswered messages from /<<user name>> in the channel sorcar using the Slack agent, then it will run the messages as tasks one-by-one in the order of arrival and respond with the result suitably formatted for Slack.
Authenticate with iMessage
Task
Connect Sorcar to your iMessage account so it can send and receive texts directly from macOS.
Can you authenticate me with the iMessage agent?
Send an SMS to a phone number
Task
Dispatch a one-line SMS to any phone number through Sorcar's messaging agents — no scripting required.
Can you send "Hello from Sorcar!" to 1-510-289-3391?
Authenticate with Gmail
Task
Walk through the OAuth login flow for Gmail using the bundled Gmail agent, with the browser handling consent and Sorcar storing the token locally.
Can you authenticate me with Gmail using the Gmail agent? Use the user's default browser to prompt the user to log in and obtain the authentication token.
Audit a paper or repo for fraud
Task
Have Sorcar fact-check a URL for wrong assumptions, cheating, irreproducibility, fraud, AI slop, and security vulnerabilities — verifying every claim and shipping a report.
Can you read <<url>>, and thoroughly and precisely check for **wrong assumptions**, **cheating**, **irreproducibility issues**, **fraud**, **potential for cheating in evaluation**, **AI Slop**, and **security vulnerabilities**? Use the internet extensively and do not believe what people say -- verify it yourself. Do not hesitate to download code and run it to validate results. For security vulnerabilities, create a POC and test it. Create a report.
Sorcar for AI Discovery
Task
Let Sorcar search, train, and benchmark candidate models on your data to find the lightest, fastest, cheapest model that hits your target accuracy, recall, and price-per-query.
Sorcar for AI Discovery: Can you AI discover the lightest and fastest AI model that will give the best accuracy and recall on the data at <</path/to/data>> at the cheapest price? Use 'modal' CLI to train your models on GPUs and evaluate if needed. The total budget for Modal.com is $ 1,000. Do not STOP until accuracy/recall reaches 99% and price per query on the model is less that $0.5. Craete a report.
Sorcar for Optimization
Task
Run a command, let Sorcar instrument and monitor its output, then iteratively rewrite the code and apply AI discovery to hit your speed, accuracy, recall, and cost targets.
Sorcar for Optimization: Can you run the command <<command>> and optimize it with respect to the following metrics: <<speed, accuracy, recall, cost>>. Then use AI discovery to optimize. You can add a diagnostic code that prints metrics, such as running time, at a finer granularity. Do not forget to remove the diagnostic code after the optimization is complete. You MUST NOT STOP until the metrics achieve the following values: <<give_concrete_values_for_metrics>>. Create a report.
Sorcar GEPA Prompt Optimizer
Task
Run a full GEPA Pareto-frontier prompt-optimization loop over your dataset to evolve the best prompt for a ChatSorcarAgent, with cross-model review and no reward hacking.
Sorcar GEPA Prompt Optimizer: Can you optimize a prompt for a ChatSorcarAgent of the kiss-agent-framework Python library using the following GEPA algorithm on the data at <<url_or_db_file_of_data>> using claude-fable-5? You can find the trajectory events of an agent execution in ~/.kiss/sorcar.db after the agent has finished its execution. Split the dataset into a 50% dev set and a 50% val set.
RUN_GEPA: Sample 100 data points from the val set and call it the sval set. Maintain a Pareto frontier in the folder ./pareto, with a sub-folder for each node in the frontier. A node contains a prompt file (prompt.md) and a JSON file, say score.json, containing the list of data points (ids) from the sval set that were correctly predicted by the prompt. When you add a node to the Pareto frontier, make sure that the list of correctly predicted data points is not a subset or equal to an existing list of data points in some node in the frontier. If such a node exists, do not add the new node. After adding a node, remove all nodes whose list of datapoints is a subset or equal to the list of datapoints in the added node. Then run the following algorithm.
1. pick a node from the Pareto frontier with probability 0.5
a. sample a minibatch of 5 datapoints from the dev set
b. run the agent with the prompt from the node on the minibatch
c. If the agent incorrectly predicts for some datapoints, analyze and reflect on the trajectory events of the agent on those datapoints available at ~/.kiss/sorcar.db and propose a new prompt that will fix the mistakes made by the agent on datapoints incorrectly predicted
d. if the agent predicts correctly on the minibatch, then evaluate it on the sval set and create the list of datapoints on which the agent with the new prompt predicts correctly.
e. Add the new prompt and the list of datapoints to the Pareto frontier
1. Pick two nodes from the Pareto frontier randomly with the remaining probability.
a. Sample a minibatch of 5 datapoints from the dev set
b. Merge the prompts from the two nodes into a new prompt.
c. If the agent predicts correctly on the minibatch with the new prompt, then evaluate it on the sval set and create the list of datapoints on which the agent with the new prompt predicts correctly.
d. Add the new prompt and the list of datapoints to the Pareto frontier
1. Repeat steps 1 and 2 until there is no change in the prompt after 3 iterations.
END_RUN_GEPA
Repeat RUN_GEPA until there is no change in the prompt after 3 iterations.
At each step, keep track of the best prompt, which has the maximum number of successfully predicted data points, in ./pareto/optimal.md. MAKE SURE THAT YOU DO NOT DO REWARD HACKING OR CHEATING IN THE AGENT YOU ARE IMPLEMENTING TO FIT DATA. YOUR SOLUTION MUST GENERALIZE BEYOND THE DATA PROVIDED. Use internet search extensively at every step. Do not worry about budget. Create an HTML report with diagrams and illustrations in ./reports and open it in the user's default browser. Do NOT STOP until you cannot improve the accuracy and recall after three consecutive rollouts. Use gpt-5.6-sol model (not codex) for a thorough review of the work done at every step by the other model.
Run GEPA on HotpotQA
Task
A one-liner to invoke gepa.py on the HotpotQA dataset with gpt-4o-mini as both the task model and the optimizer.
Can you run gepa.py on hotpotqa using gpt-4o-mini as both models?
Pair-program with multi-model review
Trick
Use Claude Fable as the implementer and GPT-5.6 Sol as a read-only reviewer/debugger — capped at 20% of the task budget and told not to invent new problems — so missed code, missing wirings, and silent bugs are caught before they ship.
Use 'claude-fable-5' model for all tasks, including software development. Use 'gpt-5.6-sol' (not codex) for a thorough read-only review and debugging of the other model's work. Thoroughly check whether the other model has missed any code or wiring or introduced any bugs. Use at most 20% of task budget in gpt-5.6-sol for reviewing and debugging, and ask the model to not invent new problems. Use the model names literally without hallucinating new model names.
Reproduce invariant violations
Trick
Codify suspected invariant breaks as end-to-end tests with 100% coverage first, then let Sorcar fix the offending code so the invariant holds forever.
Reproduce any violation of the invariant by writing end-to-end tests with 100% coverage. Then fix the issue.
Run a task from an instructions file
Trick
Point Sorcar at a file of instructions and have it follow them to carry out the task — handy for reusable runbooks and playbooks. Replace @ with the path to your file.
Can you use the instructions in the file @ to perform the task?
Resolve a merge conflict
Trick
Paste the merge-conflict message after this trick and let Sorcar analyse the diff and resolve the conflict for you.
Can you check the following message for a merge conflict and help me fix it?
Read the research behind KISS Sorcar — the system, how it built itself, and how it wrote its own paper.
Main paper
KISS Sorcar: A Stupidly-Simple General-Purpose and Software Engineering AI Assistant
Introduces KISS Sorcar and the underlying KISS Agent Framework: a deliberately minimal, open-source agent runtime designed for long-horizon tasks, rigorous review, multi-model orchestration, and AI discovery.
A case study of building KISS Sorcar with KISS Sorcar itself. Over 44 days the developer issued 3,099 tasks through the system's own interface; we analyze the SQLite usage log and surface nine recurring human–AI collaboration patterns.
Writing a Research Paper with an AI Agent: A Chronicle of KISS Sorcar Writing Its Own Paper
A nine-day, hundred-task chronicle of KISS Sorcar drafting, citing, compiling, and debugging its own research paper — doubling as a stress test of the agent itself.
Two names. One principle. A nod to a Bengali magician.
KISS Agent Framework
Keep it Simple, Stupid.
KISS Agent Framework is a deliberately small agent runtime organized around the KISS principle — "Keep it Simple, Stupid."
KISS Sorcar
Named after P. C. Sorcar.
KISS Sorcar is named after 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.
Pick the install path that fits you — full source, Python package, or the VS Code extension. All you need is at least one API key from a major LLM provider. The one-line install script below is the recommended way to install the full KISS Sorcar stack.
Full install from source ★ Recommended
Preferred way to install the full KISS Sorcar stack. Works on macOS and Linux (x86_64, aarch64, arm64). Installs or checks every tool needed to run KISS Sorcar and build/install the VS Code extension — one command, no extra steps.
For just the Python package and CLI entry points. KISS Sorcar requires Python 3.13+.
$pipx install kiss-agent-framework
# or
$uv tool install kiss-agent-framework
Configure model access
Provide at least one model backend through environment variables:
exportANTHROPIC_API_KEY=...
exportOPENAI_API_KEY=...
exportGEMINI_API_KEY=...
exportTOGETHER_API_KEY=...
exportZAI_API_KEY=...
exportMOONSHOT_API_KEY=...
exportOPENROUTER_API_KEY=...
Or configure a custom endpoint with --endpoint / -e and optional repeated --header Key:Value CLI flags.
VS Code Extension
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.
Run sorcar alone for an interactive Claude-Code-style REPL with worktree-isolated tasks, slash commands, and chat history; pass -t "…" or -f task.md for a one-shot non-interactive run. Pick any model with -m, point at a self-hosted endpoint with -e, cap spend with -b, and add MCP servers with sorcar mcp add.
Four invocations to get you started
# 1. Interactive REPL (recommended for first run)
sorcar
# 2. One-shot task on any model, with a $2 cap
sorcar-m"claude-sonnet-4-6"-b2.0-t"Refactor utils.py for clarity."
# 3. Self-hosted or local model
sorcar-e"http://localhost:8000/v1"-t"Summarise this codebase."
# 4. Run a Slack/Gmail/SMS task via a third-party agent
sorcar-t'Send "Hello from Sorcar!" to ksen via the desktop Slack app.'
Full reference (every flag, sorcar mcp subcommands, slash commands, skills, MCP discovery, and VS Code Tricks): Full CLI reference →
KISS Sorcar includes 23 third-party messaging agents that can send and receive messages on your behalf. It also ships a Govee smart-home CLI for controlling IoT lights (on/off, brightness, color, and color temperature) via the Govee Developer API. These agents live in src/kiss/agents/third_party_agents/.
KISS Sorcar ships a catalog of 603 models across 9 provider categories, with built-in prices, context lengths, and capability flags (fc function calling, gen generation, emb embedding). The source of truth is src/kiss/core/models/MODEL_INFO.json.
Provider categories
OpenAI105
Anthropic13
Gemini / Google27
Together AI86
Z.AI8
Moonshot AI10
OpenRouter342
Claude Code CLI (cc/*)3
Codex CLI (codex/*)9
Catalog capability totals
Across all bundled providers, the catalog currently reports:
586
generation-capable models
428
function-calling-capable models
8
embedding models
See the full per-provider model list in the README, including the cc/* and codex/* namespaces that let KISS Sorcar run on top of the Claude Code and Codex CLIs.