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.2.2.tar.gz
(290.1 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.2.2-py3-none-any.whl
(102.5 kB
view details)
File details
Details for the file pana-0.2.2.tar.gz.
File metadata
- Download URL: pana-0.2.2.tar.gz
- Upload date:
- Size: 290.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e79095170118e02401c27ca8abc18b199b9685994fe714798671594810ed857c
|
|
| MD5 |
465a12ebf176e664fe44d6b5bac93647
|
|
| BLAKE2b-256 |
0d30fc666ea172dfdb45d54db433125efacc1497e924d24153f75c139a95d992
|
File details
Details for the file pana-0.2.2-py3-none-any.whl.
File metadata
- Download URL: pana-0.2.2-py3-none-any.whl
- Upload date:
- Size: 102.5 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 |
eacdd7de9e560325082049d71f9488adf5712d8eaadb2ecb882f760ae0df631e
|
|
| MD5 |
3f5cf5a772d86c5b3c1c8688fb407ef3
|
|
| BLAKE2b-256 |
e91940c69a79a20146658d1005d77dd7fa39a858fb42756665eb10039bd192b4
|