AI Control Plane for orchestrating models, memory, and evaluation
Project description
Unified
An AI Control Plane for orchestrating models, memory, and evaluation across your projects.
What is This?
Unified is infrastructure for AI-assisted development. Instead of hardcoding model choices and losing context between sessions, unified provides:
- Registry - Catalog of available models, tools, and skills
- Router - Selects the right model based on task type and constraints
- Memory - Persistent storage for decisions, patterns, and project knowledge
- Evaluator - Quality gates that validate AI output against checklists
- Audit Log - Complete record of routing decisions and evaluations
See docs/concepts.md for the full mental model.
Installation
pip install unified-controlplane
Quick Start
Interactive Mode (Recommended for New Users)
Just run unified with no arguments to get a menu-driven interface:
unified
========================================
=== Unified Control Plane ===
========================================
What would you like to do?
1. Check status
2. Remember something (add to memory)
3. Search memory
4. Route a task
5. List memory entries
6. Open web dashboard
7. Exit
Enter choice:
Web Dashboard
For a visual interface, start the web dashboard:
unified web
# Opens http://127.0.0.1:8765
Command Line
# Check system status
unified status
# Route a task to the appropriate model
unified route "Generate unit tests for user authentication" --type code
# Add to memory
unified memory add --type decision --content "Using pytest for testing"
# Search memory
unified memory search "testing"
Short Aliases
For power users, shorter aliases are available:
| Alias | Command | Example |
|---|---|---|
us |
unified status |
us |
ur |
unified route |
ur "Build login page" |
um |
unified memory |
um add --type decision --content "..." |
ui |
unified interactive |
ui |
uw |
unified web |
uw --port 9000 |
CLI Reference
unified (no args) or unified interactive
Interactive menu-driven mode. No command memorization needed.
unified status or us
Display control plane status: registry contents, memory stats, audit log info.
unified status [OPTIONS]
Options:
--check-health Verify model availability (may be slow)
unified route or ur
Select the appropriate model for a task.
unified route "task description" [OPTIONS]
Options:
--type TEXT Task type: code, review, documentation, research
--role TEXT Role: lead, reviewer, advisor
-c, --constraint Constraints: low-cost, fast, high-accuracy, local-only
unified memory or um
Manage project memory.
# Add an entry
unified memory add --type decision --content "Using pytest"
# List entries
unified memory list [--type decision]
# Search
unified memory search "pytest"
unified web or uw
Start the web dashboard.
unified web [OPTIONS]
Options:
--port INT Port to run on (default: 8765)
unified run
Execute the full control plane loop with real model output.
unified run "task description" [OPTIONS]
Options:
--type TEXT Task type (default: code)
--role TEXT Role (default: lead)
-c, --constraint Constraints (can specify multiple)
--model TEXT Override model selection
unified evaluate
Run quality checklists against output.
unified evaluate [OPTIONS]
Options:
--file PATH File containing output to evaluate
--task-type TEXT Task type for checklist selection
--task-brief TEXT Brief description for alignment checks
-c, --checklist Specific checklist(s) to run
Project Configuration
Create unified.yaml in your project root to set the project ID:
project_id: "my-project"
routing:
default_constraints: [] # Optional: [low-cost] to prefer local models
Data Storage
Unified stores data in ~/.unified/:
~/.unified/
├── config/
│ └── registry.yaml # User customization (optional)
├── memory/
│ └── <project>/ # Per-project memory storage
├── audit/
│ └── audit.jsonl # Audit log
└── checklists/ # Custom checklists (optional)
Environment Variables
| Variable | Description | Required |
|---|---|---|
UNIFIED_HOME |
Override home directory (default: ~/.unified) | No |
ANTHROPIC_API_KEY |
API key for Claude models | For Claude adapter |
OLLAMA_HOST |
Ollama endpoint (default: http://localhost:11434) | For Ollama adapter |
Documentation
- Conceptual Guide - Why a control plane? Mental models and workflows
- User-Friendly Interfaces - Interactive mode, aliases, web dashboard
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unified_controlplane-0.2.0.tar.gz.
File metadata
- Download URL: unified_controlplane-0.2.0.tar.gz
- Upload date:
- Size: 30.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27e3c1ce60443fbee8da02f51c7d6aa7f7445c47ffad6299b4776bc3abfe6136
|
|
| MD5 |
a7bcf5aed12c173ec44729ee36943eb0
|
|
| BLAKE2b-256 |
ef1e991ec89ee2720524bb09990c499f35bdcc3a28eef8749ac794185212f6ca
|
File details
Details for the file unified_controlplane-0.2.0-py3-none-any.whl.
File metadata
- Download URL: unified_controlplane-0.2.0-py3-none-any.whl
- Upload date:
- Size: 41.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9330261185cc97cbf7dbe80eeda717ece428906d780ffab7dd75d6e6ae60cb89
|
|
| MD5 |
fdc7aa8273430d91880acafab5f17576
|
|
| BLAKE2b-256 |
9df195c21bfb844ca8bcee55ebd93466f7910e8a99749374ec71c359eda81fe3
|