How smfworks/praxis-prime works
Praxis Prime is a local-first governed AI agent. The main workflow starts with a CLI or gateway request, runs through the agent loop, routes model calls, checks tool actions against policy and approvals, and returns a response; consequential actions wait for human approval. The README also documents coding mode, Telegram, a local decision engine, memory, audit, and optional compliance dials. Several subsystem links rely on README-level architecture or SOURCE INDEX references; unsampled internals and stub features are represented cautiously.
Main entry points: engine.py Agent loop · cli.py CLI · server.py Loopback gateway · session.py Coding mode
Components 23
Entry points
- CLI
packages/prime-core/praxis_prime/cli.py - Interactive chat
packages/prime-core/praxis_prime/repl.py - Loopback gateway
packages/prime-core/praxis_prime/gateway/server.py - Telegram channel
packages/prime-core/praxis_prime/channels/telegram.py
Agent runtime
- Runtime setup
packages/prime-core/praxis_prime/runtime.py - Agent loop
packages/prime-core/praxis_prime/loop/engine.py - Prompt and events
packages/prime-core/praxis_prime/loop/prompt.py - Memory store
packages/prime-core/praxis_prime/memory/store.py - Session state
packages/prime-core/praxis_prime/state.py
Governance
- Audit log
packages/prime-core/praxis_prime/audit/log.py - Policy engine
packages/prime-core/praxis_prime/policy/engine.py - Approval gate
packages/prime-core/praxis_prime/approvals/gate.py - Approval queue
packages/prime-core/praxis_prime/approvals/queue.py - Decision engine
packages/prime-core/praxis_prime/decide/engine.py
Models and tools
- Model router
packages/prime-core/praxis_prime/router/router.py - Model provider
- Tool registry
packages/prime-core/praxis_prime/tools/registry.py - Shell sandbox
packages/prime-core/praxis_prime/sandbox/bwrap.py
Product capabilities
- Coding mode
packages/prime-core/praxis_prime/coding/session.py - Git worktrees
packages/prime-core/praxis_prime/coding/worktree.py - Compliance dials
packages/prime-core/praxis_prime/policy/dials.py - NC jurisdiction pack
packs/jurisdictions/nc.py
Other components
- User
Connections 25
- User → CLI: starts request
- CLI → Interactive chat: opens chat
packages/prime-core/praxis_prime/cli.py - CLI → Runtime setup: creates runtime
packages/prime-core/praxis_prime/cli.py - CLI → Coding mode: starts coding
packages/prime-core/praxis_prime/cli.py - User → Loopback gateway: sends request
- Loopback gateway → Agent loop: dispatches turns
- Telegram channel → Loopback gateway: uses protocol
packages/prime-core/praxis_prime/channels/telegram.py - Telegram channel → Approval queue: presents approvals
packages/prime-core/praxis_prime/channels/telegram.py - Runtime setup → Agent loop: provides runtime
packages/prime-core/praxis_prime/coding/session.py - Agent loop → Model router: requests completion
packages/prime-core/praxis_prime/loop/engine.py - Model router → Model provider: streams tokens
- Agent loop → Prompt and events: builds prompts
packages/prime-core/praxis_prime/loop/engine.py - Agent loop → Tool registry: dispatches tools
packages/prime-core/praxis_prime/loop/engine.py - Agent loop → Policy engine: checks actions
packages/prime-core/praxis_prime/loop/engine.py - Agent loop → Approval gate: authorizes actions
packages/prime-core/praxis_prime/loop/engine.py - Loopback gateway → Approval queue: serves approvals
packages/prime-core/praxis_prime/gateway/server.py - Agent loop → Memory store: reads and writes
packages/prime-core/praxis_prime/loop/engine.py - Memory store → Session state: persists data
packages/prime-core/praxis_prime/memory/store.py - Audit log → Session state: stores audit
packages/prime-core/praxis_prime/audit/log.py - Tool registry → Shell sandbox: runs shell safely
- Coding mode → Git worktrees: creates worktree
packages/prime-core/praxis_prime/coding/session.py - Coding mode → Agent loop: runs coding task
packages/prime-core/praxis_prime/coding/session.py - Agent loop → Decision engine: screens requests
packages/prime-core/praxis_prime/loop/engine.py - Policy engine → Compliance dials: applies active dials
packages/prime-core/praxis_prime/policy/engine.py - Compliance dials → NC jurisdiction pack: includes pack