Skip to main content

Minimal coding agent

Project description

Kon

PyPI 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

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.

Not supported

Some features you might expect in other coding agents are not part of Kon's design philosophy:

  • MCP servers – Use skills instead; they're simpler and give you full control
  • Sandbox environments – Kon runs directly on your machine for simplicity; use Docker or VMs if you need isolation
  • Checkpoint restores – Not currently supported; may be added in the future

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 from LM Studio:

# GLM-4.7-flash
kon --provider openai-responses \
  --base-url http://127.0.0.1:1234/v1 \
  --model zai-org/glm-4.7-flash \
  --api-key ""

# Qwen3-coder-next
kon --provider openai-responses \
  --base-url http://127.0.0.1:1234/v1 \
  --model qwen/qwen3-coder-next \
  --api-key ""

For detailed configuration and performance benchmarks, see LOCAL.md.

All Supported Providers

Model (local=*) Provider Thinking Vision
*zai-org/glm-4.7-flash OpenAI Responses Yes No
*qwen/qwen3-coder-next 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 Responses 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
  • agent.max_turns, agent.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 = 60
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.

LICENSE

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.2.1.tar.gz (208.6 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.2.1-py3-none-any.whl (120.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kon_coding_agent-0.2.1.tar.gz
  • Upload date:
  • Size: 208.6 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.2.1.tar.gz
Algorithm Hash digest
SHA256 c1c179a92b957dfba5b67cf0fbbabd5c101af9f2d3c15df11dfeee41f73b6804
MD5 26af9e6448de38dfc2101b3e746fdf3e
BLAKE2b-256 91d136d77bc26bd08d1f8d1347b05353875c788cbea0d8ec4d201c655e3b3d36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kon_coding_agent-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e79c1aacf5985ff0e61cd30dffb533acf0733ab4090fbe71741dc2d7091173e5
MD5 ed1f71e90c43d755bd0387cbe8559138
BLAKE2b-256 dc4d09b5cf5edb44d1080880916f26c31b556ce074ef3d673380764c97f03614

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