How rouicezar/formabot works
FormaBot is a local desktop workspace for persistent AI bots and groups. The main workflow is: a user sends a message in a conversation, the desktop forwards it to the runtime, and the runtime routes work to bot or group members for execution with authorized tools; progress and delivered files return to the workspace for review. Settings, workspace authorization, approvals, memory, browser use, web search, skills, and the optional Figma MCP connection are additional capabilities. The sampled excerpts show portions of this flow; some subsystem links follow the README rather than inspected call sites.
Main entry points: main.ts Desktop main · conversation-session.ts Conversation session · tools-plugin.ts Tool dispatch · renderer.ts Workspace UI
Components 22
Desktop workspace
- Workspace UI
src/desktop/renderer.ts - Artifact preview
src/desktop/preview.ts - Settings UI
src/desktop/settings-renderer.ts - Desktop main
src/desktop/main.ts
Team coordination
- Conversation session
src/runtime/conversation-session.ts - Group routing
src/runtime/group-routing.ts - Attention selection
src/runtime/attention.ts
Task execution
- Task supervisor
src/runtime/supervisor.ts - Task host
src/runtime/task-host.ts - Tool dispatch
src/runtime/tools-plugin.ts
Tools and integrations
- Local file tools
src/tools/local.ts - Workspace file worker
src/tools/file-worker.ts - Browser tools
src/tools/browser.ts - Web search
src/tools/web-search.ts - Tool discovery
src/capabilities/discovery.ts - Skills
src/capabilities/skills.ts - Figma MCP
src/capabilities/mcp.ts
Workspace state
- Conversation state
src/state/workbench.ts - Task records
src/state/tasks.ts - Model settings
src/models/config.ts
Other components
- User
- Model provider
Connections 24
- User → Workspace UI: sends messages
- Workspace UI → Desktop main: invokes IPC
- Desktop main → Conversation session: starts tasks
- Conversation session → Attention selection: selects recipients
- Conversation session → Group routing: resolves mentions
- Conversation session → Conversation state: records conversation
- Conversation session → Task supervisor: dispatches jobs
- Task supervisor → Task host: runs tasks
- Task supervisor → Task records: records task status
- Task host → Model provider: requests inference
- Task host → Tool dispatch: dispatches tools
- Tool dispatch → Local file tools: invokes local tools
- Local file tools → Workspace file worker: runs file operations
- Tool dispatch → Browser tools: invokes browser
- Tool dispatch → Web search: invokes search
- Desktop main → Task records: checks authorization
- Desktop main → Workspace file worker: reads previews
- Workspace UI → Artifact preview: opens artifacts
- Artifact preview → Desktop main: requests preview
- Settings UI → Desktop main: updates settings
- Desktop main → Model settings: loads model config
- Desktop main → Tool discovery: scans tools
- Desktop main → Skills: manages skills
- Desktop main → Figma MCP: manages connection