Skip to main content

KISS Agent Framework - A simple and portable agent framework for building and evolving AI agents

Project description

KISS Framework

When Simplicity Becomes Your Superpower: Meet KISS Sorcar, a General-purpose and Software engineering AI Assistant and IDE

Version License Python Website arXiv

"Everything should be made as simple as possible, but not simpler." — Albert Einstein

Website: https://kisssorcar.github.io/ · Paper: arXiv:2604.23822


KISS stands for "Keep it Simple, Stupid" which is a well-known software engineering principle.

Table of Contents

Introduction to KISS Sorcar

KISS Sorcar KISS Sorcar (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) is a general-purpose assistant and integrated development environment (IDE) built on top of the KISS Agent Framework, a stupidly-simple agentic framework. It codes really well and works pretty fast. The agent can run relentlessly for hours. KISS Sorcar is implemented as a Visual Studio Code extension that runs locally. It has full browser support (using open-source Chromium browser and Playwright), multimodal support, Docker container support, and OpenClaw like features (whose functionality will be posted later in the social media). The good part is that KISS Sorcar is completely free and open-source; all one needs is a model API key from a major LLM provider, such as Anthropic (highly recommended). A paper on KISS Sorcar can be found at papers/kisssorcar/kiss_sorcar.pdf. The sorcar.db* files have been released to illustrate how KISS Sorcar was used to write the paper. Copy them to ~/.kiss/ folder (after backing them up), restart vscode, and load an item from the history. You can also load an item after setting the demo mode on.

KISS Sorcar scored 62.2% on Terminal Bench 2.0, beating both Cursor agent (61.7%) and Claude Code (58%).

Built on time-tested, robust software engineering principles. Both KISS Sorcar and the KISS Agent Framework are grounded in disciplined engineering practice. These principles are encoded directly into the agent's system prompt, enabling KISS Sorcar to write code that is simple, elegant, maintainable, and bug-free.

An old video on KISS Sorcar can be found at https://www.youtube.com/watch?v=xnYxWvRqACE. We no longer recommend to explicitly create a plan in KISS Sorcar. See the paper for details.

Note that Sorcar also means government in Bengali.

Full Installation

curl -fsSL https://github.com/ksenxx/kiss_ai/scripts/install.sh | bash

KISS Sorcar Extension Installation

To Install KISS Sorcar, open Visual Studio Code, search for "KISS Sorcar" in the extension marketplace, install, and relaunch VS Code. Press ESC if you don't have a specific API key, but you must provide at least one API key.

You can also manually download the extension from src/kiss/agents/vscode/kiss-sorcar.vsix.

CLI Interface

If you do not want to use the KISS Sorcar IDE, you can open a terminal and use sorcar as a normal shell command. Some examples are:

sorcar -t "What is 2435*234"

sorcar -n -t --use-chat "What is 2435*234?" # to start in a new chat session in sorcar use -n

sorcar -m "claude-sonnet-4-6" -t "What is 2435*234?" # to use a specific model

echo "Can you find the cheapest non-stop flight from SFO to JFK on June 15 by consulting various websites?" > prompt
sorcar -f prompt # use contents of a file to send task

sorcar -t 'Can you send the message "Hello from Sorcar!" to ksen via the desktop slack app?'

sorcar -t 'Can you show me the detailed step-by-step workflow of gepa.py?'

Remote Access

KISS Sorcar includes a standalone web server that lets you access the full chat interface from any browser — including phones and tablets. The server uses HTTP for the UI and WebSocket for real-time communication, all on a single port.

Start with a Cloudflare tunnel (for access from anywhere):

uv run kiss-web --tunnel

This starts a cloudflared quick-tunnel and prints a public https://*.trycloudflare.com URL. Open that URL on any device — phone, tablet, or another computer — to use Sorcar remotely. No port-forwarding or DNS setup required. Install cloudflared first (brew install cloudflared on macOS).

