nexus-lite
Ultra-simple Colab-ready multi-agent primitives for Nexus.
nexus-lite turns standalone CLI coding agents (an agent here is a CLI such as agy, opencode or claude; a worker is the leaf agent process a delegate call starts) (agy, opencode, and claude) into a coordinated multi-agent system—providing persistent PTY control (dtach + pyte), inter-agent messaging with PTY pointer delivery ([nexus] dm), native stm/1 short-term memory (<nexus_stm>), parallel swarm & role-pipeline delegation, 5-turn peer-to-peer A2A review loops (interact), autonomous 5-phase cooperative problem-solving swarms (cooperate), and a local Markdown wiki with full-text search (FTS5). Unlike prompt-chaining API libraries, nexus-lite orchestrates real coding agents with full shell and filesystem access while requiring no external server daemons and zero infrastructure setup, making it ideal for Google Colab, Jupyter notebooks, and lightweight research workflows.
- Multi-Agent CLI Harness & Automatic Quota Fallback (
agy+opencode+claude): Orchestrate heavy reasoning, adversarialpytestauthoring, and closed-loop repair acrossagy(Google Antigravity CLI),opencode(opencode/mimo-v2.6-flash-free,opencode/mimo-v2.6-flash-free,opencode/big-pickle—which work out-of-the-box with zero signup and zero API key), andclaude(Claude Code). Ifclaudehits its weekly limit oropencodehits its daily free-tier limit,nexus-liteautomatically falls back in-place (fallback_cmd) to available agents.
Features
-
Persistent PTY Controller (
nexus_lite.pty):- Native
dtachwire protocol client (MSG_PUSH,MSG_ATTACH,MSG_DETACH,MSG_WINCH). - Terminal screen capture and VT rendering via
pyte. - Concurrency safety with
flockon{sock}.lock. - Multi-agent busy/idle classifier (
claude,agy,gemini,copilot,opencode,bash). - Keystroke injection (
keys) and automated wait loops (wait).
- Native
-
File & SQLite Message Bus (
nexus_lite.core.bus_*):- Zero-broker pub/sub over SQLite WAL and
.nexus/inbox/<msg_id>.md. - Real-time PTY pointer line injection: delivers
[nexus] <kind> <id> <path> - <summary>directly into active PTY sessions.
- Zero-broker pub/sub over SQLite WAL and
-
Native
stm/1Short-Term Memory Store (nexus_lite.memory.stm):- File-backed
stm/1nodes (.nexus/stm/stm-<project_id>/node/<id>.md) followingFiles = Source of Truth. - Deterministic
<nexus_stm>JSON/fenced prompt-envelope packing (nl.stm_pack()) for cross-turn and cross-agent continuity.
- File-backed
-
Subtask Delegation, Multi-Agent Swarms & Autonomous Problem Solving (
nexus_lite.core):- Executes leaf subagents via subprocess or background PTY sessions with in-place quota/auth fallback (
fallback_cmd). - Enforces recursion guards (
NEXUS_DELEGATION_DEPTHmax 2) and generates persistent artifacts in.nexus/artifacts/<task_id>/. - 5-Turn Peer-to-Peer Interaction (
demos.run_agent_interaction): Direct[nexus] dmexchange acrossagy-architect→code-driver→opencode-reviewer→code-driver→agy-architect. - Autonomous 5-Phase Cooperative Problem Solver (
demos.run_cooperative_problem_solver): Takes any arbitrary problem--goaland coordinatesthinker-architect(agy),algo-driver(opencode),test-engineer(agy),leaf-scout(opencode/big-pickle), andpeer-verifierthrough contract decomposition, parallel code + adversarialpytestgeneration, livepytestexecution,<nexus_stm>closed-loop repair, and consensus sign-off.
- Executes leaf subagents via subprocess or background PTY sessions with in-place quota/auth fallback (
-
Markdown Wiki with FTS5 (
nexus_lite.core.wiki_*):- Plain markdown documentation in
.nexus/wiki/<slug>.md. - Full-text search powered by SQLite FTS5 with snippet generation.
- Plain markdown documentation in
-
Universal Environment Support (
ensure_env,detect_env,ensure_colab):- Universal runtime detection: Google Colab, VS Code Dev Containers, GitHub Codespaces, Docker, RunPod/Vast.ai, or Local Linux/macOS.
- One-call
ensure_env()bootstrapsdtachand initializes the.nexus/workspace. - Ready-to-use
.devcontainer/devcontainer.jsonconfiguration with automatic port forwarding.
-
Cloudflared Remote Tunnel (
nexus_lite.colab.tunnel):- Auto-configures
cloudflaredto establish an ephemeraltrycloudflare.comtunnel. - Bearer token-authenticated HTTP JSON API server with endpoints for code execution, PTY sessions, bus messages,
stm/1memory, swarms, pipelines, A2Ainteract, 5-phasecooperate, and wiki operations. - Zero-dependency
ColabTunnelClientclient allows any local agent (agy,claude,opencode) to execute remote GPU code and orchestrate multi-agent workflows.
- Auto-configures
-
Live HTML5 Multi-Agent Dashboard (
nexus_lite.demos.viz):- Standalone, zero-CDN HTML5 dashboard with compact 2x2 layout: KPI summary, inline SVG agent topology graph (including curved P2P DM edges, sequence diagram, and 5-phase cooperative timeline), dark PTY terminal screens, task kanban board, and message timeline.
- Accessible inline in notebooks or globally via the live dashboard
/dashboard?token=<token>&refresh=3.
Installation & Environments
pip install git+https://github.com/choilab-jefferson/nexus.lite.git
Universal One-Liner (All Environments)
nexus-lite provides a single entrypoint colab.ensure_env() that automatically detects your environment and sets up the workspace:
import nexus_lite as nl
from nexus_lite import colab
from nexus_lite import demos
from nexus_lite.demos import viz
# Detects Colab, Codespaces, Dev Containers, Docker, or Local host
info = colab.ensure_env()
print(f"Runtime: {info['env']}, Workspace: {info['workspace']}")
Supported Environments
1. Google Colab
Run in a Colab notebook cell:
!apt-get update -qq && apt-get install -y -qq dtach
!pip install -q git+https://github.com/choilab-jefferson/nexus.lite.git
import nexus_lite as nl
from nexus_lite import colab
from nexus_lite import demos
from nexus_lite.demos import viz
info = colab.ensure_env() # Auto-detects Colab, defaults mount_drive=True, start_tunnel=True
2. VS Code Dev Containers & GitHub Codespaces
A pre-configured dev container is included in .devcontainer/devcontainer.json (python:3.12 base image, dtach system package, pip install -e .[dev], and port 8765 auto-forwarding).
- Open the repository in VS Code using Dev Containers: Reopen in Container or launch in GitHub Codespaces.
- Call
colab.ensure_env(). Port8765is forwarded automatically. - Open the compact 2x2 live dashboard in your browser:
http://127.0.0.1:8765/dashboard?token=<token>&refresh=3
3. Docker & Local Linux / macOS
# Ubuntu / Debian
sudo apt-get install -y dtach
pip install git+https://github.com/choilab-jefferson/nexus.lite.git
import nexus_lite as nl
from nexus_lite import colab
from nexus_lite import demos
from nexus_lite.demos import viz
info = colab.ensure_env()
# Bridge server runs locally on http://127.0.0.1:8765
4. RunPod / Vast.ai Headless GPU Pods
For remote GPU cloud instances behind NAT without open inbound ports, enable Cloudflare tunneling:
import nexus_lite as nl
from nexus_lite import colab
from nexus_lite import demos
from nexus_lite.demos import viz
from nexus_lite.colab import tunnel
colab.ensure_env()
info = tunnel.start_tunnel(tunnel=True, token="my-token")
print("Public 2x2 Dashboard:", info["dashboard_url"] + "&refresh=3")
Quickstart (Python API)
import nexus_lite as nl
from nexus_lite import colab
from nexus_lite import demos
from nexus_lite.demos import viz
# 1. Initialize workspace
nl.init()
# 2. Launch an interactive CLI agent in PTY
nl.pty.spawn("bash", name="shell1")
nl.pty.send("shell1", "echo 'Hello from agent'")
screen = nl.pty.read("shell1")
print(screen)
# 3. Send a message (`bus_send` = nexus say/dm/relay; target ALL = broadcast to live sessions)
nl.bus_send(target="shell1", message="Review task artifact 42", kind="dm")
# 4. Delegate background task
res = nl.delegate(
agent_cmd="python3 -c 'print(\"Task Done\")'",
prompt="Perform computation",
caller="shell1",
bg=False,
)
print("Task status:", res["status"], "rc:", res["rc"])
# 5. Local Wiki with FTS5 search
nl.wiki_write("architecture", "# Architecture Overview\nNexus-lite uses SQLite WAL.")
results = nl.wiki_search("SQLite")
print("Search results:", results)
# 6. Remote Colab Tunnel & Client (Google Colab <-> Local Agent)
# In Colab:
from nexus_lite.colab import tunnel
info = tunnel.start_tunnel(port=8765, tunnel=True, token="secret-token")
print("Public Dashboard:", info["dashboard_url"])
# From local agent machine:
client = tunnel.ColabTunnelClient(info["local_url"], token=info["token"])
gpu_check = client.exec(python="import torch; print('CUDA:', torch.cuda.is_available())")
print(gpu_check["stdout"])
tunnel.stop_tunnel()
CLI Reference
Demo and orchestration subcommands (
demo,multi-tier,interact,cooperate,dashboard) live in the separatenexus-lite-democonsole script;nexus-liteis the kernel CLI only.
# Initialize workspace (.nexus/)
nexus-lite init [--workspace .nexus]
# Manage PTY sessions (a session = one dtach PTY / registry row; never a worker)
nexus-lite pty new "bash" --name worker1
nexus-lite pty list
nexus-lite pty send worker1 "ls -la"
nexus-lite pty keys worker1 enter
nexus-lite pty read worker1 --cols 160 --rows 45
nexus-lite pty wait worker1 --provider bash --timeout 10
nexus-lite pty kill worker1
# Message bus (MTM: flow carried across interruptions; transport = bus)
nexus-lite bus send worker1 "Please review file" --sender orchestrator --kind dm
nexus-lite bus read --limit 10
# Task delegation (worker = leaf agent process; completion arrives as TASK_COMPLETE / TASK_ESCALATE to --caller)
nexus-lite delegate "python3 worker.py" "Run pipeline" --caller worker1
# Wiki management
nexus-lite wiki write getting-started "# Getting Started Guide"
nexus-lite wiki read getting-started
nexus-lite wiki search "Guide"
nexus-lite wiki list
# Chat helper
nexus-lite chat worker1 "What is current status?" --provider bash
# Remote Colab Tunnel Server & Client
nexus-lite-colab start --port 8765
nexus-lite-colab status
nexus-lite-colab exec "nvidia-smi" --url "https://xyz.trycloudflare.com" --token "secret"
nexus-lite-colab stop
# HTML5 Dashboard
nexus-lite-demo dashboard --out dashboard.html
# Short-Term Memory (stm/1)
nexus-lite stm write --kind decision --status done --summary "Use modified Z-score"
nexus-lite stm list
nexus-lite stm pack
# 5-Turn Peer-to-Peer Agent Interaction (interact) & Autonomous 5-Phase Cooperative Swarm (cooperate)
nexus-lite-demo interact --goal "Implement and peer-review a 3D NIfTI affine validator"
nexus-lite-demo cooperate \
--goal "Design, implement, and adversarially test a 3D Radiomics Z-Score Harmonizer and IQR Outlier Quarantine module (scanner_harmonizer.py)" \
--module-name scanner_harmonizer \
--architect-agent agy \
--verifier-agent opencode/mimo-v2.6-flash-free
# Practical QRadiomics + MedImage Multi-Agent Demos (with agy, multi-tier, or claude)
nexus-lite-demo demo all --agent agy # Run all 4 medical imaging & radiomics demos via Antigravity (agy)
nexus-lite-demo demo all --agent multi-tier # Run all 4 demos across OpenCode + AGY
nexus-lite-demo demo all --agent claude # Run all 4 demos via Claude Code (claude, auto-falls back if quota reached)
nexus-lite-demo demo phantom-swarm --agent agy # Demo 1: 3D lung nodule spiculation (spic6) & 180-D AHSN swarm
nexus-lite-demo demo hipaa-pipeline --agent claude # Demo 2: HIPAA Safe Harbor DICOM de-identification role pipeline
nexus-lite-demo demo multimodal-swarm --agent agy # Demo 3: CT body composition, CHAOS MRI steatosis & PET SUV swarm
nexus-lite-demo demo lung1-audit --agent claude # Demo 4: NSCLC-Radiomics (Lung1) data-leakage & reproducibility audit
Practical Medical Imaging & Radiomics Demos (qradiomics + medimage)
nexus-lite ships with built-in multi-agent workflows (nexus_lite.demos) bridging qradiomics and the 13-chapter medimage Google Colab curriculum, orchestrating live agy or claude agents (agent="agy" | "claude" | "auto" | "python"):
import nexus_lite as nl
from nexus_lite import colab
from nexus_lite import demos
from nexus_lite.demos import viz
# 1. 3D Pulmonary Nodule Morphology Swarm (Choi 2014 CMPB AHSN + Choi 2021 CMPB spic6)
d1 = demos.run_phantom_shape_swarm(agent="agy")
# 2. HIPAA Safe Harbor DICOM De-Identification Pipeline (driver -> verifier -> refiner, medimage Ch.5)
d2 = demos.run_hipaa_privacy_pipeline(agent="claude")
# 3. Multi-Modality Quantitative Imaging Swarm: CT L3 Body Comp, MRI Steatosis, PET SUV (medimage Ch.6-8)
d3 = demos.run_multimodal_imaging_swarm(agent="agy")
# 4. NSCLC-Radiomics (Lung1) Target-Leakage & Reproducibility Audit Pipeline (medimage Ch.12-13)
d4 = demos.run_lung1_audit_pipeline()
# Render live 2x2 HTML5 multi-agent dashboard
viz.dashboard()
Using loom
nexus_lite.loom wraps the loom agent harness as a subprocess (stdlib only). Set LOOM_BIN or put loom on PATH.
from nexus_lite.loom import probe, LoomAdapter
print(probe().available) # never raises; False if loom is missing
r = LoomAdapter().run_prompt("Say hello", provider="mock")
print(r.status, r.ok) # "unavailable" when loom is not installed
Exit codes map to ok, task_failure (retryable), harness_or_policy_error, escalation_required, budget, interrupted, else unknown; loom capabilities --json overrides the built-in table. Install is explicit and never implicit (import and LoomAdapter never touch the network). Fetch the pinned release (LOOM_VERSION, sha256-verified against the release checksums.txt; linux/darwin on amd64/arm64) with nexus-lite loom install [--version V] [--dest PATH] or python -c "from nexus_lite import loom; print(loom.install_loom())". Default dest is ~/.local/bin/loom; LOOM_INSTALL_URL overrides the release base URL.
The loom subprocess gets an env allowlist, not your full environment: PATH, HOME, LANG, LC_ALL, TMPDIR, LOOM_*, and provider keys (ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, GOOGLE_API_KEY, OPENROUTER_API_KEY, OLLAMA_HOST). Add more with LoomAdapter(env_passthrough=[...]).
probe().version reads the version capability (None for older binaries). version_ok is False below MIN_LOOM_VERSION (0.1.0), and probe() then emits a warning; unknown or unparseable versions are accepted.
Terminology
Words below are lite names; the right column is the matching nexus word. Persisted and wire names (SQL, env vars, pointer-line format, ALL, task_id, ID formats) are frozen and are not renamed here. nexus is the downstream extension of nexus-lite and shares this vocabulary.
| lite word | meaning in lite | nexus word |
|---|---|---|
| agent | a CLI coding agent (agy, opencode, claude) or a role label passed as agent= |
agent |
| worker | the leaf agent process started by delegate |
worker / leaf |
delegate |
start a worker on a task | delegate / dispatch |
| caller | name that receives the completion message of a delegated task | caller (reply-to) |
| target | recipient of a bus message: an agent name, a PTY session, or ALL |
recipient (--to) |
| sender | author field of a bus message; a worker uses its task_id |
sender |
bus send |
write a message and inject a pointer line into live PTYs | say / dm / relay |
ALL |
broadcast to every live session | broadcast |
| pointer line | [nexus] <kind> <id> <path> - <summary> injected into a PTY |
pointer line |
TASK_COMPLETE / TASK_ESCALATE |
completion channel: message to the caller when a task ends or needs escalation | completion channels |
task_id |
id of one delegate run (t-<uuid8>) |
task |
| session | one dtach PTY / registry row (never a worker) | session |
workspace / .nexus/ |
local directory holding lite.db, inbox, stm, wiki |
project directory (in nexus, "workspace" means a pod; T1 undecided) |
memory.stm |
live working state (stm/1 nodes) |
STM |
memory.mtm |
flow carried across interruptions; transport is the bus | MTM (MTM+ retired) |
memory.ltm |
markdown wiki, the authoritative durable record | LTM |
Acknowledgements
We gratefully acknowledge Google for providing Gemini 4 Argon access and support, which powered the multi-agent orchestration, quantitative radiomics synthesis, and automated methodological auditing across nexus-lite, qradiomics, and medimage.
Computational Healthcare & Oncology Informatics (CHOI) Lab, Department of Radiation Oncology, Sidney Kimmel Medical College at Thomas Jefferson University · MIT License
Releasing
Releases are squash-commit snapshots (one per release, history kept) pushed to GitHub by a maintainer; see docs/RELEASE.md.
loom multi-agent on Colab
notebooks/loom_multi_agent_colab.ipynb (or python -m nexus_lite.demos.loom_multi_agent) installs loom from a checksum-verified release (source-build fallback) and builds four tricky modules with an orchestrator/worker/reviewer team scored by hidden tests, next to a single-agent baseline (--json-out, --runs, --inject-bad-key, --inject-timeout). Keys come only from Colab Secrets (ANTHROPIC_API_KEY, GEMINI_API_KEY); with none set it uses the offline mock provider.
Radiomics loom examples
Same orchestrator/worker/reviewer framework, pluggable tasks (--task NAME[,NAME...]|all, default basic). Each radiomics task has 3-4 flat stdlib-only modules scored by hidden tests (never put in a prompt); images are nested lists, masks 0/1 lists.
| task | modules |
|---|---|
radiomics-firstorder |
discretise, roi, moments, distribution (bins, ROI + re-segmentation, mean/variance/skew/kurtosis/energy/entropy/rMAD) |
radiomics-texture |
glcm, glcm_features, glrlm, glrlm_features |
radiomics-stats |
icc (ICC 3,1), fdr (BH q-values), standardise (train-only z-score), cindex (Harrell C) |
python examples/loom_radiomics.py --providers mock # all three, offline scripted
python examples/loom_radiomics.py --task radiomics-stats --providers anthropic,gemini --json-out out.json
python -m nexus_lite.demos.loom_multi_agent --task radiomics-texture --providers mock
Metadata
Release files for nexus-lite 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| nexus_lite-0.2.2.tar.gz | 224.5 kB | With provenance | Details for nexus_lite-0.2.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| nexus_lite-0.2.2-py3-none-any.whl | Python 3 | none | any | Details for nexus_lite-0.2.2-py3-none-any.whl |
Total release size: 403.8 kB
Release files / nexus_lite-0.2.2.tar.gz
| Download URL | nexus_lite-0.2.2.tar.gz |
|---|---|
| Size | 224.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4b5aaf1d00a018ef7dbecc347814927453bbd3d0309641fc99a66a9b339c215
|
|
BLAKE2b-256 checksum How to use checksums |
7c742aeb77ef7bf4ca48fb73a0525a98bb1e7733e8151d206f5f0e6bb6f9731d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.
Transparency logRelease files / nexus_lite-0.2.2-py3-none-any.whl
| Download URL | nexus_lite-0.2.2-py3-none-any.whl |
|---|---|
| Size | 179.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4ccfeb1e240f96f8bade11c57b162210cc85f7fcd42d5aaea6be0439b07a9898
|
|
BLAKE2b-256 checksum How to use checksums |
e2f309575b32d760ccceb0c9cb9abd270d7a90fec756af01f430764f5b35c982
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.
Transparency logSecurity for nexus-lite 0.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for nexus_lite-0.2.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.