Add comprehensive C and C++ project analysis including header classification (stdlib, POSIX, external), compiler flag suggestions, and Makefile generation. Extend DependencyResolver with C library package mappings for debian, fedora, arch, and brew platforms. Update ProjectAnalyzer with LANGUAGE_EXTENSIONS and BUILD_FILES mappings, rename python_version to language_version, and add build_system and compiler_flags fields to AnalysisResult. Enhance SafeCommandExecutor with incomplete argument detection for find, grep, and sed commands. Add metadata field to OperationResult in TransactionalFileSystem and fix hidden directory validation logic. Bump version to 1.69.0 and promote development status to Production/Stable.
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 <curl/curl.h>:
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 executiontools/: Comprehensive tool implementations for various operationsagents/: Agent orchestration and management systemworkflows/: Workflow definition and execution enginememory/: Advanced memory management with knowledge storage and retrievalplugins/: Extensible plugin system for custom functionalityui/: User interface components and renderingautonomous/: Autonomous execution logic and decision-makingcache/: 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 <name>- Save current sessionclear- Clear terminal screencd <path>- Change directoryexit,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 assistantrpe- Editor moderpi- Implode (bundle into single file)rpserver- Server moderpcgi- CGI mode