OpenCode Multi-Agent Web Dashboard
Manage and monitor your AI agent team from a browser
Noctis Team screen — dispatch missions to your AI agents and monitor their sessions in real time
multi-agent-ff15 is a web-based dashboard that brings the FF15-inspired multi-agent system to life in a browser. You orchestrate Noctis (King) and the comrades (Ignis, Gladiolus, Prompto) through a polished React UI backed by live OpenCode sessions — no tmux knowledge required. Lunafreya and Iris are planned for a future release.
Built on: OpenCode · React Router 7 · TypeScript
Multi-agent parallel development framework using OpenCode. Inspired by FINAL FANTASY XV's Kingdom of Lucis.
flowchart TD
U[User]
N[Noctis<br/>Lead agent / main user-facing contact]
F[Active workflow step<br/>decides who acts next]
I[Ignis<br/>Analysis / planning / review]
G[Gladiolus<br/>Implementation / fixes / hardening]
P[Prompto<br/>Recon / reporting / cleanup]
U -->|request| N
N --> F
F --> N
F --> I
F --> G
F --> P
- User-facing requests start with Noctis.
- Noctis is the lead agent and the main user-facing contact.
- Ignis, Gladiolus, and Prompto are specialist teammates with distinct responsibilities.
- The active workflow step determines whether work stays with Noctis or moves to a specialist.
- Depending on the workflow, ownership may return to Noctis between steps or move across specialists before the final response.
- Node.js 20+
- npm 10+
- OpenCode CLI (authenticated)
git clone https://github.com/atman-33/multi-agent-ff15.git
cd multi-agent-ff15
./first_setup.shfirst_setup.sh installs required dependencies (uv/uvx for Serena MCP) and verifies the environment.
source ~/.bashrc
opencode
# → Select your AI model provider
# → Follow the authentication prompts
# → Type /exit to quitCredentials are saved to ~/.opencode/ and never need to be entered again.
./standby.sh --build./standby.shThe app starts on http://localhost:13000 and the browser opens automatically.
The primary command screen. Send missions to Noctis and watch the agent team respond in real time.
| Feature | Description |
|---|---|
| Mission dispatch | Send a task to Noctis with a single message |
| Agent session view | Live output from each agent's OpenCode session |
| Mission history | Browse past missions and their outcomes |
Inspect any OpenCode session directly in the browser — full message history, tool calls, model activity, and explicit session-local execution/context selection.
Browse the registered project registry and launch workspaces. Execution and context selection now happens per mission or session.
Browse and read Markdown reports generated by agents, with table-of-contents navigation.
View the MCP (Model Context Protocol) server configuration used by OpenCode agents.
Monitor the OpenCode server status — connection health, errors, and active sessions.
Edit config/settings.yaml:
language: ja # Japanese responses
language: en # English responses./standby.shstarts the production web server on port13000by default.npm run web:devstarts the development server on port5173by default.- Agent helper scripts resolve the active web origin from
FF15_WEB_ORIGINfirst, thenruntime/web-server.json.
To override the port explicitly:
npm run web:dev -- --port 14000
npm run web:start -- --port 14000
FF15_WEB_ORIGIN=http://localhost:14000 ./scripts/send_report.sh ...Start the development server with HMR:
npm run web:devApp available at http://localhost:5173 by default.
npm run web:install # Install dependencies
npm run web:build # Production build
npm run web:start # Start production server
npm run web:typecheck # Type check
npm run web:lint # Lint
npm run web:test # Run testsmulti-agent-ff15/
├── standby.sh # Daily startup script (launch + browser open)
├── first_setup.sh # One-time environment setup
├── config/
│ ├── settings.yaml # Language and app settings
│ └── models.yaml # Agent model configuration
├── web/ # React Router 7 web app
│ └── app/
│ ├── routes/ # Page routes
│ │ ├── _layout.noctis-team/ # Noctis Team screen
│ │ ├── _layout.opencode/ # OpenCode session viewer
│ │ ├── _layout.projects/ # Project management
│ │ ├── _layout.reports/ # Report browser
│ │ ├── _layout.mcp/ # MCP config viewer
│ │ └── _layout.server/ # Server status
│ ├── lib/ # Shared utilities
│ └── stores/ # Zustand state stores
├── docs/
│ └── reports/ # Agent-generated reports
├── runtime/
│ ├── opencode-session-state.json
│ └── noctis-missions/ # Mission records (JSON)
├── projects/ # Project configuration files
└── .opencode/ # OpenCode agent definitions
| Layer | Technology |
|---|---|
| Framework | React Router 7 (SSR) |
| Language | TypeScript |
| UI | React 19 + Tailwind CSS v4 |
| Components | shadcn/ui (Radix UI primitives) |
| State | Zustand |
| Build | Vite 7 |
| AI runtime | OpenCode CLI |
| MCP | Serena (semantic coding tools) |
| Agent | Role | Symbol | Status |
|---|---|---|---|
| Noctis | King — lead agent and main user-facing contact | 👑 | ✅ Implemented |
| Ignis | Strategist comrade | ⚔ | ✅ Implemented |
| Gladiolus | Shield comrade | 🛡 | ✅ Implemented |
| Prompto | Recon comrade | 🔫 | ✅ Implemented |
| Iris | Guardian / gatekeeper | 🌸 | 🔜 Planned |
| Lunafreya | Oracle — independent advisor | ✨ | 🔜 Planned |
The user is referred to as User by all agents.
Inspired by multi-agent-shogun by @yohey-w and the original multi-agent-ff15 design.
MIT License — See LICENSE for details.
Command your AI team. Ship faster.
