KISS Sorcar: Complete Feature Inventory

Version 2026.9.18 · repository /home/ksen/kiss (4,496 commits) · task database ~/.kiss/sorcar.db · compiled 2026-09-20

This report enumerates everything KISS Sorcar can do. Every item was checked against the source tree, not only the README: the tool functions registered in src/kiss/agents/sorcar/sorcar_agent.py, the daemon command handlers in src/kiss/server/, the browser client in src/kiss/agents/vscode/media/, the 43 channel-agent modules, the CLI entry points in pyproject.toml, and the system prompt in src/kiss/SYSTEM.md. The last section turns to the recorded trajectories in sorcar.db to show which of these capabilities are actually used and how hard they have been pushed.

1. At a glance

665models in the bundled catalog, 9 provider categories
43third-party agents (32 messaging, 9 service, 2 infrastructure)
50CLI entry points in pyproject.toml
~40built-in agent tools (plus per-channel, MCP and skill tools)
6prompt surfaces: VS Code, web/mobile, Python API, terminal, chat channels, OpenAI/A2A endpoints
1,228Python test files, 8,669 test functions, plus a JS test suite for the extension
24,063task rows in sorcar.db (5,648 top-level, 18,415 sub-agent)
$52.8Krecorded model spend across 35.3 billion tokens and 321K steps

2. Architecture

One local daemon, kiss-web, hosts every agent and serves every client. The agent is a five-layer class stack; each layer adds one concern. Lines of code below are from wc -l on 2026-09-20.

VS Code extensionTypeScript, webview Web / mobile appcloudflared tunnel Python APIkiss.server.sorcar.run Chat channelsTelegram, Slack, email… OpenAI-compat / A2Akiss-oai, kiss-a2a Voicewake word "Sorcar" kiss-web daemon (src/kiss/server, 30,138 LoC) Unix-socket JSON protocol · WebSocket web server · tab registry (mirrored tabs) · task runner & stop machinery autocomplete (ghost text, @paths) · merge flow · Explorer/SCM providers · voice wake control · talk player · cron scheduler thread SEA loader · tools-file loader · stall watchdog · update checker · remote password + cloudflared tunnel WorktreeSorcarAgent (1,916): git worktree per task, auto-commit, merge / discard / leave-as-is ChatSorcarAgent (727): chat history & digest, sorcar.db persistence, stop/steer SorcarAgent (3,333): tools, browser, run_parallel, run_agent, memory, classifier, talk RelentlessAgent (1,605): auto-continuation across context exhaustion, usage ledger KISSAgent (1,201): native function calling, budget/step/context limits, retries, fallback Model adapters (src/kiss/core/models) Anthropic · OpenAI-compatible (2 generations) Gemini · Claude Code CLI · Codex CLI Decisions (Jev) · MODEL_INFO.json (665) Side systems memoryfield (vector index of Markdown pages) Playwright browser · Docker manager MCP client · skills · Muse-auth vault daemon 43 channel agents (SEAs) · cron agent · MCP servers · skills · user tools files · custom SEAs
Figure 1. Every surface talks to one daemon; the daemon builds an agent from the five-layer stack and gives it tools. Channel agents and the cron agent are themselves Sorcar Extension Agents dispatched by the run_agent tool.

3. Interfaces and prompt surfaces

SurfaceWhat it doesWhere
VS Code extensionSidebar chat or editor-tab chats (kissSorcar.editorTabsMode); commands: open panel, new conversation, open settings, stop task, generate commit message, git commit, toggle focus, run selection, insert selection to chat, show history. Auto-starts the daemon; installs its own dependencies (DependencyInstaller.ts); update checker with snooze; macOS launchd integration.src/kiss/agents/vscode/
Web / mobile appThe same chat UI served by the daemon over WebSocket; optional cloudflared tunnel plus password (remote_password); desktop mode adds a Task Info sidebar (tokens, cost, steps, elapsed, machine, work dir, budget, live tmp/PROGRESS.md); activity bar with Explorer, Source Control and Tasks views.src/kiss/server/web_server.py (9,259 LoC)
Python client APIkiss.server.sorcar.run(prompt, …) blocks until a daemon task finishes and returns TaskResult (text, success, cost, tokens, steps, chat_id). Options: model, work_dir, scope_work_dir, chat_id, use_worktree, auto_commit, max_budget, model_config, use_web_tools, classify_tasks, use_memory, is_parallel, timeout, stop_on_timeout, sock_path, parent_task_id/parent_tab_id, tools file, system_prompt, append_to_system_prompt, append_to_prompt, append_basic_tools, extension_agent_path.src/kiss/server/sorcar.py, daemon_client.py
sorcar terminal commandRuns a SorcarAgent in the current directory without the daemon: sorcar -t "task" or sorcar -f task.txt; flags for model, budget, work dir; answers ask_user_question in the terminal.sorcar_agent.py:main
kiss-web daemon CLIkiss-web, --workdir DIR, --url (print the tunnel URL).web_server.py:main
Chat channels as inbound surfacesGateway mode: a poll tick drains new messages from Telegram, Slack, Discord, email, WhatsApp, … and runs each as a task; thread continuity, delivery ledger, per-channel model/budget, --allow-users, pairing handshake (--pairing, --approve, --list-pending).third_party_agents/_channel_cli.py
OpenAI-compatible serverkiss-oai exposes the daemon behind an OpenAI chat API so Open WebUI, LibreChat or an openai SDK script become chat surfaces.openai_compat_agent.py
A2A agentkiss-a2a publishes an agent card at /.well-known/agent-card.json, accepts JSON-RPC message/send and tasks/get, and can call peer agents outbound.a2a_agent.py
VoiceWake word "Sorcar" via the mic button, speech-to-text, spoken replies through talk; also steers a running task.server/voice_wake*.py, media/voice.js
Per-channel CLIskiss-slack, kiss-gmail, kiss-whatsapp, kiss-telegram, … 41 channel commands plus kiss-cron, kiss-web, sorcar, check, generate-api-docs, swedefend-eval.pyproject.toml [project.scripts]

