{"id":49534485,"url":"https://github.com/kittlabsai/kittycode","last_synced_at":"2026-05-02T09:05:34.932Z","repository":{"id":349492255,"uuid":"1201834262","full_name":"KittLabsAI/KittyCode","owner":"KittLabsAI","description":"A minimal, hackable AI coding agent with a composable tool loop and modular skills","archived":false,"fork":false,"pushed_at":"2026-04-30T02:59:22.000Z","size":483,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-01T17:32:43.824Z","etag":null,"topics":["agent","claude-code","codex","coding-agent","gemini-cli","openclaw"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KittLabsAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-05T08:21:35.000Z","updated_at":"2026-04-30T02:59:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/KittLabsAI/KittyCode","commit_stats":null,"previous_names":["yejiming/kittycode","kittlabsai/kittycode"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/KittLabsAI/KittyCode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KittLabsAI%2FKittyCode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KittLabsAI%2FKittyCode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KittLabsAI%2FKittyCode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KittLabsAI%2FKittyCode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KittLabsAI","download_url":"https://codeload.github.com/KittLabsAI/KittyCode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KittLabsAI%2FKittyCode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32528667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","claude-code","codex","coding-agent","gemini-cli","openclaw"],"created_at":"2026-05-02T09:05:23.038Z","updated_at":"2026-05-02T09:05:34.917Z","avatar_url":"https://github.com/KittLabsAI.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KittyCode - Hackable coding agent\n\nKittyCode is a minimal terminal coding agent focused on a compact, readable implementation. It keeps the core runtime straightforward, with an agent loop, local tools, context compression, a small command-line interface, and support for both OpenAI-compatible and Anthropic APIs.\n\n![KittyCode startup screenshot](docs/assets/kittycode-home.png)\n\n## Get Started\n\n1. Install KittyCode:\n\n```bash\npip install kittycode\n```\n\n2. Configure KittyCode with the guided setup:\n\n```bash\nkittycode --config\n```\n\nThis is the recommended way to create or repair `~/.kittycode/config.json`.\n\n3. Start the interactive terminal UI:\n\n```bash\nkittycode\n```\n\n## Background\n\nKittyCode is inspired by [NanoCoder](https://github.com/he-yufeng/NanoCoder) and keeps the same general idea of a small terminal coding agent while simplifying the project around the core runtime.\n\nKittyCode follows a simple terminal-agent runtime model:\n\n- A user message is sent through the configured model interface.\n- The model can either answer directly or call tools.\n- Tool calls are executed locally and the results are fed back into the conversation.\n- The loop continues until the model returns plain text.\n\nThe project is intentionally small. It includes the core agent runtime, a compact CLI, session persistence, context compression, and a default built-in tool set.\n\n## Features\n\n- Minimal agent loop with optional parallel execution for multiple tool calls.\n- LLM adapter that supports both OpenAI-compatible and Anthropic interfaces.\n- Core built-in tools for shell execution, file operations, web search, web fetch/crawling, TODO tracking, and sub-agents.\n- Interactive REPL and one-shot command mode, with `Esc` interrupt support.\n- Context compression to keep long sessions manageable.\n- Session save and resume support.\n\n## Requirements\n\n- Python 3.10 or newer\n- An API key for either an OpenAI-compatible endpoint or an Anthropic-compatible endpoint\n\n## Skills\n\nAt startup, KittyCode scans `~/.kittycode/skills` for skill folders. Each skill should live in its own directory and include a `SKILL.md` file at the top level.\n\nExpected layout:\n\n```text\n~/.kittycode/skills/\n\texample-skill/\n\t\tSKILL.md\n\t\tother-files...\n```\n\nKittyCode reads the leading `name` and `description` fields from each `SKILL.md`, keeps the resulting skill list in memory, and appends that list to each user turn inside a `\u003csystem-reminder\u003e` block. The reminder includes:\n\n- `name`\n- `description`\n- `path`\n\nThis allows the model to see which local skills are available and decide when to read and use them.\n\nKittyCode loads skills once at startup and keeps that snapshot fixed for the lifetime of the process. Restart KittyCode after adding or editing skills.\n\nYou can also invoke a loaded skill directly from the CLI with `/\u003cskill name\u003e`.\n\n- `/\u003cskill name\u003e` selects that skill for your next non-command message.\n- `/\u003cskill name\u003e \u003ctask\u003e` runs the next request immediately with that skill.\n\n## Usage\n\nRun the interactive terminal UI:\n\n```bash\nkittycode\n```\n\nWhen the CLI is busy, press `Esc` to interrupt the current run. The stop is cooperative: KittyCode cancels at the next safe checkpoint between LLM streaming, tool dispatch, and loop rounds. A blocking external call may still need to return before the run fully stops.\n\nYou can also use the module entry point:\n\n```bash\npython -m kittycode\n```\n\nRun a one-shot prompt and exit:\n\n```bash\nkittycode -p \"Explain the project structure\"\n```\n\nResume a saved session:\n\n```bash\nkittycode -r session_1234567890\n```\n\nRun the configuration wizard:\n\n```bash\nkittycode --config\n```\n\n## Interactive Commands\n\nInside the REPL, KittyCode supports:\n\n- `/help`\n- `/reset`\n- `/skills`\n- `/\u003cskill name\u003e`\n- `/model \u003cname\u003e`\n- `/tokens`\n- `/compact`\n- `/save`\n- `/sessions`\n- `/quit`\n\nThe `/skills` command prints the skills loaded at startup.\nSlash commands also support prefix matching while typing, so entering `/` shows matching commands and skills through completion suggestions.\n\n## Project Layout\n\n- `kittycode/__init__.py`: public exports and compatibility aliases for moved runtime modules\n- `kittycode/main.py`: CLI entrypoint wrapper\n- `kittycode/cli.py`: interactive and one-shot CLI\n- `kittycode/config/__init__.py`: config.json loading\n- `kittycode/llm/__init__.py`: provider adapter and streaming parsing\n- `kittycode/prompt/__init__.py`: system/user prompt builders\n- `kittycode/skills/__init__.py`: local skill discovery and caching\n- `kittycode/runtime/`: agent loop, context compression, interrupts, session helpers, and logging setup\n- `kittycode/tools/`: built-in tools\n- `tests/`: focused runtime and tool tests\n\n## Development\n\nRun the test suite:\n\n```bash\npython -m pytest -q\n```\n\nThe current test suite covers the exported API, config-file behavior, provider conversion helpers, context compression, session helpers, the default tool registry, and skill discovery/prompt injection.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkittlabsai%2Fkittycode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkittlabsai%2Fkittycode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkittlabsai%2Fkittycode/lists"}