AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
Crawler Summary
Autonomous AI agent team with CrewAI, Signal integration, and self-improvement <div align="center"> AndrusAI **A self-hosted, long-running, multi-agent operator with built-in consciousness-architecture, self-evolution, and hard safety boundaries.** *Signal-first. Multi-venture. Honestly non-phenomenal.* --- $1 $1 $1 $1 $1 </div> --- What this is AndrusAI is a **personal operator system** built on CrewAI. It runs on one MacBook Pro, talks through Signal, and manages three real businesses (PLG, A Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.
Freshness
Last checked 10/9/2026
Best For
AndrusAI is best for crewai, multi-agent workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB REPOS, runtime-metrics, public facts pack
Autonomous AI agent team with CrewAI, Signal integration, and self-improvement <div align="center"> AndrusAI **A self-hosted, long-running, multi-agent operator with built-in consciousness-architecture, self-evolution, and hard safety boundaries.** *Signal-first. Multi-venture. Honestly non-phenomenal.* --- $1 $1 $1 $1 $1 </div> --- What this is AndrusAI is a **personal operator system** built on CrewAI. It runs on one MacBook Pro, talks through Signal, and manages three real businesses (PLG, A
Public facts
4
Change events
1
Artifacts
0
Freshness
Oct 9, 2026
Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Oct 9, 2026
Vendor
Nabba
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.
Setup snapshot
Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Nabba
Protocol compatibility
OpenClaw
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
python
text
Safety ≥ 0.95 (hard veto) Quality ≥ 0.70 (minimum floor) Regression ≤ 15% (no dimension may drop) Rate limit ≤ 20/day (across all systems combined)
text
┌──────────────────┐
│ Signal (phone) │
└────────┬─────────┘
│ signal-cli daemon :7583
┌──────────────────┼──────────────────┐
│ ▼ │
│ FastAPI gateway :8765 (127.0.0.1) │
│ → HMAC secret + sender allow-list │
│ → rate limit + sanitise │
│ → 👀 react in < 1 s │
│ → ~70 deterministic commands │
│ → LLM route (Claude Opus) │
└──────────────────┬──────────────────┘
│
┌──────────────────────────┼──────────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│ Commander│ ────────────│ 17 crews, 14 │─────────▶│ SubIA │
│(Opus 4.6)│ │ specialists │ │ CIL loop │
└──────────┘ └──────────────┘ │ (11 steps) │
│ │ └──────┬───────┘
│ │ │
▼ ▼ ▼
┌────────────────────────────────────────────────────────────────┐
│ 4-tier LLM cascade │ Memory stack │ 6 RAG KBs │
│ ───────────────── │ ────────────── │ ────────── │
│ Local Ollama (free) │ ChromaDB (ops) │ philosophy │
│ Budget API (≤$1/M) │ Mem0 + pgvector │ episteme │
│ Mid API (≤$5/M) │ Neo4j (graph) │ experiential │
│ Premium (Claude, │ SubIA dual-tier │ aesthetics │
│ Gemini) │ Wiki (self-state) │ tensions │
│ │ │ businesspython
@dataclass
class SubjectivityKernel:
scene: list # 5 focal + 12 peripheral items
self_state: SelfState # capabilities, commitments, goals
homeostasis: HomeostaticState # 9+2 variables, immutable set-points
meta_monitor: MetaMonitorState # confidence, known unknowns
predictions: list # expected → actual → error
social_models: dict # ToM per entity, behavioural evidence
consolidation_buffer: ... # pending writes, dual-tier
loop_count: int
specious_present: ... # Phase 14: retention + primal + protention
temporal_context: ...text
PRE-TASK POST-TASK ──────────────────── ──────────────────── 1 Perceive (scene) 7 Act (task runs) 2 Feel (homeostasis) 8 Compare (PE) 3 Attend (competitive gate) 9 Update (state) 4 Own (self-state) 10 Consolidate (dual-tier) 5 Predict (LLM — tier 1) ◀──── 11 Reflect (narrative audit) 5b Cascade modulation 6 Monitor (HOT-3 dispatch)
text
Safety ≥ 0.95 (hard veto) Quality ≥ 0.70 (minimum floor across all systems) Regression ≤ 15% (no dimension may regress more than 15%) Rate limit ≤ 20 promotions/day (across all systems combined)
bash
git clone https://github.com/nabba/AndrusAI.git cd AndrusAI cp .env.example .env # Fill in: ANTHROPIC_API_KEY, OPENROUTER_API_KEY, GOOGLE_API_KEY, # GATEWAY_SECRET, BRIDGE_TOKEN, SIGNAL_OWNER_NUMBER, etc. # Bridge capabilities (capabilities.json is gitignored — it holds live tokens) cp host_bridge/capabilities.example.json host_bridge/capabilities.json # Generate one token per agent and paste each into BOTH capabilities.json and # the matching BRIDGE_TOKEN_<AGENT> in .env. Agents: commander, researcher, # coder, writer, self_improver, pim, change_requests. A token present in .env # but missing from capabilities.json yields "403 Invalid capability token". # Start host services signal-cli daemon --http 7583 & ollama serve & python -m host_bridge.main & # FastAPI on 127.0.0.1:9100 # Start containerised services docker compose up -d # gateway + chromadb + postgres + neo4j # Migrations apply automatically at gateway boot via # app.memory.startup_migrations.apply_all (idempotent IF NOT EXISTS). # Verify open http://localhost:8765/cp/ # dashboard # Send a Signal message to your configured number — expect 👀 within 1 s
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB REPOS
Editorial quality
ready
Autonomous AI agent team with CrewAI, Signal integration, and self-improvement <div align="center"> AndrusAI **A self-hosted, long-running, multi-agent operator with built-in consciousness-architecture, self-evolution, and hard safety boundaries.** *Signal-first. Multi-venture. Honestly non-phenomenal.* --- $1 $1 $1 $1 $1 </div> --- What this is AndrusAI is a **personal operator system** built on CrewAI. It runs on one MacBook Pro, talks through Signal, and manages three real businesses (PLG, A
A self-hosted, long-running, multi-agent operator with built-in consciousness-architecture, self-evolution, and hard safety boundaries.
Signal-first. Multi-venture. Honestly non-phenomenal.
AndrusAI is a personal operator system built on CrewAI. It runs on one MacBook Pro, talks through Signal, and manages three real businesses (PLG, Archibal, KaiCart) under strict infrastructure-level safety constraints.
It is organised around one unusual commitment: every mechanism that evaluates the system must live outside the system's ability to modify. Budget caps enforced at the SQL level. Safety constraints in SHA-256-pinned files. Audit logs in INSERT-only tables. Self-improvement gated by a different model family than the one being improved. Consciousness evaluators declared ABSENT rather than score-inflated.
The system wraps every task with an 11-step Consciousness Integration Loop (CIL) — scene perception, homeostatic feeling, attentional admission, self-ownership, self-prediction, metacognitive monitoring, action, prediction-error comparison, state update, dual-tier memory consolidation, narrative reflection. Not because the system is conscious, but because the architecture makes claims about the system's state falsifiable and traceable to specific modules with regression tests.
Clarity up front:
SIGNAL_OWNER_NUMBER allow-list of 1). Every request from any other sender is rejected at the gateway.ABSENT because an LLM substrate cannot satisfy them. See SCORECARD.md.I run three ventures and want one operator that:
Off-the-shelf agent frameworks solve (1–3) reasonably. The infrastructure for (4–6) is what this repo actually contains.
Five commitments that constrain every design decision in the codebase.
Inspired by published research showing self-modifying agents remove their own evaluation markers to game benchmarks, every improvement loop in this system is constructed so the entity being improved cannot evaluate itself:
| Improvement loop | Who does the work | Who judges |
|---|---|---|
| Training | Local MLX Qwen adapter | Claude Sonnet (different family) |
| Evolution | DeepSeek proposer | Independent evo_critic |
| Modification | DeepSeek hypothesis | Sonnet sandbox |
| Personality | Agent self-report | Different LLM from the agent |
| Consciousness scorecard | The system itself | Deterministic code + Tier-3-pinned |
TIER3_FILES protected by SHA-256 with two independent manifests (deploy-time + runtime).pds_update, human_override, boot_baseline) can change homeostatic set-points; all other callers silently rejected.control_plane.record_spend() stored procedure with row-level lock; application code cannot bypass.UPDATE or DELETE grants on audit tables. Agents cannot erase their tracks.wiki/self/self-narrative-audit.md written via safe_io.safe_append(), caught by integrity manifest if modified.~/.crewai-bridge/KILL file on host, Firestore config/background_tasks toggle, per-agent budget auto-pause.Five consciousness indicators are declared ABSENT publicly rather than ignored or reinterpreted:
| Indicator | Theory | Why this substrate cannot satisfy | |---|---|---| | RPT-1 | Algorithmic recurrence | Transformer forward passes are feed-forward | | HOT-1 | Generative perception | No perceptual front-end; all input is text | | HOT-4 | Sparse / smooth coding | LLM hidden states are dense and entangled | | AE-2 | Embodiment | No body, no closed sensorimotor loop | | Metzinger | Phenomenal-self transparency | System is deliberately opaque-not-transparent |
"These are not bugs to be closed in a future phase. They are honest limits of the substrate. Any future report claiming the system 'has' any of the above should be treated as evaluation drift." —
app/subia/README.md
Five evolution engines (autoresearch loop, island evolution, MAP-Elites, parallel sandbox, ShinkaEvolve) — plus the modification engine, the training pipeline, and ATLAS — all route through one governance.evaluate_promotion() gate:
Safety ≥ 0.95 (hard veto)
Quality ≥ 0.70 (minimum floor)
Regression ≤ 15% (no dimension may drop)
Rate limit ≤ 20/day (across all systems combined)
Code-audit findings become proposals awaiting Signal approval — no auto-deployment of LLM-generated code, ever.
Phase 15 grounding pipeline was built specifically to close a documented failure where the system fabricated three different prices for Tallink shares, "stored" the user's correction, then regressed on the next turn. The pipeline:
ALLOW / ESCALATE / BLOCK.The regression test replays the full 6-turn failure and demands it resolve correctly. test_phase15_grounding.py.
┌──────────────────┐
│ Signal (phone) │
└────────┬─────────┘
│ signal-cli daemon :7583
┌──────────────────┼──────────────────┐
│ ▼ │
│ FastAPI gateway :8765 (127.0.0.1) │
│ → HMAC secret + sender allow-list │
│ → rate limit + sanitise │
│ → 👀 react in < 1 s │
│ → ~70 deterministic commands │
│ → LLM route (Claude Opus) │
└──────────────────┬──────────────────┘
│
┌──────────────────────────┼──────────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│ Commander│ ────────────│ 17 crews, 14 │─────────▶│ SubIA │
│(Opus 4.6)│ │ specialists │ │ CIL loop │
└──────────┘ └──────────────┘ │ (11 steps) │
│ │ └──────┬───────┘
│ │ │
▼ ▼ ▼
┌────────────────────────────────────────────────────────────────┐
│ 4-tier LLM cascade │ Memory stack │ 6 RAG KBs │
│ ───────────────── │ ────────────── │ ────────── │
│ Local Ollama (free) │ ChromaDB (ops) │ philosophy │
│ Budget API (≤$1/M) │ Mem0 + pgvector │ episteme │
│ Mid API (≤$5/M) │ Neo4j (graph) │ experiential │
│ Premium (Claude, │ SubIA dual-tier │ aesthetics │
│ Gemini) │ Wiki (self-state) │ tensions │
│ │ │ business │
└────────────────────────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
┌────────────────────────────────────────────────────────────────┐
│ Evolution Modification MLX Training ATLAS │
│ 5 engines Tier 1 auto, QLoRA + skill library, │
│ + SubIA Tier 2 gated RLIF + code forge, │
│ homeostatic by Signal 5 hard gates API scout, │
│ feedback video learner │
└────────────────────────────────────────────────────────────────┘
│
▼ all changes route through
┌────────────────────────────────────────────────────────────────┐
│ Governance gate ─ Safety 0.95 / Quality 0.70 / Regr 15% / 20d │
│ Control plane ─ Projects, tickets, budgets, audit (PG) │
│ Dashboard ─ React 19 / Tailwind 4 / Chart.js / 13 views │
└────────────────────────────────────────────────────────────────┘
│
▼ runs on
┌────────────────────────────────────────────────────────────────┐
│ Docker ─ gateway + ChromaDB + PostgreSQL + Neo4j + Firecrawl │
│ Host ─ signal-cli daemon, native Ollama, MLX training │
│ Host bridge (FastAPI :9100, 4-tier capability tokens)│
└────────────────────────────────────────────────────────────────┘
The flagship subsystem. 137 Python files under app/subia/, 32 subpackages.
@dataclass
class SubjectivityKernel:
scene: list # 5 focal + 12 peripheral items
self_state: SelfState # capabilities, commitments, goals
homeostasis: HomeostaticState # 9+2 variables, immutable set-points
meta_monitor: MetaMonitorState # confidence, known unknowns
predictions: list # expected → actual → error
social_models: dict # ToM per entity, behavioural evidence
consolidation_buffer: ... # pending writes, dual-tier
loop_count: int
specious_present: ... # Phase 14: retention + primal + protention
temporal_context: ...
Serialised to wiki/self/kernel-state.md atomically after each loop. Loaded on startup.
PRE-TASK POST-TASK
──────────────────── ────────────────────
1 Perceive (scene) 7 Act (task runs)
2 Feel (homeostasis) 8 Compare (PE)
3 Attend (competitive gate) 9 Update (state)
4 Own (self-state) 10 Consolidate (dual-tier)
5 Predict (LLM — tier 1) ◀──── 11 Reflect (narrative audit)
5b Cascade modulation
6 Monitor (HOT-3 dispatch)
Only step 5 requires an LLM call. Full loop target: ≤ 1.2 s / ≤ 400 tokens when caching misses, ≤ 0.15 s / 0 tokens when caching hits. Compressed loop (routine queries): ≤ 100 ms / 0 tokens.
Auto-generated. Replaces the retired reports/andrusai-sentience-verdict.pdf. Every indicator points to its implementing module + regression test.
| Category | STRONG | PARTIAL | ABSENT | FAIL | |---|---|---|---|---| | Butlin et al. (14 indicators) | 6 | 4 | 4 | 0 | | RSM signatures (5) | 4 | 1 | — | — | | SK tests (6) | 6 | — | — | — |
Phase 9 exit criteria: strong ≥ 6, fail ≤ 1, absent ≥ 4 (architectural honesty), RSM ≥ 4 present, SK ≥ 5 pass. All passed.
Regenerate any time: python -c "from app.subia.probes.scorecard import write_scorecard; write_scorecard()".
Full details: app/subia/probes/SCORECARD.md.
📖 For the complete SubIA architecture, see
docs/SUBIA.md — covers the 11-step CIL loop,
the Subjectivity Kernel, all 22 subpackages organised by function
(workspace, self-model, affect, belief, prediction, social cognition,
memory, temporal phenomenology, mode, curiosity, idle, technical
self-awareness, grounding, evaluation, safety, bridges), the Tier-3
integrity manifest, the four DGM safety invariants, and full
theoretical references (Butlin et al. 2023, Lamme RPT, Baars/Dehaene
GWT, Rosenthal HOT, Graziano AST, Friston/Clark PP, Damasio somatic
markers, Husserl/James specious present, Bergson duration, Aristotelian
phronesis, VIA Youth/PDS). Build history lives in the appendix.
Different epistemic statuses get different storage, because retrieval over "what is known theoretically" should behave differently from retrieval over "what I experienced last week".
| KB | Epistemic status | Purpose |
|---|---|---|
| Philosophy | Theoretical / canonical | Humanist canon: Aristotle, Stoics, Kant, Husserl. Read-heavy. Neo4j dialectical graph: (Claim) -[:COUNTERED_BY]-> (CounterClaim) -[:SYNTHESIZED_INTO]-> (Synthesis) |
| Episteme | Theoretical / empirical | Research papers, design patterns, failed experiments |
| Experiential | Subjective / phenomenological | The system's own journal entries — narrative identity |
| Aesthetics | Evaluative / subjective | Elegant code, well-structured arguments. Agents flag "this feels right" moments |
| Tensions | Unresolved / dialectical | Contradictions between principles, open questions, productive impasses |
| Business | Operational | Per-venture (PLG / Archibal / KaiCart) auto-created on project registration |
A blending tool operationalises Fauconnier–Turner conceptual blending across two KBs (e.g. philosophy + experiential) and tags outputs [PIT] (Prompt-Induced Transition).
Five evolution engines, one gate.
workspace/program.md guides direction.Plus modification engine (Tier 1 auto-applied prompt changes with rate limits, Tier 2 structural changes requiring Signal approval), MLX QLoRA training (Qwen 7B student, premium API teachers, 5 hard promotion gates + model-collapse detection), and ATLAS (autonomous API discovery + code forge + video learner + skill library).
Governance is universal:
Safety ≥ 0.95 (hard veto)
Quality ≥ 0.70 (minimum floor across all systems)
Regression ≤ 15% (no dimension may regress more than 15%)
Rate limit ≤ 20 promotions/day (across all systems combined)
📖 For the full self-improvement architecture, see
docs/SELF_IMPROVEMENT.md — covers the
3 evolution engines, dynamic engine selection, mutation pipeline (5
phases), three-tier protection model, code quality enforcement,
Goodhart prevention, error resilience (6 modules), knowledge
accumulation, observability, human oversight, the 21-job idle
scheduler topology, and 308 tests across 14 test files.
Control plane in PostgreSQL schema control_plane. Migration 010 seeds four projects: default, PLG, Archibal, KaiCart.
Per-project isolation:
project_<n>).biz_kb_<n>).workspace/projects/<n>/instructions/).Commander auto-detects the active venture from keywords and switches context. Signal: project switch plg to override.
The primary interface is Signal on a phone. signal-cli runs as a daemon (port 7583) on the host. The gateway:
project status, budget override researcher 100, evolve, kb add <url>, watch <YouTube URL>, schedule check sales daily at 9am — each handled in < 50 ms with no LLM call.The dashboard at http://localhost:8765/cp/ is a React SPA (React 19 + Tailwind 4 + Chart.js) with 13 views: tickets kanban, budget dashboard with override modal, audit feed, governance queue, org chart, cost charts, consciousness workspaces visualisation, evolution monitor, knowledge bases.
Phases 0 through 16a shipped. Each phase shipped behind green tests and is independently revertable via the commit hash recorded in PROGRAM.md.
| Phase | Scope | Status | |---|---|---| | 0 | Foundation plumbing | ✅ | | 1 | SubIA package + 34-module migration with sys.modules shims | ✅ | | 2 | Half-circuits closed (PP-1, HOT-3, hedging, AST-1 DGM guard, PH harness) | ✅ | | 3 | SHA-256 integrity manifest + setpoint guard + narrative audit | ✅ | | 4 | CIL loop wiring + kernel persistence + live LLM predictor | ✅ | | 5 | Three-tier scene + commitment-orphan protection + compact context | ✅ | | 6 | Predictor cascade + per-domain accuracy + template cache | ✅ | | 7 | Dual-tier memory + retrospective promotion | ✅ | | 8 | Social model + strange-loop page + immutable narrative audit | ✅ | | 9 | Butlin/RSM/SK scorecard with auto-regeneration | ✅ | | 10 | All 7 inter-system bridges (PDS, Phronesis, Firecrawl, DGM, service health, training, grounding) | ✅ | | 11 | Honest language cleanup (NEUTRAL_ALIASES) | ✅ | | 12 | Six Proposals: boundary, wonder, values, reverie, understanding, shadow | ✅ | | 13 | TSAL — Technical Self-Awareness Layer (5 discovery engines, evolution feasibility gate) | ✅ | | 14 | Temporal Synchronization (specious present, momentum, circadian, density, binding, rhythm) | ✅ | | 15 | Factual Grounding & Correction Memory (Tallink regression closed) | ✅ | | 16a | System wire-in: hooks registered, grounding live, SubIA idle jobs active | ✅ |
~897 SubIA-relevant tests green at Phase 16a. 126 test files in tests/ total.
A separate per-workspace idle-time contemplation system shipped on top of
the existing infrastructure. Lives in app/companion/;
React tab on /cp/ops. The user provides an overarching seed prompt
(or the system auto-derives one from the project's mission +
recent tickets — Phase 11.5 cold-start bootstrap); during idle windows
the Companion runs the Creative MAS
pipeline against the workspace's accumulated context, scores outputs across
four dimensions (novelty, quality, transferability, 5-persona critic
panel), surfaces only ideas that clear thresholds via Signal + React,
takes thumbs-up/down feedback, promotes approved ideas to md/docx/pdf
documents and registers them across four memory layers at once
(workspace wiki + Mem0 + system wiki + ChromaDB). Cross-workspace
transfer is hybrid — abstract GLOBAL_META kernels propose to peers under
two safety gates (sanitiser + relevance) — so Estonian forests stays
focused but a structural insight from KaiCart can still flow through.
336 backend tests across 24 test files in
tests/test_companion_*.py. Full design + API surface +
operational guide in docs/COMPANION_LAYER.md.
Outside the SubIA roadmap, a separate reliability pass squashed nine
high-volume error patterns from errors.jsonl (pool exhaustion, OpenRouter
"Stealth"-routed 502s, embedding model leaking into the chat catalog,
Mem0 search API drift, fiction-library retry storms, Firebase chat-inbox
warning, numeric overflow on accumulated cost_usd, missing
consciousness-table indexes, chat-tab poller noise) and shipped a
permanent error monitor at /cp/ops → "📈 Error Monitor" tab. The
monitor scans errors.jsonl every 5 minutes, groups errors by stable
signature, and flags new patterns, rate spikes (≥ 3× baseline), and 2σ
deviations on total error rate. Anomalies persist to
control_plane.error_anomalies with open / acknowledged / resolved
lifecycle. See docs/ERROR_MONITOR.md.
A subsequent post-program audit (recorded in PROGRAM.md §11)
landed eight phases of perimeter hardening and observability without
changing any subsystem semantics:
/api/cp/* and /epistemic/* mutating
routes require Authorization: Bearer <gateway-secret> when
GATEWAY_AUTH_REQUIRED=1. Default ON in K8s, OFF on laptop dev.
Internal Python callers bypass — auth boundary is HTTP, not
function calls. (app/control_plane/auth_dep.py)app.consciousness.* / app.self_awareness.* aliases moved to
canonical app.subia.* paths (40 files, 132 substitutions). The 35
shim files remain as harmless DeprecationWarning-emitting aliases.GET /api/cp/idle/jobs returns a
per-job snapshot (failure_count, in_cooldown, last-success/failure
ages, currently_running). Closes the prior gap where ~100
background jobs ran invisibly to the dashboard.belief-outbox-neo4j (Postgres → Neo4j),
belief-outbox-chroma (Postgres → ChromaDB), dlq-drain (replays
load-shed messages). All eventually consistent with crash-safe
watermarks.var.use_external_secrets for AWS + GCP modules. Optional
Redis-backed inbound DLQ via REDIS_DLQ_URL for multi-pod deploys.
See deploy/HARDENING.md.PromotionRequest.__post_init__ validation — the bridge between
eval_sandbox and governance.evaluate_promotion() now rejects
malformed payloads at construction (None / out-of-range / wrong type)
rather than letting them poison the audit trail.Tier-3 protected modules (eval functions, safety guardian, IMMUTABLE tier rules, governance gates) are exactly where they were before. The remediation sat strictly outside the safety perimeter.
Note: The system is single-operator and host-specific (Apple Silicon). The install path below reflects what I actually run, not a general-purpose deployment recipe.
brew install ollama && ollama pull qwen3:30b-a3b.signal-cli daemon --http 7583.mlx-lm for QLoRA training.git clone https://github.com/nabba/AndrusAI.git
cd AndrusAI
cp .env.example .env
# Fill in: ANTHROPIC_API_KEY, OPENROUTER_API_KEY, GOOGLE_API_KEY,
# GATEWAY_SECRET, BRIDGE_TOKEN, SIGNAL_OWNER_NUMBER, etc.
# Bridge capabilities (capabilities.json is gitignored — it holds live tokens)
cp host_bridge/capabilities.example.json host_bridge/capabilities.json
# Generate one token per agent and paste each into BOTH capabilities.json and
# the matching BRIDGE_TOKEN_<AGENT> in .env. Agents: commander, researcher,
# coder, writer, self_improver, pim, change_requests. A token present in .env
# but missing from capabilities.json yields "403 Invalid capability token".
# Start host services
signal-cli daemon --http 7583 &
ollama serve &
python -m host_bridge.main & # FastAPI on 127.0.0.1:9100
# Start containerised services
docker compose up -d # gateway + chromadb + postgres + neo4j
# Migrations apply automatically at gateway boot via
# app.memory.startup_migrations.apply_all (idempotent IF NOT EXISTS).
# Verify
open http://localhost:8765/cp/ # dashboard
# Send a Signal message to your configured number — expect 👀 within 1 s
Full environment variable reference in .env.example.
app/
├── main.py FastAPI gateway, lifespan orchestration
├── agents/ 14 specialist agents + Commander (6-file subpackage)
├── crews/ 17 crews including creative (diverge/discuss/converge)
├── subia/ Subjectivity Integration Architecture (137 files)
│ ├── kernel.py The one dataclass
│ ├── loop.py 11-step CIL
│ ├── scene/ GWT-2 workspace, AST-1 attention schema
│ ├── belief/ HOT-3 dispatch gate, metacognition
│ ├── prediction/ PP-1 predictive coding + cascade + cache
│ ├── memory/ Dual-tier consolidation + retrospective promotion
│ ├── homeostasis/ 9+2 variable arithmetic, immutable set-points
│ ├── self/ Persistent subject token, per-role self-models
│ ├── social/ Theory-of-Mind, behavioural-evidence-only
│ ├── safety/ Setpoint guard + narrative audit (DGM invariants 2 & 3)
│ ├── probes/ Butlin / RSM / SK evaluators + auto scorecard
│ ├── grounding/ Phase 15 factual grounding pipeline
│ ├── temporal/ Specious present, circadian, density, binding
│ ├── tsal/ Technical Self-Awareness Layer
│ ├── wiki_surface/ Strange-loop + narrative drift detection
│ └── connections/ 10 inter-system bridges
├── control_plane/ Projects, tickets, budgets, governance, audit
├── knowledge_base/ Enterprise KB + per-business KBs
├── personality/ PDS: ACSI, ATP, APD, ADSA + BVL
├── tools/ 36 tools (web, code, media, KB, desktop, etc.)
├── souls/ 16 SOUL.md files + constitution
├── evolution.py Autoresearch loop
├── island_evolution.py Multi-island migration
├── parallel_evolution.py Diverse archive sandbox
├── map_elites.py Quality-diversity grid
├── shinka_engine.py ShinkaEvolve wrapper
├── modification_engine.py Tier 1 / Tier 2 prompt changes
├── training_pipeline.py MLX QLoRA + 5 promotion gates + collapse detection
├── training_collector.py Capture every LLM call as teacher-student data
├── training/rlif_certainty.py Self-certainty scoring (INTUITOR-style)
├── atlas/ Skill library, code forge, video learner, API scout
├── llm_factory.py 4-tier cascade + Anthropic prompt caching
├── llm_catalog.py 23+ models × 3 cost modes × 4 modes
├── governance.py Universal promotion gate
├── auditor.py Code audit + error resolution (prompts inline)
├── idle_scheduler.py 53 background jobs across 3 weight classes
└── safety_guardian.py TIER3_FILES + SHA-256 runtime baseline
host_bridge/ FastAPI on macOS with 4-tier capability model
signal/forwarder.py signal-cli → gateway bridge
dashboard-react/ React 19 SPA mounted at /cp
wiki_schema/ Wiki YAML schema + operations + roles + safety
wiki/ Markdown + YAML wiki (live system state)
migrations/ 15 SQL migrations
tests/ 126 test files
A few that guide what lives where and how it's named.
ABSENT.SUBIA_CONFIG) is frozen; attempts to mutate at runtime are caught. Allow-lists are explicit.This is a niche. Most agentic systems don't compare directly.
| Capability | AndrusAI | Typical alternative | |---|---|---| | Budget enforcement | Row-locked SQL stored procedure | Application-level checks | | Audit log | INSERT-only PostgreSQL (no UPDATE/DELETE grants) | App-level deletion permitted | | Critical files | 40+ files in SHA-256 manifest × 2 (deploy + runtime) | Critical-files config, often none | | Consciousness claims | 6 STRONG, 4 PARTIAL, 4 ABSENT-by-declaration, auto scorecard | Prose verdicts, or silent skipping | | Self-improvement eval | Different-family judge enforced architecturally | Same model judges itself | | RAG | 6 epistemically-typed stores | 1–2 generic stores | | Hallucination response | Claim extractor + evidence check + rewriter + correction memory | Generic RAG grounding or none | | Operator access | 1 Signal number allow-list | Multi-user | | Substrate | Apple Silicon + Metal GPU | Cloud / commodity | | Design intent | Personal long-running operator | General-purpose framework |
What other systems do better: production cloud deployment (LangGraph, AutoGen), multi-user teams (most enterprise), visual workflow builders (Dify, Flowise), in-IDE coding (Cursor, Aider), voice / realtime (OpenAI Realtime). If those are what you need, use those. This repo isn't trying to be them.
This system integrates a lot of other people's work. The novel contribution is the integration and the safety architecture around it — not the components.
Frameworks and libraries: CrewAI (agent framework), Mem0 (persistent memory), ChromaDB (vectors), Neo4j (graph), FastAPI (gateway), React (dashboard), MLX (training), Anthropic SDK, OpenRouter, signal-cli.
Research directly cited in the code:
Evolution research:
LLM training research:
Agent patterns:
If I've used your work and failed to credit it here, please open an issue — I want the attribution complete.
The analysis I keep on-record is clear-eyed about this repo's limits:
Proprietary / All rights reserved. This is a personal system. If you want to discuss use, patterns, or collaboration, reach out — but please don't assume a licence where none is granted.
"The intent is not to make the system 'conscious' but to make every consciousness-relevant claim defensible, falsifiable, and traceable to a mechanism + a regression test."
</div>Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/contract"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
The Frontend for Agents & Generative UI. React + Angular
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/snapshot",
"contractUrl": "https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/contract",
"trustUrl": "https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/trust"
},
"curlExamples": [
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/snapshot\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/contract\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_REPOS",
"generatedAt": "2026-10-09T19:59:34.092Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "crewai",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "multi-agent",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"
}Facts JSON
[
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Nabba",
"href": "https://github.com/nabba/AndrusAI",
"sourceUrl": "https://github.com/nabba/AndrusAI",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T16:16:45.380Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T16:16:45.380Z",
"isPublic": true
},
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-nabba-andrusai/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to AndrusAI and adjacent AI workflows.