Skip to main content

Minimal coding agent

Project description

Kon

Python Version License

Kon is a minimal coding agent that just works.

It has a tiny harness: about 215 tokens for the system prompt and around 600 tokens for tool definitions – so under 1k tokens before conversation context.

At the time of writing this README (22 Feb 2026), this repo has 108 files and is easy to understand in a weekend. Here’s a rough file-count comparison against a couple of popular OSS coding agents:

Others are of course more mature, support more models, include broader test coverage, and cover more surfaces. But if you want a truly minimal coding agent with batteries included – something you can understand, fork, and extend quickly – Kon might be interesting.

$ fd . | cut -d/ -f1 | sort | uniq -c | sort -rn
4107 opencode
 740 pi-mono
 108 kon

[!NOTE] There are no plans to support MCP servers (use skills). Support for sub-agents will be added soon (mainly to test if local LLMs can make for good search agents).

Setup

Warning

[!WARNING] Platform support: macOS and Linux are supported; Windows is not tested yet.

Prerequisites

Python 3.12+ and uv.

Install (recommended)

uv tool install kon-coding-agent

This installs kon globally as a CLI tool.

Install from source (advanced)

git clone <repository-url>
cd kon
uv tool install .

Run

kon

CLI options:

usage: kon [-h] [--model MODEL]
           [--provider {github-copilot,openai,openai-codex,openai-responses,zhipu}]
           [--api-key API_KEY] [--base-url BASE_URL] [--continue]
           [--resume RESUME_SESSION]

Kon TUI

options:
  -h, --help            show this help message and exit
  --model, -m MODEL     Model to use
  --provider, -p {github-copilot,openai,openai-codex,openai-responses,zhipu}
                        Provider to use
  --api-key, -k API_KEY
                        API key
  --base-url, -u BASE_URL
                        Base URL for API
  --continue, -c        Resume the most recent session
  --resume, -r RESUME_SESSION
                        Resume a specific session by ID (full or unique
                        prefix)

Tool binaries

  • fd – required for fast file discovery; Kon auto-downloads it only if it's missing.
  • ripgrep (rg) – required for fast content search; Kon auto-downloads it only if it's missing.
  • eza (optional) – supports .gitignore-aware listings and usually emits fewer tokens than ls.

OAuth and API keys

  • GitHub Copilot OAuth: run /login and choose GitHub Copilot.
  • OpenAI OAuth (Codex): run /login and choose OpenAI. Kon supports callback flow plus manual paste fallback.
  • OpenAI-compatible providers (for example ZhiPu): set an API key via environment variable (OPENAI_API_KEY or ZAI_API_KEY).

Features

Tools

Tool Purpose
read Read file contents (pagination for large files, image support)
edit Surgical find-and-replace edits
write Create or overwrite files
bash Execute shell commands
grep Search file contents with regex
find Find files by glob pattern

Slash commands

Type / at the start of input to see available commands.

Command Description
/new Start a new conversation and reload project context/skills
/resume Browse and restore a saved session
/model Switch model via interactive picker
/session Show session metadata and token stats
/compact Compact the current conversation immediately
/export Export current session to HTML
/copy Copy last assistant response to clipboard
/login Authenticate with a provider
/logout Log out from a provider
/clear Clear current conversation
/help Show commands and keybindings
/quit (/exit, /q) Quit Kon

@ file and folder search

Type @ + query to fuzzy-search files/folders in the current project and insert paths into your prompt.

Tab path autocomplete

Press Tab in the input box to complete paths (~, ./, ../, absolute paths, quoted paths, etc.).

Query queueing

If the agent is currently running, you can still submit more prompts. Kon queues them and runs them in order once the current task finishes (up to 5 queued prompts).

Sessions

Sessions are append-only JSONL files under ~/.kon/sessions/.

  • /resume to reopen past sessions
  • /session for message/token stats
  • /export for standalone HTML transcripts
  • --continue / -c to continue the most recent session from CLI

AGENTS.md

Kon loads project guidelines from AGENTS.md (or CLAUDE.md) files into the system prompt:

  1. Global: ~/.kon/AGENTS.md
  2. Ancestor directories from git root (or home) down to current working directory

Skills

Skills are reusable instruction packs loaded from:

  • Project: .kon/skills/
  • Global: ~/.kon/skills/

Each skill has a SKILL.md file with front matter:

---
name: my-skill
description: Brief description of what this skill does
---

# My Skill

Detailed instructions for the agent...

For skills with scripts, see Agent Skills Documentation.

Architecture