4. Agent runtime

KISSAgent (src/kiss/core/kiss_agent.py)

RelentlessAgent (relentless_agent.py)

SorcarAgent (sorcar_agent.py)

ChatSorcarAgent and WorktreeSorcarAgent

5. Built-in tools

Tools the model can call in a standard run, grouped by concern. Names are the exact function names registered in SorcarAgent._get_tools.

GroupToolsNotes
Files and shellBash, Read, Write, Edit, run_commands_parallelBash has per-call timeouts and output caps; parent-repo path guard rewrites paths into the active worktree; run_commands_parallel runs shell commands in threads with no LLM.
Browsergo_to_url, click, type_text, press_key, scroll, screenshot, get_page_content, show_browser, close_browserPlaywright Chromium, headless by default, numbered accessibility tree, persistent profile, watchdog kill of stuck processes; show_browser makes the window visible for user login.
Delegationrun_parallel(tasks, max_workers, model_name, tool_profile), number_of_cores, run_agent(agent, task, model_name, max_budget, timeout, workspace)run_parallel spawns LLM sub-agents (nesting capped at 2); run_agent dispatches a channel agent, cron, or any agent-script .py file.
Decisionsdecide(state, questions)Typed noul/choice/score questions answered by OpenRouter's decisions model (Jev) with calibrated probabilities; present only when an OpenRouter key exists.
Memorymemory_search, memory_pull, memory_read, memory_write, memory_list, memory_refresh, memory_deleteSection 9.
User interactionask_user_question, talk(language, text, emotion)Question modal in every client; spoken answer synthesized server-side.
Controlset_model, summary, finish(success, is_continue, summary_in_html, suggested_next_task)set_model swaps the model mid-run and carries the conversation over; summary collapses the last ten steps in the UI.
Skills and MCPskill(name), <server>_<tool>skill appears only when user or project skills exist; MCP tools are generated from each server's schema.
Channel tools (dispatched runs)e.g. check_slack_auth, authenticate_slack, post_message, read_messages, list_messages, send_whatsapp_message, gdrive_upload_file, github_search_repositories, cron_jobAdded when the run is a channel or cron agent.

6. Models and multi-model routing

7. Chat client features

Verified against element ids in media/chat.html and message types in media/main.js.

8. Voice

9. Persistent memory (memoryfield)

10. Task classifier

11. Git integration and worktrees

12. Scheduled automations

13. Third-party agents and credential isolation

43 modules in src/kiss/agents/third_party_agents/, each a Sorcar Extension Agent whose tools() returns auth tools plus the backend's public methods once authenticated. Configuration lives under ~/.kiss/third_party_agents/<service>/; authentication happens by chatting.

KindAgents
Messaging and device channels (32)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
Service APIs (9)Brave Search, Firecrawl, GitHub, Google Calendar, Google Docs, Google Drive, Google Sheets, Notion, PostgreSQL
Infrastructure (2)A2A protocol agent, OpenAI-compatible server
Extragovee.py smart-light CLI (on/off, brightness, color, color temperature)

14. Extension points: MCP, skills, SEAs

15. Persistence, accounting, observability

16. Installation, deployment, operations

17. Long-horizon research drivers and benchmarks

The system prompt contains procedures that turn one chat message into a multi-hour autonomous loop:

18. Developer tooling and tests

19. What the trajectories show

The task database records every task run on this machine and on machines whose databases were synced into it (71 distinct work directories; the main checkout accounts for 5,332 of the 5,648 top-level tasks). Rows before April 2026 are legacy imports; the six months from April to September 2026 hold the working history.

