Tony is the AI operating system for Austin Visuals — a custom-built, self-hosted AI platform that handles everything from client communication and project management to lead capture, content publishing, and internal tooling. It's not a single app — it's a collection of microservices, AI pipelines, dashboards, and automations that run 24/7 on a VPS.
Primary server at 2.24.29.245. Runs Caddy as the web server, ~20 Python FastAPI microservices, and the OpenClaw gateway. All the heavy lifting happens here.
The main internal interface at tony.austinvisuals.com. Role-gated — different team members see different tools. Built as static HTML + FastAPI backends. No React, no build step.
The AI backbone. Routes messages from Telegram → Claude/GPT/Venice/Grok. Manages sessions, memory, cron jobs, and model fallbacks. Tony "talks" via Telegram to Matt.
Hybrid: local markdown files in /root/.openclaw/workspace/memory/ + Mem0 cloud for semantic search. Tony reads these at session start to restore context across resets.
~20 Python FastAPI services running on ports 8787–8799+. Each owns a vertical: auth, receipts, SMS, interns, AI studio, storyboards, tasks, research, etc.
Dozens of scheduled jobs run via OpenClaw's cron engine. Daily blog posts, SEO passes, email monitoring, contact form checks, lead enrollment, Google Ads monitoring, and more.
VPS is the hub. Mac mini, MacBook Pro, and Mac Studio connect back via reverse SSH tunnels. Local models (Ollama) run on Mac hardware to reduce API costs.
Tony (ops/strategy), Jennifer (HR/recruiting), Gerald Thorne (legal), Espresso Tony (interns). Each has a separate email, personality, and access scope.
Tony is a layered system. Traffic flows: User (Telegram/Web) → OpenClaw Gateway → FastAPI Services → External APIs. The VPS is the single hub; Mac hardware connects back via reverse SSH tunnels for local model inference.
Caddy handles all inbound HTTPS on the VPS. Serves static files from /var/www/tony/ and reverse-proxies /auth/*, /api/*, and /webhooks/* to backend services.
Google OAuth2 via auth.py on :8890. Issues XD session tokens stored in /var/www/tony/data/users.json. Every role has defined page/feature access enforced server-side.
~20 FastAPI services on dedicated ports. Each is independent — they don't share state or import each other. Inter-service communication uses HTTP (bridge pattern).
OpenClaw manages AI sessions, memory, cron jobs, and model routing. Tony's "consciousness" lives here. Config at ~/.openclaw/openclaw.json.
Local markdown files at /root/.openclaw/workspace/memory/ store structured context. Mem0 cloud (API key in secrets) handles semantic search across longer history.
Mac mini (port 2223), MacBook Pro (2222), Mac Studio (2224) tunnel back to VPS via reverse SSH. Ollama runs on Mac hardware for cheap local inference. Primary target: Mac mini for always-on work.
All services run as Python FastAPI apps managed by systemd on the VPS. Each owns a specific domain. Do not cross-import between services — use HTTP calls.
| Port | Service | Script | What it does | Status |
|---|---|---|---|---|
| 8787 | Storyboard | storyboard_service.py | AI storyboard generation, frame management, Dropbox export | Live |
| 8789 | Animation | animation_service.py | Animation project pipeline, render tracking | Live |
| 8790 | AI Studio | ai_studio_service.py | Image/video generation, Runway, ElevenLabs, asset management | Live |
| 8792 | Receipt | receipt_service.py | Gmail receipt monitoring, QuickBooks upload, OAuth callbacks (QBO, Dropbox) | Live |
| 8793 | SMS | sms_service.py | Twilio/Telnyx SMS, cost estimator leads, inbound SMS routing | Live |
| 8794 | Group Leads | group_leads_service.py | Facebook group lead capture, Google Sheet sync, Listmonk enrollment | Live |
| 8795 | Intern Hub | intern_service.py | Intern chat (Espresso Tony), task assignment, image gen, onboarding | Live |
| 8796 | Chat / Council | chat_service.py | Tony council chat, Nancy/Matt chat interfaces | Live |
| 8797 | Research | research_service.py | Competitor intel, market analysis, Brave Search integration | Live |
| 8798 | Assets | assets_service.py | Asset library, Dropbox browse, transcript summarization | Live |
| 8799 | Tasks | tasks_service.py | Internal task management, Tasker notifications, project assignments | Live |
| 8888 | Review Portal | review_service.py | Client video review, approval/feedback workflow (review.austinvisuals.com) | Live |
| 8890 | Auth | tony_auth_service.py | Google OAuth2, XD session tokens, role enforcement, SocialTony proxy | Live |
| 5200 | SocialTony Proxy | socialtony_proxy.py | Social media scheduling dashboard, LateWiz integration, intern review queue | Live |
| 9000 | Listmonk | — | Email marketing / newsletter sends (Docker container) | Live |
| 8804 | Gmail Webhook | — | Receives Gmail push notifications for real-time inbox monitoring | Live |
Tony routes different tasks to different models based on cost, capability, and latency. The goal is: cheap local models for repetitive/simple work, expensive cloud models only when the task needs it.
| Alias | Provider/Model | Use case | Cost tier |
|---|---|---|---|
| opus | venice/claude-opus-4-8 | Complex reasoning, sensitive tasks | High |
| venice-sonnet | venice/claude-sonnet-4-6 | Matt's Telegram primary | Med |
| fable5 | venice/claude-fable-5 | Matt's preferred model (gov't ban pending) | High |
| sonnet | anthropic/claude-sonnet-4-6 | Direct Anthropic fallback | Med |
| haiku | anthropic/claude-3-5-haiku-latest | Fast simple tasks | Low |
| GPT | openai/gpt-5.4 | Google Ads analysis, structured data | Med |
| — | xai/grok-4-1-fast | Global default, fast cheap tasks | Low |
| — | xai/grok-3-mini | Cron wrappers, background orchestration | Low |
| — | llama3.1:8b (Ollama) | Local inference on Mac mini — free | Free |
Two VPS servers, three Mac machines, Cloudflare for DNS/CDN, WP Engine for WordPress hosting. All Mac machines connect back to the VPS via persistent reverse SSH tunnels.
Auto-refreshing health map from the infra-monitor systemd timer,
which rewrites /infra-status.json every 5 min.
Green = ok · amber = warn · red = error · grey = unmonitored.
Data older than 30 min shows as offline.
This is the ops / backups view (it mirrors what
infra-status.json actually monitors — 3 VPS + the checked
domain set). It intentionally differs from the product / hosting table below, which
lists servers and domains by business purpose.
| Name | IP | Role | Key paths |
|---|---|---|---|
| VPS1 (Tony) | 2.24.29.245 | Primary — everything runs here | /var/www/tony/, /root/.openclaw/ |
| VPS3 (CitéHub) | 2.24.70.39 | CitéHub.ai hosting — kept separate from Tony IP | /var/www/citehub/public/ |
| Machine | Tunnel Port | User | Primary use |
|---|---|---|---|
| Mac mini (Tony's) | 2223 | tony | Always-on Ollama, Facebook runner (archived), scripts |
| MacBook Pro (Matt's) | 2222 | matthewwinters | Group Leads Chrome extension, travel use |
| Mac Studio (Matt's) | 2224 | matthewwinters | Heavy local inference, Whisper transcription |
| Domain | Purpose | Hosting | Cloudflare |
|---|---|---|---|
| tony.austinvisuals.com | Internal AI ops dashboard | VPS1 (Caddy) | Yes |
| austinvisuals.com | Main client-facing site | WP Engine | Yes |
| review.austinvisuals.com | Client video review portal | VPS1 | Yes |
| medical3danimationcompany.com | Medical 3D animation site | WP Engine | Yes |
| citehub.ai | AI agent marketplace (in build) | VPS3 | Yes |
| austincreatives.ai | Austin creative community blog | VPS1 | Yes |
| outrankaiseo.com | SEO tool product | VPS1 | Yes |
All credentials live in /root/.openclaw/secrets/. The canonical registry is memory/tool-registry.md. Never hardcode credentials — always read from the secrets directory.
| Service | Credential file | Notes |
|---|---|---|
| Gmail (send) | av-automation.json | Service account + domain-wide delegation. Sends as tony@/matt@/nancy@. This is the immortal path — never expires. |
| Gmail (read) | av-automation.json | Same SA, readonly scope. Monitors matt@, tony@, susan@, nancy@. |
| Telegram bot | telegram-bot-token.txt | Matt's chat ID: 613132769 |
| Slack bot | slack-bot-token.txt | Austin Visuals workspace |
| Twilio SMS | twilio-account-sid.txt + twilio-auth-token.txt | Inbound/outbound SMS |
| Brevo (email mktg) | brevo-api-key.txt | ⚠️ Currently over credit limit (2026-06-13). Migrate to Amazon SES. |
| Provider | Credential | Primary use |
|---|---|---|
| Anthropic | anthropic-api-key.txt | Claude models (direct, non-Venice) |
| OpenAI | openai-api-key.txt | GPT-5.4, embeddings |
| Venice | venice-api-key.txt | Privacy-first proxy for Claude/other models — cheaper |
| xAI / Grok | grok-api-key.txt | Grok-3/4, fast cheap tasks |
| Google Gemini | gemini-api-key.txt | Image gen (Nano Banana), Gemini 2.5 |
| ElevenLabs | elevenlabs-key.txt | TTS — Liam voice (default) |
| Runway ML | runway-api-key.txt | Video gen (gen4.5, Seedance 2) |
| HuggingFace | huggingface-api-key.txt | Whisper fallback, model access |
| Mem0 | mem0-api-key.txt | Long-term semantic memory |
| Replicate | (OpenClaw native) | Various open models |
| Fal.ai | fal-api-key.txt | Fast image gen |
| Heygen | heygen-api-key.txt | Avatar video generation |
| Service | Credential | Notes |
|---|---|---|
| Google Ads | google-ads-tony-371-token.json + google-ads-developer-token.txt | Accounts 371-884-2956 and 775-211-0314 |
| Google Calendar | gmail-matt-full-token.json | matt@austinvisuals.com calendar only |
| Google Sheets/Drive | google-drive-matt-token.json | Full write. For SA Sheets/Docs access: pending admin toggle in Google Workspace. |
| QuickBooks Online | qbo-tokens.json + qbo-client-id.txt | Realm ID: 9130355601618096 (Austin Visuals LLC) |
| Dropbox (shared) | dropbox-tokens.json | info@austinvisuals.com — refresh token auth |
| Dropbox (matt private) | dropbox-matt-tokens.json | Refresh token only — old static token deprecated |
| YouTube | youtube-oauth-token.json | Austin Visuals channel UCxc2rGUdiytCxL4Fl6LXqCQ |
| WordPress (AV) | austinvisuals-wp-app-password.txt | REST API auth for content publishing |
| Cloudflare | cloudflare-all-zones-token.txt | Per-domain tokens also available in secrets/ |
| Apify | apify-api-key.txt | Web scraping, Instagram metadata |
| Brave Search | brave-search-api-key.txt | Web search (OpenClaw native) |
| Buffer | buffer-api-key.txt | Social media scheduling (GBP posts) |
All pages are static HTML served from /var/www/tony/. The full index is at site-index.html. Key pages by category:
| URL | Purpose |
|---|---|
| /index.html | Main dashboard home |
| /your-tools.html | Per-person tool pages (Matt, Nancy, David) |
| /permissions.html | Full role & access matrix |
| /directory.html | Team contact directory |
| /system-health.html | Service health dashboard |
| /api-monitor.html | API status & uptime |
| /ops-tony.html | Ops Tony interface |
| URL | Purpose |
|---|---|
| /project-status.html | Live project status board |
| /crm.html | CRM / lead tracker (Google Sheets backed) |
| /tasks.html | Internal task management |
| /storyboards.html | Storyboard management |
| /cost-estimator.html | Client cost estimator (lead-gate flow) |
| /esign.html | DocuSeal document signing |
| URL | Purpose |
|---|---|
| /artist-tools.html | Hub for all artist tools |
| /ai-studio.html | AI image/video/asset generation |
| /motion-lab.html | Text-to-motion (NVIDIA Kimodo) |
| /video-editor.html | Video trim/compile |
| /asset-library.html | 3D model/asset browser |
| /socialtony_dashboard.html | Social media scheduling (interns) |
| URL | Purpose |
|---|---|
| /bookkeeper.html | Curtis's finance dashboard (PIN: see Matt) |
| /invoices.html | Invoice management |
| /receipts.html | Receipt processing / QB sync |
| /subscriptions.html | Subscription & API cost tracker |
| /finance.html | Financial overview |
Tony uses Google OAuth for authentication. Roles are defined in /var/www/tony/data/users.json and enforced by auth.py. Full details at permissions.html.
| Role | Who | Key access |
|---|---|---|
| owner | Matt (matt@austinvisuals.com) | Everything. Full admin including financials, secrets, all tools. |
| admin | David (david@austinvisuals.com) | Operations, project management. No financials. |
| ops_lead | Nancy (nancyschirm@austinvisuals.com) | Projects, CRM, client comms, task management. |
| bookkeeper | Curtis (kellamsenterprises@gmail.com) | Finance pages only. Read-only emails (matt@, nancy@). No coding tools. No winters.matt@gmail.com ever. |
| operations | Shelly (shelly@austinvisuals.com) | Operations + Jennifer supervisor. intern-coordinator access. |
| artist | Peter, Tom, Adam Gravois | Artist tools, their own project data only. No financial data ever. |
| intern | Active interns | Intern hub, Social Tony, limited tools. See interns.md for current roster. |
| assistant | David (GBP-only mode) | Google Business Profile scheduling only. Cannot touch other channels. |
| Persona | Role | |
|---|---|---|
| Tony | tony@austinvisuals.com | Main AI ops/strategy. Talks to Matt via Telegram. |
| Espresso Tony | (intern hub interface) | Intern-facing version of Tony. Runs on venice/claude-sonnet-4-6. |
| Jennifer | jennifer@austinvisuals.com | HR/recruiting persona. Outward sender for intern outreach. Shelly supervises. |
| Gerald Thorne | legal@austinvisuals.com | AI legal persona. Signs as "Gerald Thorne, Esq." |
| Name | Role | Project | Status |
|---|---|---|---|
| Niaz | AI Developer | Memory Bridge — 3-instance OpenClaw sync (target: Jun 18) | In Progress |
| Zohaib | AI Developer (new) | Onboarding to Tony systems | Onboarding |
Every page currently deployed at tony.austinvisuals.com. Financial pages are locked — access code provided by Matt via Telegram only. Ghost/deprecated pages are noted.
| Page | URL | Notes |
|---|---|---|
| Dashboard Home | /index.html | Main hub — all role-gated nav lives here |
| Your Tools | /your-tools.html | Per-person dashboards (Matt, Nancy, David) + Tool Transfer |
| Site Index | /site-index.html | Self-updating full page index |
| Permissions Matrix | /permissions.html | Source of truth for all roles and access gates |
| System Health | /system-health.html | Live service health dashboard |
| API Monitor | /api-monitor.html | API uptime and response checks |
| Status Page | /status-page.html | Public-facing system status |
| About Tony | /about-tony.html | Tony intro / explainer page |
| Tony Admin | /tony-admin.html | Admin controls — owner only |
| Directory | /directory.html | Team contact directory — source of truth for emails |
| Backlog | /backlog.html | Feature requests and build backlog |
| Ideas | /ideas.html | Ideas & requests log |
| Wins Log | /wins.html | Documented wins and skills |
| Failures Log | /failures.html | Failures and lessons — internal only |
| Tony Commands | /tony-commands.html | Slash command reference |
| Developer Hub | /developer.html | This page |
| Page | URL | Notes |
|---|---|---|
| Project Status | /project-status.html | Live project board — contractor-facing |
| CRM | /crm.html | Lead/client tracker backed by Google Sheets |
| Tasks | /tasks.html | Company task management |
| Personal Tasks | /tasks-personal.html | Matt's personal task workspace |
| Availability | /availability.html | Team availability tracker |
| Cost Estimator | /cost-estimator.html | Client-facing estimate tool with lead-gate flow |
| Client Surveys | /client-surveys.html | Mid-project and final review surveys |
| Client Surveys Admin | /client-surveys-admin.html | Admin view of survey responses |
| eSign | /esign.html | DocuSeal document signing |
| Hiring | /hiring.html | Job listings / hiring page |
| Talent Bench | /talent-bench.html | Contractor/talent pipeline |
| Case Studies | /case-studies.html | Case study generator |
| Capabilities Deck | /av-capabilities-deck.html | AV capabilities presentation |
| AV Process | /av-process.html | Austin Visuals production process explainer |
| Rachel Reconnect | /rachel-reconnect.html | Automated reconnect outreach flow |
| Page | URL | Notes |
|---|---|---|
| Artist Tools Hub | /artist-tools.html | Hub for all artist-facing tools |
| AI Studio | /ai-studio.html | Image/video/asset AI generation (Runway, ElevenLabs, etc.) |
| Motion Lab | /motion-lab.html | Text-to-motion — NVIDIA Kimodo (experimental) |
| Storyboards | /storyboards.html | Storyboard builder and manager |
| Video Editor | /video-editor.html | Trim, compile, process video files |
| Asset Library | /asset-library.html | 3D model and asset browser |
| Social Tony | /socialtony_dashboard.html | Social media scheduling dashboard — intern review queue |
| AI Maker Chat | /ai-maker-chat.html | Scene parser / 2D animation pipeline chat (in progress) |
| 2D AI Video | /2d-ai-Video.html | 2D AI video generation tool |
| Tools Library | /tools-library.html | AV-approved third-party tools list for artists |
| Higgsfield Connect | /higgsfield-connect.html | Higgsfield AI integration connector |
| Page | URL | Notes |
|---|---|---|
| Sales Tools | /sales.html | Sales pipeline tools |
| Marketing Tools | /marketing-tools.html | Marketing toolkit hub |
| Social Media | /social-media.html | Social media management |
| SEO Tools | /seo.html | SEO dashboard |
| Search Engine Optimization | /search-engine-optimization.html | SEO reporting and tooling |
| Content Health | /content-health.html | Content health monitor across AV sites |
| Competitor Intel | /competitor-intel.html | Competitor research dashboard |
| Competitor Brief | /competitor-brief.html | One-page competitor intelligence brief |
| Market Intel | /market-intel.html | Market intelligence reports |
| Analytics | /analytics.html | GA4 + site analytics dashboard |
| Email Health | /email-health.html | Email deliverability and health monitor |
| Group Leads | /group-leads.html | Facebook group lead capture dashboard |
| Page | URL | Notes |
|---|---|---|
| Intern Hub | /intern-hub.html | Espresso Tony — intern-facing AI interface |
| Intern Tools | /intern-tools.html | Intern resource hub |
| Intern Recruiter | /intern-recruiter.html | Jennifer — intern outreach and pipeline |
| Intern Apply | /intern-apply.html | Public intern application form |
| Mentors | /mentors.html | Mentor network room |
| Operations | /operations.html | Ops overview dashboard |
| Ops Tony | /ops-tony.html | Ops Tony interface (Shelly/Nancy facing) |
| Page | URL | Notes |
|---|---|---|
| Austin Creatives | /austin-creatives.html | Private dinner network landing page |
| AC Join | /austin-creatives-join.html | Membership sign-up |
| AC Apply | /austin-creatives-apply.html | Application form |
| AC Connect | /ac-connect.html | Community connect page |
| AC Survey | /ac-survey.html | Community survey |
| AC Availability | /ac-availability.html | Event availability poll |
| AC Terms / Privacy / Policy | /austin-creatives-terms.html | Legal pages for AC |
| Group Leader Demo | /group-leader-demo.html | Group leader demo interface |
| Show Bible | /show-bible.html | Tony show bible / concept doc |
| Gerald (Owl) | /gerald.html | Gerald the AI Wizard Owl talking character page |
| Page | URL | Notes |
|---|---|---|
| Nova | /nova.html | Nova AI assistant product page |
| Nova Pricing | /nova-pricing.html | Nova pricing page |
| Apps & Tools | /apps.html | Apps directory |
| AI Web Resources | /ai-web-resources.html | AI/Web builder directory |
| Legal Resources | /legal-resources.html | Legal resources directory |
| Page | URL | Status |
|---|---|---|
| WarData Map Mockup | /wardata-map-mockup.html | Staged on wrong domain — should be on wardata.ai |
| Lock Preview | /lock-preview.html | Dev experiment, unused |
| SnapReceipts Preview | /snapreceipts-preview.html | Dev experiment, unused |
| Project Status Sample | /project-status-sample.html | Superseded by /project-status.html |
| SEO Report Apr 2026 | /seo-report-2026-04-23.html | One-off stale report |
| AV Trial Graphics (x2) | /av-trial-graphics-preview.html | Dev preview, unused |