Skip to content

relharrati/custo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Custo β€” Autonomous Digital Operator

Version Python License Platform

An AI-augmented personal operator system that remembers, plans, acts, reflects, and improves over time. Custo is a modular Python application with agent-based architecture, designed to be your autonomous digital assistant.

✨ Features

  • Multi-Agent Architecture β€” 4 specialized agents (Main, Researcher, Coder, Strategist) working in concert
  • Intelligent Memory System β€” Inbox, short-term, daily, long-term storage with reflections and learning
  • LLM Provider Flexibility β€” Support for Ollama, LM Studio, vLLM, and OpenAI-compatible APIs
  • Interactive TUI Chat β€” Rich terminal interface with session tracking and history
  • Daemon Runtime β€” Background process with supervisor, workers, scheduler, and heartbeat
  • Comprehensive CLI β€” 50+ commands for managing sessions, memory, projects, tasks, and agents
  • Cross-Platform β€” Full Windows, macOS, and Linux support
  • Auto Model Selection β€” Intelligent model recommendations based on system RAM
  • Session Management β€” Daily markdown + JSON indexing for persistence

πŸš€ Quick Start

Installation

Choose your preferred installation method:

Option 1: One-Line Install (Recommended)

Linux / macOS:

curl -fsSL https://github.com/relharrati/custo/raw/master/setup/install.sh | sh

Windows PowerShell:

iwr -UseBasicParsing https://github.com/relharrati/custo/raw/master/setup/install.ps1 | iex

Option 2: NPM (Requires Python 3.9+)

npm install -g custo
npx custo chat

Option 3: Manual Setup

git clone https://github.com/relharrati/custo.git
cd custo
python -m pip install -e .

First Steps

# 1. Configure your LLM provider (Ollama, LM Studio, OpenAI, etc.)
custo setup

# 2. Start interactive chat
custo chat

# 3. Check system health
custo doctor

πŸ“Š What's Working

Component Status Description
Agent IPC βœ… 4 agents (main, researcher, coder, strategist) run as subprocesses
Daemon Runtime βœ… Supervisor, workers, scheduler, and heartbeat fully operational
Session Management βœ… Daily markdown + JSON index with full persistence
Memory System βœ… Inbox, short-term, daily, long-term, and reflections
CLI Commands βœ… 50+ commands covering sessions, memory, projects, tasks, agents, skills, daemon, and config
TUI Chat Interface βœ… Interactive terminal chat with session tracking and history
LLM Provider System βœ… 5 backends (Hardcoded, Ollama, LM Studio, vLLM, Auto-detect)
Auto Model Selection βœ… RAM detection + models.dev API recommendations
Windows Compatibility βœ… Python 3.9+ with Proactor event loop fixes
Cross-Platform Support βœ… Linux, macOS, and Windows fully supported

πŸ—οΈ Architecture

custo/
β”œβ”€β”€ custo                  # Main CLI entry point
β”œβ”€β”€ custo.bat              # Windows wrapper (py launcher)
β”œβ”€β”€ system/
β”‚   β”œβ”€β”€ config.py          # YAML configuration with defaults
β”‚   β”œβ”€β”€ llm/               # LLM provider abstraction layer
β”‚   β”‚   β”œβ”€β”€ __init__.py         # Factory and provider selection
β”‚   β”‚   β”œβ”€β”€ hardcoded.py        # Bootstrap fallback provider
β”‚   β”‚   β”œβ”€β”€ ollama.py           # Ollama integration with auto-download
β”‚   β”‚   β”œβ”€β”€ openai_compat.py    # LM Studio / vLLM support
β”‚   β”‚   └── models_db.py        # models.dev API + caching
β”‚   β”œβ”€β”€ rules.py           # System rules and constraints
β”‚   β”œβ”€β”€ routing.py         # Message routing logic
β”‚   └── versions.py        # Version management
β”œβ”€β”€ agents/                # Specialist agents + registry
β”‚   β”œβ”€β”€ base_agent.py      # Abstract base class
β”‚   β”œβ”€β”€ main/              # Orchestrator agent
β”‚   β”œβ”€β”€ researcher/        # Research specialist
β”‚   β”œβ”€β”€ coder/             # Coding specialist
β”‚   └── strategist/        # Strategy specialist
β”œβ”€β”€ daemon/                # Background runtime
β”‚   β”œβ”€β”€ daemon.py          # Main daemon process
β”‚   β”œβ”€β”€ supervisor.py      # Agent lifecycle management
β”‚   β”œβ”€β”€ scheduler.py       # Recurring task scheduling
β”‚   β”œβ”€β”€ heartbeat.py       # Health monitoring
β”‚   └── workers/           # Worker pool
β”œβ”€β”€ sessions/              # Session storage
β”œβ”€β”€ memory/                # Memory subsystem
β”œβ”€β”€ projects/              # Project management
β”œβ”€β”€ tasks/                 # Task tracking
β”œβ”€β”€ interfaces/
β”‚   β”œβ”€β”€ terminal/          # CLI + TUI chat
β”‚   └── web/               # Web interface (upcoming)
β”œβ”€β”€ integrations/          # External service integrations
β”œβ”€β”€ logs/                  # Application logs
β”œβ”€β”€ setup/                 # Installation & setup
β”‚   β”œβ”€β”€ init_config.py     # Configuration wizard
β”‚   └── first_run.py       # First-run setup
└── tests/                 # Unit and integration tests