5,648top-level tasks · 18,415 sub-agent rows · 2,845 chats
8.30 Mpersisted events (5.0 M thinking deltas, 488K tool calls, 467K tool results)
235top-level tasks longer than one hour; 23 with 1,000+ steps; 39 costing $100+
8,056steps in the longest task ($762, a repo-wide race-condition audit); costliest task $845 with 687 M tokens
Tool calls recorded in sorcar.db (bar length on a square-root scale) Bash229,056 Read146,700 Edit39,306 summary22,116 finish17,329 go_to_url8,673 Write8,051 set_model4,174 run_parallel3,969 memory_search1,456 (memory_pull 755, memory_write 499, memory_read 182) screenshot592 click468 (type_text 140, press_key 132, scroll 114, get_page_content 177) ask_user_question336 talk253 run_agent209 (channel tools such as list_messages 108, check_gmail_auth 12, cron_job 17) run_commands_parallel78 (added 2026-09) decide59 (added 2026-09) Colors: blue files/shell · green browser · orange delegation and model switching · purple memory and decisions · grey control and interaction
Figure 2. 487,656 tool calls. Shell and file tools dominate, as expected for a coding agent; set_model (4,174) and run_parallel (3,969) show that multi-model, multi-agent work is routine rather than exceptional. The 1,524 code_graph calls belong to a tool that no longer exists.
Top-level tasks per month, 2026 513Apr 1,807May 888Jun 883Jul 843Aug 712Sep (to 20th)
Figure 3. Sustained daily use since April 2026: about 30 top-level tasks per day, each often fanning out into several sub-agents (3.3 sub-agent rows per top-level task on average).

Models actually used

ModelTask rowsModelTask rows
gpt-5.6-sol7,871claude-opus-5505
claude-fable-57,317claude-opus-4-8388
gpt-5.6-sol-xhigh2,972gpt-5.5159
claude-opus-4-72,615claude-sonnet-4-552
claude-opus-4-61,098codex/gpt-5.5 · cc/opus43 · 37
claude-fable-5-1751openrouter/moonshotai/kimi-k3 · gpt-6-astra(-high)22 · 44

The split is the builder/reviewer pattern from the tricks: Anthropic models build, OpenAI gpt-5.6-sol reviews in read-only sub-agents. Thirteen further models appear in small numbers, including Gemini, Kimi, Sonnet, Haiku and the CLI-backed cc/* and codex/* namespaces.

Kinds of work recorded

Keyword counts over the 5,648 top-level task texts (a task can fall in several rows):

Kind of taskTasksExamples from the history
Software changes (fix, bug, implement, refactor, add)1,924"Extend Muse-auth to the remaining credentialed connectors…" (2,289 steps); "major refactoring of the project to significantly simplify the implementation" (2,281 steps)
Testing1,303"run all tests… split by the number of test methods into cores − 2 and run all splits in parallel" (a frequent task, up to 3,519 steps)
Code review and audits924"Find all race conditions, deadlocks, obvious bugs, missing wiring, redundancies…" (8,056 steps, $762); 8 automatic "Verify the listed changes" reviewer sub-tasks
Web research631trip planning to Yosemite with hotel availability, product comparisons, market reads, STT-for-Indian-languages survey
Git operations632"git push origin", "get rid of the last commit to main", "checkout main", merge-conflict help
Reports40472 HTML reports in reports/: audits, optimization reports, architecture notes, comparisons
Papers and LaTeX400KISS Sorcar, SE KISS Sorcar, SorcarCCL, SweDefend, HydraKV papers; ICSE/ACL/OpenReview reviews
Deployment and remote machines320rsorcar deploys, VS Code server checks, disk-space remediation
Messaging (Slack, Gmail, WhatsApp, Telegram, iMessage, SMS, email, Discord)171Slack workspace authentication, Gmail checks, WhatsApp pairing, SMS sends, Slack gateway pollers
Shopping, travel, price comparison123non-stick cookware comparison, Yosemite trip, due-diligence research
Benchmarking and optimization120xxHash, SQLite, LZ4, DuckDB and TPC-H optimization runs; Terminal-Bench and SWE-bench jobs
Voice tasks ("Speaker #N says…")114spoken questions and steering through the wake word
Blog posts, LinkedIn posts, slides94SQLite and LZ4 optimization blogs, lecture PPTX and one-slide decks
Unattended cron jobs42VS Code release watcher with spoken notification; Slack gateway ticks
Docker40code-server container launches, Docker-isolated tool runs
Home devices (lights, Govee, Home Assistant)25Govee light control

20. Caveats and gaps

Sources: README.md, src/kiss/SYSTEM.md, src/kiss/SYSTEM_LITE.md, src/kiss/TIPS.md, src/kiss/INJECTIONS.md, src/kiss/SAMPLE_TASKS.md, RECIPES.md, pyproject.toml, src/kiss/core/*, src/kiss/agents/sorcar/*, src/kiss/server/*, src/kiss/agents/third_party_agents/README.md, connectors/README.md, src/kiss/agents/vscode/{package.json,media/chat.html,media/main.js}, benchmarkings/, papers/kisssorcar/kiss_sorcar.tex, install.sh, rsorcar, sorcar-docker, and SQL queries against ~/.kiss/sorcar.db on 2026-09-20.