π§ NovaSystem is a multi-agent problem-solving framework powered by AI. It orchestrates multiple expert agents (DCE, CAE, Domain Experts) through the Nova Process to analyze complex problems and synthesize comprehensive solutions.
303 tests passing | 6 interactive demos | v0.3.2
# Install
pip install -e .
# Launch the interactive CLI
./nova
# Or use commands directly
./nova ask "What is machine learning?"
./nova solve "How do I scale my API to handle 10x traffic?"
./nova experts "Design a microservices architecture" -d "Backend,DevOps,Security"
./nova chat # Interactive chat session
./nova status # Check system configurationThe ./nova script provides a beautiful startup experience:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ββββ βββ βββββββ βββ βββ ββββββ βββββββββββ ββββββββββββββββββββ β
β ββββββ ββββββ ββββββ βββββββββββ ββββββββ βββββββ ββββββββ βββ β
β βββ βββββββββββββββ βββββββ βββ βββ ββββββββ βββ ββββββββ βββ β
β β
β π§ Multi-Agent Problem Solving System v0.3.2 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Features:
- π¨ Beautiful ASCII art banner
- π Automatic API key detection
- π‘ Quick start hints
- π Seamless CLI passthrough
- Discover documentation files (README, INSTALL, docs/*) and extract install commands from fenced or inline code blocks.
- Deduplicate and prioritize commands, then execute them sequentially in an ephemeral Docker container (Ubuntu base with Python/Node toolchain).
- Persist run history (repository metadata, documentation snapshots, commands, outputs) to a local SQLite database for later inspection.
- Provide helper utilities: decision matrix scoring, documentation map generation, and technical-debt backlog structures.
- Bundle thorough tests and reference docs to make the behavior auditable and easy to extend.
- Python 3.8 or newer
- Docker daemon available locally (used for isolated command execution)
- Git client
Install from the repository root (recommended for now):
python -m venv .venv
source .venv/bin/activate
pip install -e .If you prefer an isolated dependency install without editable mode:
pip install .Run novasystem --help for full options. Common flows:
# Analyze and install a remote repo
novasystem install https://github.com/owner/project
# Work on a local repo and mount it into the container
novasystem install /path/to/repo --mount
# Disable auto repo-type detection if you know what you're doing
novasystem install https://github.com/owner/project --no-detect
# Review history
novasystem list-runs --output json
novasystem show-run 3
# Clean up records
novasystem delete-run 3
novasystem cleanup --days 30Command results include a summary, counts of executed commands, per-command exit codes/output, and stored documentation paths. Use --db-path to point the CLI at a specific database file and --output json for machine-readable results.
Run the bundled demo script from the project root to see NovaSystem's command-line flow (test-mode by default). It now guides you through Nova processing and can optionally show Gemini image generation/understanding when a Gemini API key is present:
python -m venv .venv
source .venv/bin/activate
pip install -e .
python novasystem_demo.pyThe script:
- Builds a tiny throwaway repo with mixed install docs.
- Runs NovaSystem in safe test mode (no Docker) and prints the install summary, stored docs, and command log.
- Shows run history and stored documentation/command records for the demo run.
- Optionally runs a Gemini image generation + vision-understanding segment (auto-enabled when
GEMINI_API_KEYis set, or by passing--with-gemini). - Writes results to
./novasystem_demo.dband saves artifacts under./novasystem_demo_outputsby default.
Options:
python novasystem_demo.py --use-dockerto exercise the real Docker executor (requires a running daemon).python novasystem_demo.py --db-path /tmp/my-demo.dbto isolate demo history.python novasystem_demo.py --keep-repoto leave the generated demo repo on disk for inspection.python novasystem_demo.py --with-geminito force-run the Gemini segment (requiresGEMINI_API_KEY).- Gemini tuning:
--gemini-model-gen,--gemini-model-vision,--gemini-prompt,--gemini-vision-prompt,--out-dir. - Delete
novasystem_demo.dbto reset demo history.
Troubleshooting:
ModuleNotFoundError: dockerorgitβ runpip install -e .from the repo root to pull dependencies.- Docker-related errors when using
--use-dockeror the mainnovasystem installcommand β start the Docker daemon and ensure your user can rundocker ps. sqlite3.OperationalErrorabout the database/log location β point--db-path(orNOVASYSTEM_DB_PATH) andNOVASYSTEM_LOG_PATHto a writable directory, or setNOVASYSTEM_DISABLE_FILE_LOG=1to disable file logging.- Empty history after running the demo β confirm you're reading the same DB path you wrote to (defaults to
./novasystem_demo.db).
Showcases a doc-to-code flow: it downloads the Pixel Lab LLM-friendly docs and emits a minimal Python client with one method per endpoint.
python examples/pixellab_module_demo.py \
--output examples/generated/pixellab_client.py- Uses
https://api.pixellab.ai/v2/llms.txtby default; pass--source path/to/llms.txtto work offline. - After generation:
from examples.generated.pixellab_client import PixelLabClient client = PixelLabClient(api_token="YOUR_TOKEN") print(client.get_balance())
Gemini functionality is integrated into novasystem_demo.py (auto-runs when GEMINI_API_KEY is set). There is also a standalone script gemini_image_demo.py if you want to run Gemini only.
Setup and run from repo root:
python -m venv .venv
source .venv/bin/activate
pip install -e . # core repo (optional but safe)
pip install google-genai pillow
export GEMINI_API_KEY=your_key_here
python gemini_image_demo.py \
--prompt "Gemini-themed lab scene with holographic dashboards" \
--model-gen gemini-2.5-flash-image \
--model-vision gemini-2.5-flashWhat happens:
- Calls an image-generation model and saves outputs to
gemini_demo_outputs/. - Builds a synthetic PNG locally, sends it with a vision prompt, and saves the textual response to
gemini_demo_outputs/vision_result.txt. - Flags:
--model-gen(e.g.,gemini-3-pro-image-preview),--model-vision(vision-capable text+image model),--vision-prompt,--out-dir.
Troubleshooting:
- Missing API key β ensure
GEMINI_API_KEYis set in your shell. ModuleNotFoundError: google.genaiorPILβ runpip install google-genai pillow.403/permission deniedβ verify the key has access to the chosen model; trygemini-2.5-flash-imagefor generation andgemini-2.5-flashfor vision.404 model not foundβ double-check the model name spelling.429 rate limitβ wait/retry or lower request volume.- Corporate proxies/firewalls β ensure outbound HTTPS to the Gemini endpoint is allowed.
The orchestrator can be used programmatically without the CLI:
from novasystem.nova import Nova
nova = Nova(db_path="novasystem.db", test_mode=True) # test_mode skips Docker calls
result = nova.process_repository("https://github.com/example/repo", mount_local=False)
print(result["message"])
print("Commands executed:", result.get("commands_executed"))Utility modules are importable on their own:
from novasystem.core_utils import make_decision
decision = make_decision(
options=["Option A", "Option B", "Option C"],
criteria=["Cost", "Speed", "Quality"],
scores={
"Option A": [7, 8, 6],
"Option B": [9, 5, 7],
"Option C": [6, 9, 8],
},
)
print(decision.winner)
print(decision.comparison_table())Documentation mapping and technical-debt helpers are available at novasystem.core_utils.generate_doc_map and novasystem.technical_debt.*.
- Database: defaults to
novasystem.dbin the working directory. Override with--db-pathorNOVASYSTEM_DB_PATH. - Logging: console logging is always enabled. A file log at
~/.novasystem.logis created unlessNOVASYSTEM_DISABLE_FILE_LOG=1is set; override the path withNOVASYSTEM_LOG_PATH. - Docker: the executor builds/uses
novasystem/runner:latest, mounts repositories read-only at/app/repo, and runs with network isolation (network_mode="none"by default). Settest_mode=Truewhen instantiatingNovaif you need to bypass Docker during local tests. - Cleanup:
novasystem cleanup --days Npurges run records older than N days. Temporary clone directories created for remote repositories are cleaned up automatically.
novasystem/β core package (CLI, orchestrator, Docker executor, parser, database, utilities).tests/β pytest suite covering the CLI, parser, repository handling, database, decision matrix, and utilities.docs/β architectural and process documentation for the broader NovaSystem work.assets/,examples/,reports/,work_efforts/β supporting materials and research notes.NovaSystem-StreamlinedandNovaSystem-Streamlined-backup-*β archived experiments and UI prototypes; not used by the current CLI package.
python -m venv .venv
source .venv/bin/activate
pip install -e .
pytestConsider setting NOVASYSTEM_DISABLE_FILE_LOG=1 while iterating locally if you do not want log files in your home directory.
NovaSystem has a comprehensive test suite covering all major components:
# Run all tests
pytest
# Run with verbose output
pytest -v
# Run specific test categories
pytest tests/test_memory_system.py # Memory manager tests
pytest tests/test_vector_store.py # Vector store tests
pytest tests/test_chaos_engineering.py # Chaos/resilience tests
pytest tests/test_concurrency_stress.py # Concurrency tests
pytest tests/test_edge_cases_torture.py # Edge case tests| Category | Tests | Description |
|---|---|---|
| Core Functions | 30+ | Basic utility tests |
| Memory System | 17 | Async memory manager |
| Vector Store | 28 | RAG and similarity search |
| Integration | 8 | End-to-end workflows |
| Agents (Mock) | 23 | Agent behavior |
| Pipeline | 21 | Pipeline patterns |
| Performance | 17 | Benchmarks |
| Chaos Engineering | 20+ | Fault injection, cascading failures |
| Concurrency Stress | 25+ | Parallel execution, race conditions |
| Edge Cases | 60+ | Unicode, extreme values, boundaries |
| CLI Startup | 5 | CLI initialization |
Run these demos to see NovaSystem in action:
# Event-driven architecture demo
python examples/event_driven_architecture_demo.py
# Decision matrix with UI
python examples/decision_matrix_ui_demo.py
# Full system demo (memory, events, decisions)
python examples/novasystem_full_demo.py
# Multi-agent collaboration (Nova Process)
python examples/multi_agent_collaboration_demo.py
# Technical debt tracking
python examples/technical_debt_tracking_demo.py
# Complete problem-solving workflow
python examples/nova_problem_solving_demo.py| Demo | What It Shows |
|---|---|
novasystem_full_demo.py |
Full pipeline with memory, events, and decision matrix |
multi_agent_collaboration_demo.py |
DCE + CAE + Domain Experts working together |
nova_problem_solving_demo.py |
UNPACK β ANALYZE β SYNTHESIZE workflow |
decision_matrix_ui_demo.py |
LLM provider comparison with journaling |
technical_debt_tracking_demo.py |
Debt prioritization and analytics |
NovaSystem v0.1.1 is an alpha research tool. Command extraction is heuristic and may miss or misorder steps; always review the proposed commands before letting them run. Although execution happens inside Docker with limited resources and no network by default, you are responsible for auditing commands from untrusted repositories and for validating any installation outcomes.