Authentication: Set a remote_password in ~/.kiss/config.json (or via the Configuration panel in the Sorcar UI). When a password is set, connecting clients are prompted to enter it before they can interact with the agent.

Accessing from a remote device:

  1. On your server machine, run uv run kiss-web --tunnel.
  2. Copy the https://*.trycloudflare.com URL printed to the terminal.
  3. Open that URL in any browser on your remote device.
  4. Enter the remote password if one is configured.

📬 Messaging & Third-Party Agents

KISS Sorcar can connect to messaging platforms as an always-on agent, responding to messages with the full power of the Sorcar agent. Each platform has a dedicated CLI command:

Platform CLI Command Agent File
Slack kiss-slack slack_agent.py
Gmail kiss-gmail gmail_agent.py
WhatsApp kiss-whatsapp whatsapp_agent.py
Telegram kiss-telegram telegram_agent.py
Discord kiss-discord discord_agent.py
Google Chat kiss-gchat googlechat_agent.py
Signal kiss-signal signal_agent.py
Microsoft Teams kiss-msteams msteams_agent.py
Matrix kiss-matrix matrix_agent.py
Feishu/Lark kiss-feishu feishu_agent.py
LINE kiss-line line_agent.py
Mattermost kiss-mattermost mattermost_agent.py
IRC kiss-irc irc_agent.py
BlueBubbles (iMessage bridge) kiss-bluebubbles bluebubbles_agent.py
iMessage (macOS native) kiss-imessage imessage_agent.py
Nextcloud Talk kiss-nextcloud nextcloud_talk_agent.py
Nostr kiss-nostr nostr_agent.py
Synology Chat kiss-synology synology_chat_agent.py
Tlon (Urbit) kiss-tlon tlon_agent.py
Twitch kiss-twitch twitch_agent.py
Zalo kiss-zalo zalo_agent.py
Phone Control kiss-phone phone_control_agent.py
SMS kiss-sms sms_agent.py

All messaging agents live under src/kiss/agents/third_party_agents/.

🤖 Models Supported

561 models across 5 providers (OpenAI, Anthropic, Gemini, Together AI, OpenRouter) with built-in pricing, context lengths, and capability flags.