πŸ› οΈ Configuration

Setup Wizard

Run the interactive setup to configure your LLM provider:

custo setup

This will guide you through:

  • LLM provider selection (Ollama, LM Studio, OpenAI, etc.)
  • Model selection with RAM recommendations
  • API key configuration (if applicable)
  • System preferences

Manual Configuration

Edit ~/.custo/config.yaml:

llm:
  provider: ollama  # or: openai, lm_studio, vllm, hardcoded
  model: neural-chat
  base_url: http://localhost:11434

agents:
  main:
    enabled: true
  researcher:
    enabled: true
  coder:
    enabled: true
  strategist:
    enabled: true

πŸ“– CLI Commands

Chat & Interaction

custo chat              # Start interactive chat
custo ask "question"    # Ask a single question

Session Management

custo sessions list     # List all sessions
custo sessions view     # View today's session
custo sessions export   # Export sessions

Memory Management

custo memory inbox      # View inbox
custo memory short      # View short-term memory
custo memory long       # View long-term memory
custo memory reflect    # Trigger reflection

Daemon Control

custo daemon start      # Start background daemon
custo daemon stop       # Stop daemon
custo daemon status     # Check daemon status

System Utilities

custo doctor            # Run health check
custo config show       # Display configuration
custo config reset      # Reset to defaults

πŸ”§ Troubleshooting

Issue: custo: command not found

Solution:

# Reinstall and add to PATH
pip install -e .
export PATH="$HOME/.local/bin:$PATH"

Issue: LLM provider connection fails

Solution:

# Run diagnostics
custo doctor

# Check LLM provider status
custo config show

Issue: Windows command not recognized

Solution:

  • Ensure Python 3.9+ is installed
  • Use PowerShell (not Command Prompt)
  • Try: python -m custo chat

Issue: Daemon won't start

Solution:

# Check logs
tail -f ~/.custo/logs/daemon.log

# Reset daemon
custo daemon stop
custo daemon start

πŸ“ˆ Project Status

v1.0.0 Bootstrap βœ… Complete

The initial release delivered:

  • βœ… Full package structure (14 directories, ~65 files)
  • βœ… Agent subprocess IPC with Windows-compatible stdin handling
  • βœ… Session and memory persistence layers
  • βœ… Interactive TUI chat client
  • βœ… Daemon runtime with workers and scheduler
  • βœ… CLI with comprehensive command coverage
  • βœ… Task and project tracking systems
  • βœ… Configuration system with YAML defaults
  • βœ… Bootstrap and first-run setup scripts
  • βœ… Cross-platform compatibility

Upcoming Milestones πŸš€

  • v1.1.0 β€” Provider Integration

    • Full Ollama / LM Studio integration
    • Model auto-download capabilities
    • Provider performance benchmarking
  • v1.2.0 β€” Agent Skills

    • Skill registry system
    • Built-in skills (web search, file I/O, etc.)
    • Custom skill framework
  • v1.3.0 β€” Tool Execution

    • Sandboxed tool execution
    • Shell command capabilities
    • File system integration
  • v2.0.0 β€” Web UI & APIs

    • React-based web interface
    • REST API layer
    • Real-time WebSocket updates
  • v2.1.0 β€” Integrations

    • Calendar integration
    • Email integration
    • Slack / Discord connectivity

🀝 Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Setup

git clone https://github.com/relharrati/custo.git
cd custo
python -m venv venv
source venv/bin/activate  # or `venv\Scripts\activate` on Windows
pip install -e ".[dev]"
pytest

πŸ“ License

This project is licensed under the MIT License β€” see the LICENSE file for details.

πŸ“š Documentation

πŸ”— Links

πŸ’¬ Support & Community

Have questions? Need help?


Made with ❀️ by relharrati

Custo β€” Your Autonomous Digital Operator

About

Custo - Autonomous Digital Operator. AI-augmented autonomous digital operator with multi-provider LLM, agent IPC, session management, and comprehensive CLI.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors