Local-first AI assistant β’ Coding workbench β’ Validation engine β’ Homelab automation platform
AgentX is a private, local-first AI control center built for a serious homelab workflow.
It combines a FastAPI backend, React/Vite web UI, Ollama model routing, workspace/archive analysis, validation tooling, project memory, GitHub-tracked patch workflows, and a growing browser-based coding workbench.
AgentX is designed around one practical goal:
Give a local AI assistant real project awareness, workspace tools, validation checks, model routing, and safe patch workflows β without depending on cloud infrastructure.
| Item | Value |
|---|---|
| π© Latest release | v0.3.1-v13 |
| π·οΈ Release name | AgentX V12 β Workbench UX and Patch Workflow Polish |
| π§± Previous baseline | v0.2.7-v9 |
| π Web UI | http://localhost:5173 |
| π API docs | http://localhost:8000/docs |
| β€οΈ Health endpoint | http://localhost:8000/v1/health/full |
| π§ͺ Smoke test | ./scripts/smoke-test-v10.sh |
AgentX V10 adds the first real operational visibility layer.
- β€οΈ Full backend health endpoint:
/v1/health/full - π₯οΈ Frontend Health dashboard
- π§ Runtime memory ignore rules
- π·οΈ Synced V10 frontend release metadata
- π§ͺ End-to-end smoke-test script
- π Live checks for API, Ollama, workspaces, validation, warnings, and errors
- API root
/v1/status/v1/health/full- Web UI response
- Python
compileall - Frontend TypeScript typecheck
- Frontend Vitest tests
- Frontend production build
| Area | Description |
|---|---|
| π¬ Chat | Chat with local/configured AI models |
| π§ Memory | Store and use project-local memory/context |
| π§° Workbench | Import, inspect, and analyze workspaces/archives |
| π§ͺ Validation | Run presets and validate patch candidates |
| π₯οΈ Code UI | Use scripts, code canvas, and frontend workspaces |
| π€ Model routing | Use Ollama endpoints for fast/heavy local model paths |
| β€οΈ Health | See live API/runtime/Ollama/workspace status |
| π‘οΈ Guardrails | Runtime safety checks and validation-first workflows |
| π§Ύ Git tracking | Commit/push patch work into GitHub cleanly |
| π Homelab ops | Built around a private VM/LAN deployment model |
flowchart TB
User[π€ User / Browser] --> Web[π₯οΈ AgentXWeb<br/>React + Vite]
Web --> API[β‘ AgentX API<br/>FastAPI]
API --> Chat[π¬ Chat Routes]
API --> Health[β€οΈ /v1/health/full]
API --> Runtime[π§ Runtime Routes]
API --> Models[π€ Model Ops]
API --> Workbench[π§° Workbench Routes]
API --> Validation[π§ͺ Validation Runner]
API --> Memory[π§ Project Memory / RAG]
API --> GitHub[π GitHub Routes]
Models --> OllamaFast[β‘ Ollama Fast<br/><your-ollama-host>:11434]
Models --> OllamaHeavy[ποΈ Ollama Heavy<br/><your-ollama-host>:11435]
Workbench --> Analyzer[π Archive Analyzer]
Validation --> Guardrails[π‘οΈ Runtime Guardrails]
Memory --> Data[(π¦ Local Runtime Data)]
AgentX/
βββ AgentX/ # Core Python project package area
β βββ agentx/ # Canonical lowercase Python package
β βββ cli/ # CLI entrypoints
β βββ core/ # Core assistant/runtime logic
β βββ install/ # Install/bootstrap helpers
β βββ jobs/ # Job planning/running helpers
β βββ learning/ # Learning/hint helpers
β βββ plugins/ # Plugin system
β βββ runtime/ # Runtime bootstrap/services
β βββ skills/ # Skill support
β βββ tools/ # Tool support
β βββ workbench/ # Archive/workspace analysis tools
β
βββ AgentXWeb/ # React/Vite frontend
β βββ public/ # Static runtime config and workspace page
β βββ src/
β βββ api/ # API client
β βββ config.ts # Frontend config/runtime metadata
β βββ ui/ # Main UI
β
βββ apps/
β βββ api/
β βββ agentx_api/ # FastAPI backend
β β βββ routes/ # API routes
β β βββ data/ # Runtime API data
β β βββ runtime_guard.py # Runtime guardrails
β β βββ validation_runner.py
β βββ tests/ # Backend tests
β
βββ scripts/ # Install, repair, smoke-test scripts
βββ readme/ # Supplemental/patch-specific README archive
βββ CHANGELOG.md # Release notes
βββ README.md # Main project overview
β οΈ The canonical Python package is lowercase:AgentX/agentx/. Do not recreate the old stale uppercase duplicateAgentX/AgentX/.
AgentXWeb is the main browser interface.
| Mode | Purpose |
|---|---|
| β Command | Chat and command surface |
| β Drafts | Draft/code workspace actions |
| β Memory | Project memory and knowledge |
| β Scripts | Saved/generated code artifacts |
| β Models | Ollama/model status and selection |
| β¦ Health | V10 runtime health dashboard |
| β Validate | Workspace validation and patch candidate checks |
| β£ Workspaces | Uploaded archives and sandbox workspaces |
| β GitHub | Repository/update controls |
| β― Settings | Assistant and UI configuration |
The backend is a FastAPI service located at:
apps/api/agentx_api/
Important routes:
| Route | Purpose |
|---|---|
/v1/status |
Basic API/model status |
/v1/health/full |
Full V10 health report |
/v1/chat |
Chat endpoint |
/v1/runtime |
Runtime diagnostics/actions |
/v1/model-ops |
Model/Ollama operations |
/v1/workbench |
Archive/workspace workbench routes |
/v1/validation |
Validation presets/runs/patch candidates |
/v1/qol |
Quality-of-life helper routes |
/v1/settings |
AgentX settings |
/v1/threads |
Thread storage |
/v1/projects |
Project records |
/v1/scripts |
Saved scripts/artifacts |
/v1/rag |
RAG/project knowledge routes |
/v1/github |
GitHub status/update routes |
V10 adds:
GET /v1/health/full
Example:
curl -s http://127.0.0.1:8000/v1/health/full | python3 -m json.toolThe Health dashboard reports:
- AgentX version
- API service status
- API host/port
- Auth status
- Rate-limit status
- Git branch
- Git commit
- Python version
- Ollama endpoint status
- Workspace path status
- Thread/project/script directory status
- Validation availability
- Warnings
- Errors
sequenceDiagram
participant UI as AgentXWeb Health Page
participant API as FastAPI /v1/health/full
participant Config as Runtime Config
participant Ollama as Ollama Endpoint
participant FS as Workspace/Data Paths
participant Git as Git Repository
UI->>API: GET /v1/health/full
API->>Config: Collect runtime diagnostics
API->>Ollama: TCP reachability check
API->>FS: Exists/writable checks
API->>Git: Branch + commit
API-->>UI: Full health JSON
UI-->>UI: Render cards, warnings, errors
AgentX is designed to use local Ollama endpoints.
Current homelab convention:
| Slot | Endpoint | Purpose |
|---|---|---|
| β‘ Default/Fast | http://localhost:11434 |
Fast local model path |
| ποΈ Heavy | http://localhost:11435 |
Larger/heavier model path |
The Health dashboard reports endpoint reachability, host, port, latency, and errors.
Workbench files live under:
AgentX/agentx/workbench/
Key files:
analyzer.py
archive_workspace.py
playground.py
The workbench analyzer can:
- Import ZIP/archive projects
- Safely extract files
- Build project inventories
- Detect file types
- Skip noisy folders like
.git,node_modules,venv,dist, andbuild - Scan Python/JSON/XML syntax
- Detect possible risky code patterns
- Detect stubs, TODOs, and converted-code markers
- Generate JSON analysis reports
- Generate Markdown final reports
flowchart LR
Zip[π¦ Uploaded ZIP] --> Extract[ποΈ Safe Extract]
Extract --> Inventory[π File Inventory]
Inventory --> Syntax[π§ͺ Syntax Checks]
Inventory --> Risk[β οΈ Risk Pattern Scan]
Inventory --> Stub[π§± Stub/TODO Detection]
Syntax --> Reports[π JSON + Markdown Reports]
Risk --> Reports
Stub --> Reports
AgentX includes validation tooling for workspaces and patch candidates.
Backend files:
apps/api/agentx_api/routes/validation.py
apps/api/agentx_api/validation_runner.py
apps/api/agentx_api/runtime_guard.py
Frontend page:
AgentXWeb/src/ui/pages/ValidationPage.tsx
The validation system supports:
- Workspace selection
- Validation presets
- Validation run history
- Patch candidate validation
- Repair packet generation
- Result summaries
- Copyable validation output
AgentX is built around validation-first workflows.
Runtime guardrail direction:
- Keep powerful operations explicit
- Track request context
- Add rate-limiting support
- Avoid silent destructive actions
- Make patch/validation workflows auditable
- Prefer preview + validation before applying changes
Guardrail-related files:
apps/api/agentx_api/runtime_guard.py
apps/api/tests/test_runtime_guardrails.py
Current homelab deployment:
| Item | Value |
|---|---|
| VM IP | <your-agentx-host> |
| Web UI | http://localhost:5173 |
| API docs | http://localhost:8000/docs |
| Health | http://localhost:8000/v1/health/full |
Systemd services:
agentx-api.service
agentx-web.service
Check status:
sudo systemctl status agentx-api.service --no-pager
sudo systemctl status agentx-web.service --no-pagerRestart:
sudo systemctl restart agentx-api.service agentx-web.serviceLogs:
journalctl -u agentx-api.service -n 100 --no-pager
journalctl -u agentx-web.service -n 100 --no-pagerRun the V10 smoke test:
./scripts/smoke-test-v10.shThe smoke test checks:
| Step | Check |
|---|---|
| 1 | API root |
| 2 | /v1/status |
| 3 | /v1/health/full |
| 4 | Web UI response |
| 5 | Python compileall |
| 6 | Frontend typecheck + tests |
| 7 | Frontend production build |
Expected ending:
AgentX V10 smoke test passed.
Install dependencies:
cd AgentXWeb
npm installTypecheck:
npm run typecheckRun tests:
npm testBuild production bundle:
npm run buildRun dev server:
npm run dev -- --host 0.0.0.0 --port 5173Current frontend package:
agentx-web@0.2.8-v10
Syntax validation:
python3 -m compileall AgentX/agentx apps/api/agentx_api apps/api/testsManual API run:
cd ~/projects/AgentX
source .venv/bin/activate
uvicorn agentx_api.app:create_app --factory --host 0.0.0.0 --port 8000Backend tests require pytest:
python3 -m pip install pytest
python3 -m pytest apps/api/tests -qFuture work should add a proper backend dev dependency file.
The root README.md is reserved for the main AgentX project overview.
Patch-specific and feature-specific README files belong in:
readme/
Examples:
readme/README-V9.md
readme/README_AGENTX_QOL_WORKSPACES.md
readme/README_AUTO_PATCH_PREVIEW_BRIDGE.md
readme/README_FRONTEND_ARCHIVE_WORKBENCH.md
readme/README_WORKSPACE_VALIDATION.md
readme/README_OLLAMA_FIX.md
Repository:
https://github.com/unbridledpc/AgentX
Recommended workflow:
git checkout main
git pull origin main
git checkout -b feature/my-featureAfter changes:
git status --short
./scripts/smoke-test-v10.sh
git add <files>
git commit -m "Describe the change"
git push -u origin feature/my-featureMerge when validated:
git checkout main
git pull origin main
git merge --no-ff feature/my-feature -m "Merge my feature"
git push origin main| Tag | Description |
|---|---|
v0.2.7-v9 |
Workbench stabilization and validation baseline |
v0.3.1-v13 |
Health dashboard and smoke-test release |
Create a tag:
git tag -a v0.3.1-v13 -m "AgentX V10 health dashboard and smoke-test release"
git push origin v0.3.1-v13gantt
title AgentX Stabilization Timeline
dateFormat YYYY-MM-DD
axisFormat %b %d
section V9
Workbench stabilization :done, v9a, 2026-05-04, 1d
Validation baseline :done, v9b, 2026-05-04, 1d
Git cleanup :done, v9c, 2026-05-04, 1d
section V10
Health endpoint :done, v10a, 2026-05-05, 1d
Health dashboard :done, v10b, 2026-05-05, 1d
Release metadata sync :done, v10c, 2026-05-05, 1d
Smoke test :done, v10d, 2026-05-05, 1d
section Next
CI and backend tests :active, v11, 2026-05-06, 2d
Workbench UX polish :v12, 2026-05-08, 3d
Added:
/v1/health/full- Frontend Health dashboard
- Runtime health display
- Ollama endpoint checks
- Workspace writability checks
- Validation availability display
- V10 release metadata sync
.env.example- Runtime memory ignore rules
scripts/smoke-test-v10.sh
Validated:
- API root
- API status
- Full health endpoint
- Web UI
- Python compileall
- Frontend typecheck
- Frontend tests
- Frontend production build
Added/stabilized:
- AgentXWeb typecheck/build gate
- Workbench/archive analyzer backend
- Runtime/model/QoL/validation/workbench API routes
- Runtime guardrails
- Validation runner
- Frontend workspace/validation UI
- Docs and installer scripts
.gitignorecleanup- Clean GitHub-tracked V9 baseline
Frontend production builds may show:
Some chunks are larger than 500 kB after minification.
This is currently non-blocking. A future release should add code-splitting or route-level dynamic imports.
AgentX is designed for private/local use.
Current common homelab warnings:
- Authentication may be disabled.
- Web access may be enabled broadly.
- Local filesystem/workspace tools can be powerful.
- AgentX should be kept behind a trusted LAN/firewall unless hardened.
Before exposing outside the LAN:
- Enable authentication
- Restrict CORS
- Restrict web access allowlists
- Restrict filesystem roots
- Enable rate limiting
- Review environment variables and service configs
- Add GitHub Actions for frontend typecheck/tests/build
- Add backend compile/test job
- Add backend dev dependency file
- Make
pytestrunnable out of the box - Add health endpoint tests
- Add validation route tests
- Better upload progress
- Better validation result views
- Better patch candidate summaries
- Downloadable reports
- Cleaner workspace file tree
- Safer patch apply UX
- Heavy/fast model route selection UI
- Endpoint profiles
- Model benchmark/status cache
- GPU-aware routing
- Better Ollama model refresh controls
- Browser-based coding playground improvements
- Code canvas persistence
- Patch preview improvements
- Repo-aware repair flows
- GitHub PR/branch helpers
Check repo:
git status --short
git branch --show-current
git log --oneline -5Run full smoke test:
./scripts/smoke-test-v10.shRestart services:
sudo systemctl restart agentx-api.service agentx-web.serviceCheck services:
sudo systemctl status agentx-api.service agentx-web.service --no-pagerOpen app:
http://localhost:5173
Open API docs:
http://localhost:8000/docs
Open health endpoint:
http://localhost:8000/v1/health/full
AgentX is actively evolving.
- V9 turned the project into a clean, tracked baseline.
- V10 added live system visibility and a full smoke-test gate.
- V11 should make validation automatic through CI.
AgentX is now in a strong position to evolve from local assistant into a full AI-powered homelab workbench.
AgentX β local AI with real tools, real validation, and real project memory.
AgentX V12 adds a standalone workbench report viewer:
/workbench-report-viewer.html
The viewer displays imported archive workspaces, final reports, inventory artifacts, and download/copy actions for workbench analysis output.