Klyro is AI pair programming in your terminal
Project description
██╗ ██╗██╗ ██╗ ██╗██████╗ ██████╗
██║ ██╔╝██║ ╚██╗ ██╔╝██╔══██╗██╔═══██╗
█████╔╝ ██║ ╚████╔╝ ██████╔╝██║ ██║
██╔═██╗ ██║ ╚██╔╝ ██╔══██╗██║ ██║
██║ ██╗███████╗██║ ██║ ██║╚██████╔╝
╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝
AI pair programming in your terminal.
Klyro talks to your code. You talk to Klyro.
Works with GPT-4o, Claude, Gemini, DeepSeek, Ollama, Grok, Groq, Mistral — and 100+ more.
Quick Start · Features · Models · Commands · Config · Changelog
⚡ Quick Start
pip install klyro
# Run with your API key set
klyro
# Or specify a model directly
klyro --model gpt-4o
klyro --model ollama/llama3.2
klyro --model gemini/gemini-2.5-flash
Windows: If
klyrois not recognized, either runpython -m klyroor add your Scripts folder to PATH:python -c "import sysconfig; print(sysconfig.get_path('scripts', 'nt_user'))"
Install from source:
git clone https://github.com/RavindraTirlangi/Klyro.git
cd Klyro
pip install -e .
✨ Features
🧠 Supported Models
Switch models inside Klyro using /model <alias>:
| Provider | Alias | Model |
|---|---|---|
| Anthropic | claude / sonnet | claude-sonnet-4-6 ⭐ latest |
opus | claude-opus-4-7 — most capable | |
haiku | claude-haiku-4-5 — fastest | |
| OpenAI | 4o | gpt-4o ⭐ recommended |
4o-mini | gpt-4o-mini — cheapest | |
o1 / o3-mini | reasoning models | |
gemini | gemini-2.5-pro ⭐ recommended | |
flash | gemini-2.5-flash — fast & cheap | |
flash-lite | gemini-2.5-flash-lite | |
| DeepSeek | deepseek | deepseek-chat (v3) |
r1 | deepseek-reasoner — best reasoning | |
| Mistral | mistral | mistral-large-latest |
codestral | codestral-latest — code specialist | |
pixtral | pixtral-large — vision | |
| Ollama (local) | llama / llama3.2 | ollama/llama3.2 — no API key |
qwen | ollama/qwen2.5-coder | |
phi4 | ollama/phi4 | |
devstral | ollama/devstral — code expert | |
| xAI | grok / grok3 | xai/grok-3-beta |
grok3-mini | xai/grok-3-mini-beta | |
| Groq | groq-llama | llama-3.3-70b-versatile — ultra-fast |
groq-mixtral | mixtral-8x7b-32768 | |
groq-gemma | gemma2-9b-it | |
| OpenRouter (free) | llama-free | llama-3.1-8b-instruct:free |
deepseek-free | deepseek-r1-0528:free | |
gemma-free | gemma-3-27b-it:free | |
qwen-free | qwen3-235b-a22b:free | |
| AWS Bedrock | bedrock-claude | anthropic.claude-3-5-sonnet-v2 |
| Azure OpenAI | azure-gpt4o | azure/gpt-4o |
| Cohere | command | cohere/command-r-plus |
Run
/model listinside Klyro to see all 90+ aliases.
💬 Slash Commands
Klyro provides 43 built-in slash commands to manage your files, models, git repository, and session:
📁 File & Context Management
| Command | Description |
|---|---|
/add <file> |
Add one or more files to the chat context so the AI can read and edit them |
/drop <file> |
Remove files from the active chat context to free up tokens |
/read-only <file> |
Add files as read-only (AI can reference them but won't modify them) |
/ls |
List all files in your project and indicate which are added to the chat |
/clear |
Clear the conversation history to start fresh |
/reset |
Drop all files and clear chat history to start completely fresh |
/tokens |
Report token counts and how much context window is left |
/diff |
Show a diff of all local changes made in the active session |
/map |
Print out the current repository map (symbols, functions, files structure) |
/map-refresh |
Force a manual refresh of the repository map |
/context |
Enter context mode to view surrounding code context |
🛠️ Coding, Testing & Shell
| Command | Description |
|---|---|
/code [prompt] |
Switch to code editing mode (or run a one-off code edit prompt) |
/ask [prompt] |
Switch to question/explain mode (or ask a one-off question without editing files) |
/architect [prompt] |
Switch to planning mode to design changes using two different models |
/chat-mode <mode> |
Switch the active chat mode (code, ask, architect, or context) |
/ok |
Shortcut for /code Ok, please go ahead and make those changes. |
/run <cmd> |
Run a shell command and optionally add its output to the chat |
/test <cmd> |
Run a test command and feed any errors/failures back to the AI for fixes |
/lint |
Run linter/fixer on all in-chat or dirty files |
/editor |
Open your configured external terminal editor (like vim or nano) to write a prompt |
🧠 Model Configuration
| Command | Description |
|---|---|
/model <name> |
Switch the main LLM mid-session — run /model list to browse all 90+ aliases |
/models <query> |
Search for supported models matching a query string |
/editor-model <name> |
Switch the model used specifically for writing file edits |
/weak-model <name> |
Switch the model used for minor background tasks (e.g. summaries) |
/reasoning-effort <l/m/h> |
Set the reasoning depth (low, medium, high) for reasoning models |
/think-tokens <limit> |
Set the maximum thinking token budget for reasoning models (0 to disable) |
🐙 Git Integration
| Command | Description |
|---|---|
/git <command> |
Run any git command directly from the session |
/commit [message] |
Commit any unsaved edits made outside of Klyro |
/undo |
Undo/revert the last git commit made by Klyro |
🎙️ Session & Input Helpers
| Command | Description |
|---|---|
/multiline-mode |
Toggle multiline mode (swaps Enter and Alt+Enter behavior) |
/paste |
Paste text or clipboard images into the chat session |
/copy |
Copy the last assistant response to your clipboard |
/copy-context |
Copy the entire active chat context as Markdown |
/voice |
Speak your prompt using your microphone (dictation) |
/web <url> |
Scrape a webpage, convert it to Markdown, and add it to the chat |
/export [file] |
Export your full chat session history to a Markdown file |
/stats |
Show model details, last message cost, and total session cost |
/help <question> |
Ask interactive help questions about using Klyro |
/settings |
Print out all active settings and config parameters |
/load <file> |
Load and execute a list of Klyro commands from a text file |
/save <file> |
Save active files list as a set of /add commands to reconstruct session |
/report |
Report a problem by opening a GitHub Issue |
/exit |
Exit the Klyro application |
⌨️ Keyboard Shortcuts
Klyro provides Emacs-style keybindings for prompt editing and history navigation:
Prompt Editing & Navigation
Ctrl + A: Move cursor to the start of the line.Ctrl + E: Move cursor to the end of the line.Ctrl + B: Move cursor back one character.Ctrl + F: Move cursor forward one character.Ctrl + D: Delete the character under the cursor.Ctrl + K: Cut/delete from the cursor to the end of the line.Ctrl + Y: Paste (yank) text that was previously cut.Ctrl + L: Clear the terminal screen.
History Navigation
Ctrl + R: Search backwards through your sent message history.Ctrl + P/Ctrl + Up: Scroll back to previous history entries.Ctrl + N/Ctrl + Down: Scroll forward to next history entries.Up Arrow: Move cursor up one line inside a multiline message.Down Arrow: Move cursor down one line inside a multiline message.
Multiline & Cancellation
Alt + Enter(orCtrl + J) : Submit message in multiline mode.{on a line by itself : Start a bracket-based multiline prompt.}on a line by itself : Submit a bracket-based multiline prompt.Ctrl + C: Abort the current prompt or cancel an interactive question (returns to prompt).
⚙️ Configuration
Create .klyro.conf.yml in your project root:
model: ollama/llama3.2 # default model
dark-mode: true
auto-commits: true
Or use environment variables:
# Cloud providers
export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-ant-...
export GEMINI_API_KEY=...
export DEEPSEEK_API_KEY=...
export MISTRAL_API_KEY=...
export XAI_API_KEY=...
export GROQ_API_KEY=...
export OPENROUTER_API_KEY=sk-or-...
# Local
export OLLAMA_API_BASE=http://localhost:11434
📦 Release
Tagged releases automatically publish to PyPI via GitHub Actions:
git tag v1.0.3
git push origin v1.0.3
See CHANGELOG.md for full version history.
📄 License
Apache License 2.0 — see LICENSE for details.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file klyro-1.0.5.tar.gz.
File metadata
- Download URL: klyro-1.0.5.tar.gz
- Upload date:
- Size: 1.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dca15e9f358a7b356e680b8cfe8a19cca04149d02c807df82efffd0b096ce461
|
|
| MD5 |
82bf313c69db30b5dc0907a56d738e6c
|
|
| BLAKE2b-256 |
8a7ce695c62d11c3cb2b507c2f2dd905dd6745da70d166e8a19c5cb0a02e7f05
|
Provenance
The following attestation bundles were made for klyro-1.0.5.tar.gz:
Publisher:
publish.yml on RavindraTirlangi/Klyro
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
klyro-1.0.5.tar.gz -
Subject digest:
dca15e9f358a7b356e680b8cfe8a19cca04149d02c807df82efffd0b096ce461 - Sigstore transparency entry: 2112646725
- Sigstore integration time:
-
Permalink:
RavindraTirlangi/Klyro@b080eff1885928b7d334bb389421f0d0811bf867 -
Branch / Tag:
refs/tags/v1.0.5 - Owner: https://github.com/RavindraTirlangi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b080eff1885928b7d334bb389421f0d0811bf867 -
Trigger Event:
push
-
Statement type:
File details
Details for the file klyro-1.0.5-py3-none-any.whl.
File metadata
- Download URL: klyro-1.0.5-py3-none-any.whl
- Upload date:
- Size: 391.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd75a9bec7895ccab3bf0924da7a5de796a268b0f5150739654db1e130f5f06e
|
|
| MD5 |
e0b10721821ad6ccf3d38168c8c02240
|
|
| BLAKE2b-256 |
9bfb7e6eeac094a1f09c9e200f4ac48c7f5c4240eff1c4c40a6711dd91424e3f
|
Provenance
The following attestation bundles were made for klyro-1.0.5-py3-none-any.whl:
Publisher:
publish.yml on RavindraTirlangi/Klyro
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
klyro-1.0.5-py3-none-any.whl -
Subject digest:
dd75a9bec7895ccab3bf0924da7a5de796a268b0f5150739654db1e130f5f06e - Sigstore transparency entry: 2112646795
- Sigstore integration time:
-
Permalink:
RavindraTirlangi/Klyro@b080eff1885928b7d334bb389421f0d0811bf867 -
Branch / Tag:
refs/tags/v1.0.5 - Owner: https://github.com/RavindraTirlangi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b080eff1885928b7d334bb389421f0d0811bf867 -
Trigger Event:
push
-
Statement type: