Skip to content

Repository files navigation

Weave Agent Fleet

Weave Agent Fleet

A fleet orchestrator for managing multiple OpenCode AI agent sessions from a single web UI. Spawn, monitor, and interact with parallel AI coding agents across different workspaces — with workspace isolation, real-time streaming, and completion callbacks.

Table of Contents

Overview

  • Multi-session orchestration — spawn and manage multiple OpenCode agent sessions in parallel from a single dashboard.
  • Workspace isolation — run agents in isolated git worktrees or cloned repos to prevent conflicts during parallel work.
  • Real-time streaming — monitor agent activity, messages, and tool calls via Server-Sent Events (SSE).
  • Completion callbacks — parent sessions are automatically notified when child sessions finish, enabling orchestrated multi-agent workflows.
  • Diff viewer — inspect file changes produced by each session with a side-by-side diff viewer.
  • Session history — browse, search, and resume past sessions with full conversation history.
  • Desktop app — optional native desktop experience via Tauri.

Quick Start

Prerequisites

  • OpenCode CLI must be installed: curl -fsSL https://opencode.ai/install | bash

Install

macOS / Linux:

curl -fsSL https://get.tryweave.io/agent-fleet.sh | sh

Windows (PowerShell):

irm https://github.com/pgermishuys/weave-agent-fleet/releases/latest/download/install.ps1 | iex

Run

weave-fleet

Open http://localhost:3000 in your browser.

To use a custom port:

weave-fleet --port 8080

Update

weave-fleet update

Uninstall

weave-fleet uninstall

Features

Session Management

Create, monitor, fork, resume, abort, and terminate agent sessions from the web UI. Each session runs its own opencode serve process with full tool access. Sessions can be organized by workspace and tracked through their lifecycle:

Action Description
Create Spawn a new session with a directory, title, and optional isolation strategy.
Prompt Send instructions to a running session.
Fork Branch a session into a new independent session.
Resume Continue a previously idle session from where it left off.
Abort Cancel the currently running operation in a session.
Terminate Stop a session and its underlying process.
Delete Remove a session and its history permanently.

Sidebar Navigation

The sidebar provides a tree view of all workspaces and sessions:

Feature Description
Collapse/Expand Click the chevron next to a workspace to collapse or expand its sessions. State persists across reloads.
Hide Inactive Toggle the eye icon in the sidebar header to hide completed, stopped, errored, and disconnected sessions.
Remove Inactive Click the trash icon to permanently delete all inactive sessions, or right-click a workspace to remove only its inactive sessions.
Pin Workspaces Right-click a workspace to pin it to the top of the list.
Rename Right-click a workspace or session to rename it, or press F2.

Workspace Isolation

Strategy Use When Parallel-Safe
worktree Parallel work on the same repo ✅ Each session gets its own git worktree and branch
clone Completely isolated environments ✅ Each session gets a separate shallow clone
existing Single session, or separate repos ❌ Sessions share the same directory

Completion Callbacks

Parent sessions can register an onComplete callback when spawning child sessions. When a child finishes, the Fleet automatically notifies the parent with a summary of changed files and session status — enabling fully orchestrated multi-agent workflows without polling.

Diff Viewer

Inspect the file changes each session produced with a side-by-side diff viewer. View added, modified, and deleted files at a glance after a session completes.

Files Tab

Browse and edit workspace files directly from the session view. The Files tab provides:

  • File tree — collapsible tree view of the session's workspace, excluding node_modules and .git directories.
  • Git status coloring — file and folder names are colored based on git status: green for added, amber for modified, red for deleted. Directory colors are aggregated from their children.
  • Monaco editor — syntax-highlighted code editor with theme support for viewing and editing files.
  • Inline diff decorations — the Monaco editor shows gutter indicators (colored bars) for added, modified, and deleted lines compared to the git baseline, similar to VS Code's inline change markers.
  • Image & Markdown preview — inline previews for images (PNG, JPEG, SVG, etc.) and Markdown files.
  • Context menu commands — right-click any file or folder in the tree to:
    • Create File / Create Folder — add new files or directories.
    • Rename — rename a file or folder (with filename validation).
    • Delete — remove a file or directory (with confirmation dialog, .git protected).
  • Path security — all file operations are validated against path traversal attacks, symlink escapes, null-byte injection, and .git directory access.

