AppMint's AI tools are a small set of cooperating products that let a builder describe an app in natural language and ship it to a live URL. The pieces are small on purpose — each one does one thing — but together they cover the whole loop from "open a workspace" to "preview at <orgId>-<projectName>.spinforge.dev".
The pieces
┌───────────────────────────┐
builder's browser ───▶ │ Vibe Studio (Vite/React)│
│ — workspace IDE │
└─────────────┬─────────────┘
│ HTTP + Socket.IO
▼
┌───────────────────────────┐
│ session-manager (TS) │
│ — workspace sessions │
│ — runs agent-zero │
│ — owns SpinForge key │
└────┬────────────┬─────────┘
│ │
┌──────────────▼──┐ ┌────▼─────────────┐
│ agent-zero │ │ SpinForge │
│ (a-full TS or │ │ — deploy target │
│ a-mini PY) │ │ — subdomains │
└──────────────┬──┘ └────┬─────────────┘
│ │
▼ ▼
┌───────────────────────────┐
│ AppEngine │
│ — discovery API │
│ — repository / data │
│ — auth / customers │
│ — AI module │
└───────────────────────────┘
Vibe Studio
A Vite + React workspace UI. Customers open it from studio.appmint.io, pick a dev environment, and see a code editor on the left, a live preview on the right, and an AI agent at the bottom. The agent edits files in the workspace; the preview pane re-renders after each change. When the customer is happy they click Deploy and the app ships to a SpinForge subdomain.
Source: /Users/imzee/projects/agent-zero/vibe-studio/.
agent-zero
Two AI agent runtimes that share design and tooling.
- a-full is the production runtime — TypeScript, ~thousands of files in
src/covering streaming, tools, skills, memory, multi-agent, ink-based UI, and dialog launchers. - a-mini is the reference runtime — Python, ~5000 lines, an explicit pedagogical reimplementation of Claude Code that ships memory, skills, sub-agents, and tool registry as cleanly separable packages.
Both implement the same model: a streaming agent loop, a registry of pluggable tools, markdown-driven skills, persistent memory, sub-agent composition, and a discovery-first approach to AppMint integration. Use a-mini to learn the model and write custom skills; use a-full as the deployed runtime in Vibe Studio.
Source: /Users/imzee/projects/agent-zero/a-full/ and /Users/imzee/projects/agent-zero/a-mini/.
session-manager
A Node + TypeScript service that owns workspace sessions. Each builder gets an isolated session with a workspace directory, a Socket.IO bridge to the running agent, and a credential vault that holds the SpinForge partner key (sfpk_…) the browser is never allowed to see. Vibe Studio talks to session-manager; session-manager talks to SpinForge.
Routes cover dev environments (create, list, delete), planner cards, conversations, git operations, cohost tokens (view-only collaboration), and deploys. The full route table is in session-manager/src/routes/index.ts.
Source: /Users/imzee/projects/agent-zero/session-manager/.
SpinForge
The deploy target. A SpinForge site is a customer subdomain (<orgId>-<projectName>.spinforge.dev) backed by a static or Node deployment. session-manager packages the workspace, calls SpinForge's partner API with the partner key, and SpinForge handles DNS, TLS, and CDN.
Custom domains attached via AppEngine's /dev-env/attach-domain/<projectName> get synced to SpinForge on the next deploy.
AppEngine AI module
The shared backend. Every agent-zero invocation calls AppEngine's /discover/* endpoints first to get up-to-date schemas — discovery-first is a hard rule, baked into the agent's instructions (AI-INSTRUCTIONS.md § 5.1). The AI module also handles assistant configs, tool gating, and the LLM provider mux.
How a deploy actually flows
- The builder edits a file in Vibe Studio.
- The agent (a-full inside session-manager) runs in the workspace, calls AppEngine for any data it needs, and writes file edits via its
Read/Edit/Write/Bashtools. - The preview pane in Vibe Studio re-renders against the workspace's local server.
- Builder clicks Deploy. Vibe Studio POSTs
/api/deploy/spinforge/:orgId/:projectNameon session-manager with the builder's AppMint JWT. - session-manager packages the workspace, forwards to SpinForge with the partner key, and streams progress back over SSE.
- The site is live at
https://<orgId>-<projectName>.spinforge.dev.
The builder never sees the partner key, never logs into SpinForge, never edits a spinforge.toml. There isn't one. See Things that do not exist — fabricating CLI commands or config files is the most common new-user mistake.
Where to start
- New to all of this — read Vibe Studio quickstart.
- Want to extend the agent — start with agent-zero overview, then skills and tools.
- Running self-hosted — agent-zero self-hosting and session-manager.
- Curious about the deploy path — SpinForge.