LLM Provider
    │
    │ StreamPart (TextPart, ThinkPart, ToolCallStart, ToolCallDelta, ...)
    ▼
Single Turn (turn.py)
    │
    │ StreamEvent (ThinkingStart/Delta/End, TextStart/Delta/End, ToolStart/End, ToolResult, ...)
    ▼
Agentic Loop (loop.py)
    │
    │ Event (AgentStart, TurnStart, TurnEnd, AgentEnd + all StreamEvents)
    ▼
UI (app.py)

Supported Models

Kon works well with local models exposed through an OpenAI-compatible /v1 API (for example LM Studio).

Example on LM Studio

To run a local model like zai-org/glm-4.7-flash from LM Studio:

  1. Start LM Studio's local server (http://127.0.0.1:1234).
  2. Load the model in LM Studio.
  3. Start Kon with the OpenAI Responses provider:
kon --provider openai-responses \
  --base-url http://127.0.0.1:1234/v1 \
  --model zai-org/glm-4.7-flash \
  --api-key ""

All Supported Providers

Model (local=*) Provider Thinking Vision
*zai-org/glm-4.7-flash OpenAI Responses Yes No
glm-4.7 ZhiPu (OpenAI Completions) Yes No
glm-5 ZhiPu (OpenAI Completions) Yes No
claude-sonnet-4.5 GitHub Copilot Yes Yes
claude-opus-4.5 GitHub Copilot Yes Yes
claude-sonnet-4.6 GitHub Copilot Yes Yes
claude-opus-4.6 GitHub Copilot Yes Yes
gpt-5.3-codex GitHub Copilot Yes Yes
gpt-5.3-codex OpenAI Codex Resposes Yes Yes

Configuration

Config lives at ~/.kon/config.toml (auto-created on first run).

Most important knobs:

  • llm.default_provider
  • llm.default_model
  • llm.default_thinking_level
  • llm.system_prompt (you can fully override Kon’s system prompt here)
  • llm.tool_call_idle_timeout_seconds (fallback timeout for stalled tool-call streaming)
  • compaction.on_overflow, compaction.buffer_tokens, compaction.default_context_window

You can also theme the UI via [ui.colors] values.

Example:

[llm]
default_provider = "openai-codex"
default_model = "gpt-5.3-codex"
default_thinking_level = "high"
tool_call_idle_timeout_seconds = 10
system_prompt = """Your custom system prompt here"""

[compaction]
on_overflow = "continue"
buffer_tokens = 20000

Development setup

For hacking on Kon locally:

uv sync
uv run kon
uv run ruff format .
uv run pytest

Acknowledgements

  • Kon takes significant inspiration from pi-mono coding-agent, especially in terms of the overall philosophy and UI design.
    • Why not just use pi? Pi is no longer a small project, and I want to be in complete control of my coding agent.
    • I mostly agree with Mario (author of pi), but I have different beliefs on some matters - for example, subagents (especially useful for context gathering in larger repos when paired with semantic search tools).
    • Over time, I also want to give more preference to local LLMs I can run. glm-4.7-flash and qwen-3-coder-next look promising, so I may make decisions that do not necessarily optimize for SOTA paid models.
  • Kon also borrows ideas from Amp, Claude Code, and other coding agents.

LICENCE

MIT

Project details


Download files

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

Source Distribution

kon_coding_agent-0.1.0.tar.gz (204.3 kB view details)

Uploaded Source

Built Distribution

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

kon_coding_agent-0.1.0-py3-none-any.whl (118.2 kB view details)

Uploaded Python 3

File details

Details for the file kon_coding_agent-0.1.0.tar.gz.

File metadata

  • Download URL: kon_coding_agent-0.1.0.tar.gz
  • Upload date:
  • Size: 204.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for kon_coding_agent-0.1.0.tar.gz
Algorithm Hash digest
SHA256 108097311e3de5b7065dfdf2fe8564ce33c394074deed242ab360734aaa4e642
MD5 44be5622f94371dae23b9f49f99d59c3
BLAKE2b-256 077b39131e78d5a5dfb6e14a325bc542615dcd7baf68e09201da854311f3b239

See more details on using hashes here.

File details

Details for the file kon_coding_agent-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for kon_coding_agent-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d5b852ce6079b47c6a3036d18bc1486222b9c1921557e4f2f70024b7a2ce962f
MD5 d6e434bbf5bd97d0ac09426689401eac
BLAKE2b-256 703395a7678268ada3245f401ec32670ec981471251379f0816559d8ea4ef2df

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