Back to project Clone rp.git Files

RP: Professional CLI AI Assistant

Author: retoor retoor@molodetz.nl

RP is a sophisticated command-line AI assistant designed for autonomous task execution, advanced tool integration, and intelligent workflow management. Built with a focus on reliability, extensibility, and developer productivity.

Overview

RP provides autonomous execution capabilities by default, enabling complex multi-step tasks to run to completion without manual intervention. The assistant integrates seamlessly with modern development workflows through an extensive tool ecosystem and modular architecture.

Key Features

Core Capabilities

  • Autonomous Execution : Tasks run to completion by default with intelligent decision-making
  • Multi-Language Support : Automatic detection and analysis for Python, C, C++, Rust, Go, JavaScript, TypeScript, and Java
  • Advanced Tool Integration : Comprehensive tool set for filesystem operations, web interactions, code execution, and system management
  • Real-time Cost Tracking : Built-in usage monitoring and cost estimation for API calls
  • Session Management : Save, load, and manage conversation sessions with persistent state
  • Plugin Architecture : Extensible system for custom tools and integrations

Language-Agnostic Analysis

RP automatically detects the programming language and provides tailored analysis:

| Language | Features | |----------|----------| | Python | Dependency detection, version requirements, breaking change detection (pydantic v2, FastAPI) | | C/C++ | Header analysis, stdlib/POSIX/external library detection, compiler flag suggestions, Makefile generation | | Rust | Cargo.toml detection, crate analysis | | Go | go.mod detection, package analysis | | JavaScript/TypeScript | package.json detection, module analysis | | Java | Maven/Gradle detection, dependency analysis |

C/C++ Development Support

Full support for C and C++ projects including:

  • Header Classification : Distinguishes between standard library, POSIX, local, and external library headers
  • Compiler Flags : Automatic suggestion of -std=c99/c11/gnu99 , -Wall , -Wextra , -pthread , -lm , etc.
  • Library Detection : Maps headers to system packages (curl, openssl, sqlite3, zlib, ncurses, etc.)
  • Package Manager Integration : Install commands for Debian/Ubuntu, Fedora, Arch, and Homebrew
  • Build System Detection : Identifies Makefile, CMake, Meson, and Autotools projects
  • Makefile Generation : Creates complete Makefiles with proper LDFLAGS and dependencies

Example: For code with #include :

Language: c
Dependency: curl/curl.h → curl
Install: apt-get install -y libcurl4-openssl-dev
Linker: -lcurl

Developer Experience

  • Visual Progress Indicators : Real-time feedback during long-running operations
  • Markdown-Powered Responses : Rich formatting with syntax highlighting
  • Sophisticated CLI : Color-coded output, command completion, and interactive controls
  • Background Monitoring : Asynchronous session tracking and event handling

Advanced Features

  • Workflow Engine : Orchestrate complex multi-step processes
  • Agent Management : Create and coordinate specialized AI agents for collaborative tasks
  • Memory System : Knowledge base, conversation memory, and graph-based relationships
  • Caching Layer : API response and tool result caching for improved performance

Architecture

Modular Design

  • core/ : Core functionality including API integration, context management, and tool execution
  • tools/ : Comprehensive tool implementations for various operations
  • agents/ : Agent orchestration and management system
  • workflows/ : Workflow definition and execution engine
  • memory/ : Advanced memory management with knowledge storage and retrieval
  • plugins/ : Extensible plugin system for custom functionality
  • ui/ : User interface components and rendering
  • autonomous/ : Autonomous execution logic and decision-making
  • cache/ : Caching mechanisms for performance optimization

Data Storage

  • Primary Database : SQLite backend for persistent data storage
  • Knowledge Base : Markdown-based knowledge storage with semantic search
  • Session Storage : Conversation history and state management
  • Version Control : Integrated MiniGit for project state tracking

Tool Ecosystem

  • Filesystem operations (read, write, search, patch)
  • Web interactions (HTTP requests, search, scraping)
  • Code execution (Python interpreter, shell commands)
  • Database operations (key-value store, queries)
  • Interactive controls (background sessions, process management)
  • Memory operations (knowledge management, fact extraction)

Installation