Notifications

Real-time notification system with SSE streaming. Get notified when sessions complete, encounter errors, or require attention. Unread counts are tracked per-session.

Command Palette

Quick-access command palette (⌘K) for navigating sessions, triggering actions, and searching across the fleet.

Desktop App

Optional native desktop experience built with Tauri. Build with:

npm run tauri:build

Configuration

Environment Variable Default Description
PORT 3000 Server port (can also be set with --port <number> flag)
WEAVE_HOSTNAME 0.0.0.0 Server bind address (replaces HOSTNAME to avoid collision with the shell built-in)
WEAVE_DB_PATH ~/.weave/fleet.db (macOS/Linux), %USERPROFILE%\.weave\fleet.db (Windows) SQLite database path
WEAVE_INSTALL_DIR ~/.weave/fleet (macOS/Linux), %LOCALAPPDATA%\weave\fleet (Windows) Installation directory (used by installer)

Architecture

Layer Technology
Framework Next.js 16 (App Router) with React 19
Database SQLite via better-sqlite3 (~/.weave/fleet.db)
AI Backend OpenCode SDK — each session spawns an opencode serve process
UI Tailwind CSS + Shadcn UI (Radix primitives)
Desktop Tauri (optional native wrapper)
Streaming Server-Sent Events (SSE) for real-time updates

API

The Fleet exposes a REST API for programmatic session management and orchestration:

Endpoint Method Description
/api/sessions GET List all active sessions
/api/sessions POST Create a new session
/api/sessions/:id GET Get session details and messages
/api/sessions/:id DELETE Delete a session
/api/sessions/:id/prompt POST Send a prompt to a session
/api/sessions/:id/fork POST Fork a session
/api/sessions/:id/resume POST Resume an idle session
/api/sessions/:id/abort POST Abort a running operation
/api/sessions/:id/status GET Get session status
/api/sessions/:id/diffs GET Get file diffs for a session
/api/sessions/:id/files GET List all files in the session workspace
/api/sessions/:id/files/*path GET Read a file's content (text or binary/base64)
/api/sessions/:id/files/*path POST Write a file or create a directory
/api/sessions/:id/files/*path DELETE Delete a file or directory
/api/sessions/:id/files/*path PATCH Rename/move a file or directory
/api/sessions/:id/events GET SSE stream of session events
/api/sessions/:id/messages GET Get session messages
/api/sessions/:id/command POST Execute a command in a session
/api/sessions/history GET Browse past sessions
/api/fleet/summary GET Fleet-wide status summary
/api/notifications GET List notifications
/api/notifications/stream GET SSE stream of notifications
/api/notifications/unread-count GET Get unread notification count
/api/notifications/:id PATCH Mark notification as read
/api/config GET Get fleet configuration
/api/skills GET List available skills
/api/skills/:name GET Get skill details
/api/version GET Get fleet version
/api/directories GET List available directories
/api/workspace-roots GET List workspace roots
/api/workspace-roots/:id DELETE Remove a workspace root
/api/instances/:id/models GET List models for an instance
/api/instances/:id/agents GET List agents for an instance
/api/instances/:id/commands GET List commands for an instance
/api/instances/:id/find/files GET Find files in an instance workspace
/api/workspaces/:id GET Get workspace details
/api/open-directory POST Open a directory in the OS file manager
/api/available-tools GET List available tools

Development

Setup

bun install
bun run dev

Open http://localhost:3000 with your browser.

Commands

Command Description
bun run dev Start development server
bun run build Production build
bun run lint Run ESLint
bun run typecheck TypeScript type checking
bun run test Run tests
bun run test:watch Run tests in watch mode
npm run build:standalone Build self-contained distribution
npm run tauri:build Build desktop app

License

Private — see repository settings.

About

No description, website, or topics provided.

Resources

Stars

19 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages