A minimalist AI coding agent
Project description
██████ █████ ███▄ █ █████
██ ██ ██ ██ ████▄ ██ ██ ██
██████ ███████ ██ ▀█▄ ██ ███████
██ ██ ██ ██ ▀████ ██ ██
██ ██ ██ ██ ▀███ ██ ██
A minimalist AI coding agent built on pydantic-ai, featuring a custom terminal UI backported from the pi.dev coding agent.
Features
- pydantic-ai — Uses pydantic-ai as the LLM abstraction layer for streaming and tool use
- Custom TUI — Terminal UI backported from the PI coding agent, rendering directly with ANSI escape codes and truecolor
- GitHub Copilot integration via OAuth device flow
- Streaming responses with Markdown rendering and syntax highlighting
- Emacs-style keybindings with kill ring, undo/redo
- Slash commands —
/login,/model,/clear,/help,/quit
Installation
pip install pana
Usage
pana
Or run as a module:
python -m pana
Commands
| Command | Description |
|---|---|
/login |
Authenticate with a provider |
/model |
Select a model |
/new |
Start a new chat session |
/help |
Show available commands |
/quit |
Exit (also /exit, /q) |
Editor Keybindings
- Navigation: Arrow keys,
Ctrl+A/E(line start/end),Alt+B/F(word left/right) - Deletion:
Ctrl+W(word back),Alt+D(word forward),Ctrl+U/K(to line start/end) - Kill ring:
Ctrl+Y(yank),Alt+Y(yank pop) - Undo:
Ctrl+- - Submit:
Enter— New line:Shift+Enter - Autocomplete:
Tab
Environment Variables
| Variable | Default | Description |
|---|---|---|
PANA_LOG_LEVEL |
INFO |
Python logging level |
PANA_LOG_FILE |
(none) | Log to file instead of null handler |
Development
# Install with dev dependencies
uv sync --extra dev
# Run tests
uv run pytest
# Lint
uv run ruff check .
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
pana-0.3.0.tar.gz
(297.0 kB
view details)
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
pana-0.3.0-py3-none-any.whl
(106.0 kB
view details)
File details
Details for the file pana-0.3.0.tar.gz.
File metadata
- Download URL: pana-0.3.0.tar.gz
- Upload date:
- Size: 297.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7eb3b5d9966b594e9c636dc23a312b1eeec908527c5d250ac77d2141b88b87d0
|
|
| MD5 |
284b0cd1c1b1e9ac9310a30356773d33
|
|
| BLAKE2b-256 |
0665dc7823c998641ab7ee665a87732b6cbfb3d975d3ca3ca44f2f73d672a496
|
File details
Details for the file pana-0.3.0-py3-none-any.whl.
File metadata
- Download URL: pana-0.3.0-py3-none-any.whl
- Upload date:
- Size: 106.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80044d439510f4986819964935b1ced7d56bf55a4c082b4e223650bddeb486fb
|
|
| MD5 |
c218aa648e687d9dfab818fbbd47c73a
|
|
| BLAKE2b-256 |
469c9c3c35e1db3b4266aaab70678103da18b90ceb5dff186cab5b881df1ed2f
|