Generation Models (text generation with function calling support):

  • OpenAI: gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-4o, gpt-4o-mini, gpt-4.5-preview, gpt-4-turbo, gpt-4, gpt-5, gpt-5-mini, gpt-5-nano, gpt-5-pro, gpt-5.1, gpt-5.2, gpt-5.2-pro, gpt-5.3-chat-latest, gpt-5.4, gpt-5.4-mini, gpt-5.4-nano, gpt-5.4-pro, gpt-5.5, gpt-5.5-pro
  • OpenAI (Codex): gpt-5-codex, gpt-5.1-codex, gpt-5.1-codex-max, gpt-5.1-codex-mini, gpt-5.2-codex, gpt-5.3-codex, codex-mini-latest
  • OpenAI (Reasoning): o1, o1-mini, o1-pro, o3, o3-mini, o3-mini-high, o3-pro, o3-deep-research, o4-mini, o4-mini-high, o4-mini-deep-research
  • OpenAI (Image & Audio): gpt-image-1, gpt-image-1-mini, gpt-image-1.5, gpt-image-2, gpt-audio, gpt-audio-mini, gpt-realtime, gpt-realtime-mini, computer-use-preview
  • OpenAI (Open Source): openai/gpt-oss-20b, openai/gpt-oss-120b
  • Anthropic: claude-opus-4-7, claude-opus-4-6, claude-opus-4-5, claude-opus-4-1, claude-opus-4, claude-sonnet-4-6, claude-sonnet-4-5, claude-sonnet-4, claude-haiku-4-5
  • Anthropic (Legacy): claude-3-5-haiku
  • Anthropic (Claude Code): cc/haiku, cc/opus, cc/sonnet
  • Gemini: gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-image, gemini-2.0-flash, gemini-2.0-flash-lite
  • Gemini (Preview): gemini-3-pro-preview, gemini-3-flash-preview, gemini-3.1-pro-preview, gemini-3.1-flash-lite-preview, gemini-3.1-flash-tts-preview, gemini-2.5-flash-lite
  • Gemini (Open Models): google/gemma-4-31B-it, google/gemma-3n-E4B-it, google/gemma-2-27b-it
  • Together AI (Llama): Llama-4-Scout/Maverick (with function calling), Llama-3.x series (generation only)
  • Together AI (Qwen): Qwen2.5-72B/14B/7B-Instruct, Qwen2.5-VL-72B, Qwen2.5-Coder-32B, Qwen2-VL-72B, QwQ-32B, Qwen3-235B series, Qwen3-Coder-480B, Qwen3-Coder-Next, Qwen3-Next-80B, Qwen3-VL-32B/8B, Qwen3.5-397B/9B, Qwen3.6-Plus (with function calling)
  • Together AI (DeepSeek): DeepSeek-R1, DeepSeek-R1-0528, DeepSeek-R1-Distill-Llama-70B, DeepSeek-R1-Distill-Qwen-1.5B/14B, DeepSeek-V3-0324, DeepSeek-V3.1, DeepSeek-V4-Pro, deepseek-coder-33b-instruct (with function calling)
  • Together AI (Kimi/Moonshot): Kimi-K2-Instruct, Kimi-K2-Instruct-0905, Kimi-K2-Thinking, Kimi-K2.5, Kimi-K2.6
  • Together AI (Mistral): Ministral-3-14B, Mistral-7B-v0.1/v0.2/v0.3, Mistral-Small-24B, Mixtral-8x7B
  • Together AI (Z.AI): GLM-5, GLM-5.1, GLM-4.5-Air, GLM-4.6, GLM-4.7
  • Together AI (MiniMax): MiniMax-M2.5, MiniMax-M2.7, minimax-m2.5-lightning
  • Together AI (DeepCogito): cogito-v1-preview (llama-70B/8B, qwen-14B/32B), cogito-v2-1-671b
  • Together AI (NVIDIA): Llama-3.1-Nemotron-70B, Nemotron-Nano-9B-v2
  • Together AI (Other): arcee-ai/trinity-mini, essentialai/rnj-1-instruct
  • OpenRouter: Access to 338+ models from 55+ providers via unified API:
    • OpenAI (gpt-3.5-turbo through gpt-5.5, codex variants, o1/o3/o4-mini, gpt-oss, gpt-audio)
    • Anthropic (claude-3-haiku through claude-opus-4.7 with 1M context)
    • Google (gemini-2.0-flash through gemini-3.1-pro-preview, gemma-2/3/3n/4)
    • Meta Llama (llama-3-8b through llama-4-maverick/scout, llama-guard-3/4)
    • DeepSeek (deepseek-chat/v3/v3.1/v3.2/v3.2-speciale/v4-flash/v4-pro, deepseek-r1 variants)
    • Qwen (qwen-2.5 through qwen3.6, qwen3-coder variants, qwq-32b, qwen3-vl series)
    • Amazon Nova (nova-micro/lite/pro, nova-2-lite, nova-premier)
    • Cohere (command-r, command-r-plus, command-a, command-r7b)
    • X.AI Grok (grok-3/3-mini, grok-4/4-fast, grok-4.1-fast, grok-4.20/4.20-multi-agent, grok-code-fast-1)
    • MiniMax (minimax-01, minimax-m1, minimax-m2/m2.1/m2.5/m2.7/m2-her)
    • ByteDance Seed (seed-1.6, seed-1.6-flash, seed-2.0-lite, seed-2.0-mini)
    • MoonshotAI (kimi-k2, kimi-k2-thinking, kimi-k2.5, kimi-k2.6)
    • Mistral (codestral, devstral/devstral-medium/devstral-small, mistral-large/medium/small, mixtral series, ministral-3b/8b/14b, pixtral, voxtral)
    • NVIDIA (llama-3.1-nemotron-70b, llama-3.3-nemotron-super-49b, nemotron-nano-9b-v2/12b-v2-vl, nemotron-3-nano-30b/super-120b)
    • Z.AI/GLM (glm-4-32b through glm-5.1, glm-5v-turbo)
    • AllenAI (olmo-3-32b-think, olmo-3.1-32b-instruct)
    • Perplexity (sonar, sonar-pro, sonar-pro-search, sonar-deep-research, sonar-reasoning-pro)
    • NousResearch (hermes-2-pro, hermes-3/4-llama series, hermes-4-70b/405b)
    • Baidu ERNIE (ernie-4.5 series including VL and thinking variants)
    • Xiaomi (mimo-v2-flash/omni/pro, mimo-v2.5/v2.5-pro)
    • Reka AI (reka-edge, reka-flash-3)
    • InclusionAI (ling-2.6-flash)
    • Arcee AI (coder-large, maestro-reasoning, spotlight, trinity-large-preview/thinking, trinity-mini, virtuoso-large)
    • And 25+ more providers (ai21, aion-labs, alfredpros, alibaba, alpindale, anthracite-org, bytedance, deepcogito, essentialai, gryphe, ibm-granite, inception, inflection, kwaipilot, liquid, mancer, morph, nex-agi, prime-intellect, relace, sao10k, stepfun, switchpoint, tencent, thedrummer, tngtech, upstage, writer, etc.)
    • Dynamic latest-model aliases: ~anthropic/claude-{haiku,sonnet,opus}-latest, ~google/gemini-{flash,pro}-latest, ~moonshotai/kimi-latest, ~openai/gpt-{latest,mini-latest}

