retoor 35ddb1ea6a feat: add C/C++ language detection and dependency resolution with Makefile generation
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.
2025-12-13 05:30:08 +00:00

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 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 <name> - Save current session
  • clear - Clear terminal screen
  • cd <path> - 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
S
Description
R - Python Edition. The ultimate CLI AI tool that works with Ollama / OpenRouter. It's rewritten from it's original version what was in C.
Readme
3.1 MiB
Languages
Python 99.8%
Makefile 0.2%