A terminal-based chat interface for interacting with AI agents and LLMs written in Rust.
This repository is intended for both industrial and academic use. Therefore, our plan has two main purposes.
First, for industrial settings, we do not focus on just one coding agent. Since there are many teams such as Cursor, OpenCode, Codex, and Trae, our focus is to automate partial tasks. This means we split the work into multiple small agents, each focusing on certain subtasks and specific tools. This approach allows users to handle different tasks without relying solely on a general-purpose agent.
Second, for academic settings, this repository aims to provide a training setup for agents. This means large language models (LLMs) can use this environment to learn how to use specific tools. Our ultimate goal is to address the following problems:
- Every time new tools are designed, others cannot easily reuse them.
- It is difficult to distill knowledge from a teacher LLM model to a student model within an agent setup.
Build the CLI binary:
cargo build --releaseThe binary will be available at target/release/pengy.
To install the CLI system-wide so you can run pengy from anywhere:
cargo build --release
cp target/release/pengy ~/.local/bin/Make sure ~/.local/bin is in your PATH. Add this to your ~/.zshrc or ~/.bashrc if needed:
export PATH="$HOME/.local/bin:$PATH"cargo install --path . --bin pengyAfter installation, verify it works:
pengyRun the CLI from anywhere after installation:
pengyOr run directly from the project directory without installation:
cargo run --bin pengyOn first run, configure your API key and select a model:
- Press
/settingsto set your API key (OpenRouter API key) - Press
/modelsto select a model - Press
/agentsto choose an agent type (Coder, Code Researcher, Test Agent, Control Agent, Issue Agent, or Pengy Agent)
Configuration is saved to .pengy_config.json in the current directory. You can also set the API_KEY environment variable.
- Type messages to chat with the selected agent
- Press
/modelsto switch models - Press
/agentsto switch agent types - Press
/settingsto update API key - Press
/helpfor available commands - Press
Escto exit
- Rust (latest stable version)
- API key from OpenRouter or compatible API provider