Embedding Models (for RAG and semantic search):

  • OpenAI: text-embedding-3-small, text-embedding-3-large, text-embedding-ada-002
  • Google: text-embedding-004, gemini-embedding-001, gemini-embedding-2, gemini-embedding-2-preview
  • Together AI: BAAI/bge-base-en-v1.5, intfloat/multilingual-e5-large-instruct

Each model in MODEL_INFO includes capability flags:

  • is_function_calling_supported: Whether the model reliably supports tool/function calling
  • is_generation_supported: Whether the model supports text generation
  • is_embedding_supported: Whether the model is an embedding model

🤗 Contributing

Contributions in the form of issues are welcome! KISS Sorcar should be able to take care of them.

📄 License

Apache-2.0

📚 Citation

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}
}

✍️ Authors

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kiss_agent_framework-2026.4.29.tar.gz (51.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kiss_agent_framework-2026.4.29-py3-none-any.whl (2.3 MB view details)

Uploaded Python 3

File details

Details for the file kiss_agent_framework-2026.4.29.tar.gz.

File metadata

  • Download URL: kiss_agent_framework-2026.4.29.tar.gz
  • Upload date:
  • Size: 51.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for kiss_agent_framework-2026.4.29.tar.gz
Algorithm Hash digest
SHA256 640caa643853c977944687cad439976b4e026e64cdbb63c35556217d6d6ac0ee
MD5 0e08a6bec6eb3d52106a7d85b70276e7
BLAKE2b-256 26aceaa6128ca695692cd29b91e9a93f93161c1839faed70ab48bea4318bec61

See more details on using hashes here.

File details

Details for the file kiss_agent_framework-2026.4.29-py3-none-any.whl.

File metadata

  • Download URL: kiss_agent_framework-2026.4.29-py3-none-any.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for kiss_agent_framework-2026.4.29-py3-none-any.whl
Algorithm Hash digest
SHA256 0c6db22265465830a08aecfd8455bd8b0947a0b3b01b20f1f917fc6100797bb2
MD5 ad64636b6794f4a61383feba8ce8753d
BLAKE2b-256 ccd53056af795b565855b03e451a1996438742ed9307bc5c1b941802d71c0318

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page