Requirements

  • Python 3.10+
  • SQLite 3.x

Setup

pip install rp-assistant

Or from source:

git clone https://github.com/retoor/rp
cd rp
pip install -e .

Usage

Basic Commands

rp -i

rp "Create a Python script that fetches data from an API"

rp "Write a C program that uses libcurl to download a file"

rp --load-session my-session -i

rp --usage

Interactive Mode Commands

  • /reset - Clear conversation history
  • /verbose - Toggle verbose output
  • /models - List available AI models
  • /tools - Display available tools
  • /usage - Show token usage statistics
  • /cost - Display current session cost
  • /budget - Set budget limits
  • /shortcuts - Show keyboard shortcuts
  • /save - Save current session
  • clear - Clear terminal screen
  • cd - Change directory
  • exit , quit , q - Exit the assistant

Configuration

RP uses a hierarchical configuration system:

  • Global config: ~/.prrc
  • Local config: ./.prrc
  • Environment variables for API keys and settings

Create default configuration:

rp --create-config

Design Decisions

Technology Choices

  • Python 3.10-3.13 : Leverages modern language features including enhanced type hints and performance improvements
  • SQLite : Lightweight, reliable database for persistent storage without external dependencies
  • OpenRouter API : Flexible AI model access with cost optimization and model selection
  • Modular Architecture : Clean separation for maintainability and extensibility

Architecture Principles

  • Modularity : Clean separation of concerns with logical component boundaries
  • Extensibility : Plugin system and tool framework for easy customization
  • Reliability : Comprehensive error handling, logging, and recovery mechanisms
  • Performance : Caching layers, parallel execution, and resource optimization
  • Language Agnostic : Support for multiple programming languages without bias

Tool Design

  • Atomic Operations : Tools designed for reliability and composability
  • Timeout Management : Configurable timeouts and retry logic
  • Result Truncation : Intelligent handling of large outputs
  • Parallel Execution : Concurrent tool execution for improved performance

Memory and Context Management

  • Multi-layered Memory : Conversation history, knowledge base, and graph relationships
  • Automatic Extraction : Fact extraction and relationship mapping
  • Context Enhancement : Intelligent context building for improved AI responses
  • Summarization : Conversation summarization for long-term memory efficiency

API Integration

RP integrates with OpenRouter for AI model access, supporting:

  • Multiple model providers through unified API
  • Cost tracking and optimization
  • Model selection based on task requirements
  • Streaming responses for real-time interaction

Extensibility

Plugin System

  • Load custom tools and integrations
  • Extend core functionality without modifying base code
  • Plugin discovery and management

Workflow Engine

  • Define complex multi-step processes
  • Conditional execution and error handling
  • Variable passing and result aggregation

Agent Framework

  • Create specialized agents for specific domains
  • Collaborative agent execution
  • Task decomposition and delegation

Performance Considerations

Caching Strategy

  • API response caching with TTL-based expiration
  • Tool result caching for repeated operations
  • Memory-efficient storage with compression

Resource Management

  • Connection pooling for HTTP requests
  • Background task management
  • Memory monitoring and cleanup

Optimization Features

  • Parallel tool execution
  • Asynchronous operations
  • Result streaming for large outputs

Security

  • API key management through environment variables
  • Input validation and sanitization
  • Secure file operations with permission checks
  • Path traversal prevention
  • Sandbox security for command execution
  • Audit logging for sensitive operations

Development

Running Tests

make test
pytest tests/ -v
pytest --cov=rp --cov-report=html

Code Quality

  • Comprehensive test suite (545+ tests)
  • Type hints throughout codebase
  • Linting and formatting standards

Debugging

  • Detailed logging with configurable levels
  • Interactive debugging tools
  • Performance profiling capabilities
  • Error recovery and reporting

License

MIT License

Entry Points

  • rp - Main assistant
  • rpe - Editor mode
  • rpi - Implode (bundle into single file)
  • rpserver - Server mode
  • rpcgi - CGI mode

Files

  • CHANGELOG.md
  • CONTRIBUTING.md
  • Makefile
  • README.md
  • pyproject.toml
  • requirements.txt
  • rp.py
  • rp
  • tests