README.md (2023B)
1 # Theo Agent Dashboard 2 3 A dedicated web dashboard for managing interactions with Hermes agent. Built with React + Tailwind (frontend) and Python/FastAPI (backend). 4 5 ## Features 6 7 - **Chat with Hermes** — streaming responses with correct tool-call rendering 8 - **Topic organization** — group sessions by project/context 9 - **Multimodal prompts** — attach images and files to messages 10 - **Conversation branching** — fork conversations at any point 11 - **Per-message model selection** — pick the model for each message 12 - **Global search** — search across all sessions 13 - **Message editing** — edit and regenerate with fork preservation 14 - **Responsive design** — works on desktop and mobile 15 16 ## Quickstart 17 18 1. Create a Python venv and install backend deps: 19 ```bash 20 cd backend && python3 -m venv .venv && .venv/bin/pip install -e ".[dev]" 21 ``` 22 23 2. Install frontend deps: 24 ```bash 25 cd frontend && npm install 26 ``` 27 28 3. Build frontend: 29 ```bash 30 npm run build 31 cp -r dist/* ../backend/static/ 32 ``` 33 34 4. Start the backend: 35 ```bash 36 cd backend && .venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8080 37 ``` 38 39 5. Visit http://localhost:8080 → redirects to `/setup` 40 41 6. Set your password → redirects to dashboard 42 43 7. Start chatting! 44 45 ## Development 46 47 ```bash 48 # Backend (terminal 1) 49 cd backend && .venv/bin/uvicorn app.main:app --reload --port 8080 50 51 # Frontend (terminal 2) 52 cd frontend && npm run dev 53 ``` 54 55 The frontend dev server proxies API requests to the backend at localhost:8080. 56 57 ## Testing 58 59 ```bash 60 # Backend 61 cd backend && .venv/bin/pytest tests/ -v --cov=app 62 63 # Frontend 64 cd frontend && npx vitest run 65 ``` 66 67 ## Architecture 68 69 - **Backend**: Python 3.13+, FastAPI, SQLite (WAL mode), aiohttp 70 - **Frontend**: React 19, TypeScript, Vite 6, Tailwind CSS 4, Zustand 71 - **Deploy**: systemd + Caddy reverse proxy 72 73 The backend proxies all session/message/model operations to the Hermes API server at localhost:8642. Topics and topic-session mappings are stored locally in SQLite. 74 75 ## License 76 77 MIT