A command-line coding agent. It understands your project and can read, write, and run files and commands inside the working directory.
ืืื, ืืืืืจ ืืื ืืคืฉืจ ืืงืจืื ืื "ืืื" ;)
Notice: This project is under active development and constantly evolving.
- LLM chat with persisted history and the ability to resume previous sessions.
- Project tools: read, write, and edit files; search files and content; list directories.
- PowerShell execution inside the project directory.
- File and URL attachments added to the conversation via
#refreferences in the text. - Slash commands for managing models, API keys, and sessions.
- Two UIs: a plain interface (default) or a rich interface via
rich.
- Language: Python 3.13
- Agent framework: pydantic-ai
- CLI interface: prompt-toolkit, rich
- Code quality: Ruff (configured in
pyproject.toml)
guy.py- entry point; wires the components togetherguy/harness.py- conversation loopguy/agent.py- builds the agent from the tool listguy/models/- model providers (currently Gemini only)guy/tools/- agent tools, groupedguy/commands/- slash commandsguy/session/- session save and loadguy/attachments/- resolves#refreferences to files and URLsguy/ui/- user interfaces (plain,rich)
Requirements: Python 3.13 and a Gemini API key.
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txtSet the API key (either option):
$env:GEMINI_API_KEY = "your-key"or inside the agent:
/model gemini set-api-key <key>
Run it from the project directory you want the agent to work in:
python guy.py # plain interface (default)
python guy.py --rich # rich interface| Command | Description |
|---|---|
/model |
Pick a model from a list |
/model <model> |
Switch directly to a model, e.g. /model gemini:pro |
/model current |
Show the active model |
/model gemini set-api-key <key> |
Save an API key |
/model gemini remove-api-key |
Remove the saved API key |
/new |
Start a new session |
/resume <session-id> |
Resume a saved session |
/rename <title> [session-id] |
Rename a session |
/exit |
Exit |
Available models: gemini:flash-lite, gemini:flash (default), gemini:pro.
- Global settings:
~/.guy/config.json(default model and API keys) - Per-project sessions:
<project>/.guy/sessions/ - File tools are restricted to the project directory; paths outside it are rejected.
- The command tool runs through PowerShell, so the project is currently aimed at Windows.