Skip to content

Commit ef3e6de

Browse files
nunocoracaoclaude
andcommitted
feat: remove project support, TUI/GUI polish, docs and asset updates
Add remove project feature across GUI (sidebar context menu, dashboard card, settings danger zone) with backend agent stop before unregister. Includes TUI visual improvements, log store updates, tray notification icon, chat tab enhancements, and refreshed README/architecture docs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 43d7155 commit ef3e6de

File tree

26 files changed

+474
-136
lines changed

26 files changed

+474
-136
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Changelog
22

3-
## [0.1.0] Ember — Initial Release
3+
## [0.1.0] Ember
44

55
Watchfire orchestrates coding agent sessions (starting with Claude Code) based on project specs and tasks. Define what you want built, break it into tasks (or have agents do it), and let agents work through them autonomously — with full visibility into what's happening. Or just turn on wildfire mdoe and let you agents do it all for you.
66

@@ -58,6 +58,7 @@ Multi-project desktop application:
5858
- **Project view** — Tasks, Definition, Secrets, Trash, Settings tabs with collapsible right panel (Chat, Branches, Logs)
5959
- **Add Project wizard** — Three-step flow: project info → git config → definition
6060
- **Branch management** — View, merge, delete, and bulk-manage worktree branches
61+
- **Remove project** — Unregister projects from sidebar context menu, dashboard card, or settings tab (stops agents, no files deleted)
6162
- **Agent terminal** — Live streaming via gRPC-Web with input support
6263
- **Global settings** — Defaults, appearance (system/light/dark theme), agent path config, update preferences
6364
- **Daemon lifecycle** — Auto-restarts daemon if it dies, handles binary updates gracefully

README.md

Lines changed: 53 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -2,72 +2,41 @@
22
<img src="assets/watchfire_banner-black.png" alt="Watchfire" width="600" />
33
</p>
44

5+
<h3 align="center"><strong>Better context. Better code.</strong></h3>
6+
57
<p align="center">
6-
<strong>Remote control for AI coding agents</strong>
8+
AI coding agents work best when they have the right context. Watchfire lets you define your project structure, break work into well-scoped tasks, and orchestrate agents that execute with full awareness of your codebase, constraints, and goals. It manages context automatically — so agents stay on track and produce code you'd actually ship.
79
</p>
810

911
---
1012

11-
Watchfire orchestrates coding agent sessions (starting with Claude Code) based on task files. It manages multiple projects in parallel, spawning agents in sandboxed PTYs with git worktree isolation. A daemon handles all orchestration while thin clients (CLI/TUI and GUI) connect over gRPC.
12-
13-
## Components
14-
15-
| Component | Binary | Description |
16-
|-----------|--------|-------------|
17-
| **Daemon** | `watchfired` | Orchestration, PTY management, git workflows, gRPC server, system tray |
18-
| **CLI/TUI** | `watchfire` | Project-scoped CLI commands + interactive TUI mode |
19-
| **GUI** | `Watchfire.app` | Electron multi-project client |
20-
21-
## Quick Start
22-
23-
### Prerequisites
24-
25-
- Go 1.23+
26-
- Node.js 20+ (for GUI)
27-
- macOS (sandbox support uses `sandbox-exec`)
28-
29-
### Build
30-
31-
```bash
32-
# Install dev tools (golangci-lint, air, protoc plugins)
33-
make install-tools
13+
## How It Works
3414

35-
# Build daemon + CLI
36-
make build
15+
<p align="center">
16+
<img src="assets/readme-how-it-works.svg" alt="How It Works" width="700" />
17+
</p>
3718

38-
# Install to /usr/local/bin
39-
make install
40-
```
19+
---
4120

42-
### Run
21+
## Key Features
4322

44-
```bash
45-
# Initialize a project
46-
cd your-project
47-
watchfire init
23+
### 🎯 Context Management
4824

49-
# Add tasks
50-
watchfire task add
25+
Define your project once. Watchfire feeds agents the right specs, constraints, and codebase context — no copy-pasting prompts.
5126

52-
# Launch the TUI
53-
watchfire
27+
### 📋 Structured Workflow
5428

55-
# Or start the GUI
56-
make dev-gui
57-
```
29+
Break big projects into tasks with clear specs. Agents tackle them in order, each in an isolated git worktree branch.
5830

59-
### Development
31+
### 🚀 Scale with Confidence
6032

61-
```bash
62-
# Daemon with hot reload
63-
make dev-daemon
33+
Run agents across multiple projects in parallel. Monitor live terminal output, review results, and merge — from TUI or GUI.
6434

65-
# TUI (build + run)
66-
make dev-tui
35+
<p align="center">
36+
<img src="assets/readme-context-flow.svg" alt="Context flows into agents" width="650" />
37+
</p>
6738

68-
# GUI dev mode
69-
make dev-gui
70-
```
39+
---
7140

7241
## Agent Modes
7342

@@ -76,58 +45,47 @@ make dev-gui
7645
| **Chat** | Interactive session with the coding agent |
7746
| **Task** | Execute a specific task from the task list |
7847
| **Start All** | Run all ready tasks sequentially |
79-
| **Wildfire** | Autonomous loop: execute ready tasks, refine drafts, generate new tasks |
80-
| **Generate Definition** | Auto-generate a project definition |
48+
| **Wildfire** | Autonomous loop: execute tasks, refine drafts, generate new tasks |
49+
| **Generate Definition** | Auto-generate a project definition from your codebase |
8150
| **Generate Tasks** | Auto-generate tasks from the project definition |
8251

83-
## How It Works
84-
85-
1. **Define** your project with `watchfire init` and a project definition
86-
2. **Create tasks** describing what you want built
87-
3. **Start agents** that work in isolated git worktrees (one branch per task)
88-
4. **Monitor** progress through the TUI or GUI with live terminal output
89-
5. **Review and merge** completed work back to your default branch
52+
---
9053

91-
The daemon watches task files for changes. When an agent marks a task as done, Watchfire automatically stops the agent, merges the worktree (if auto-merge is enabled), and chains to the next task.
54+
## Quick Start
9255

93-
## Project Structure
56+
```bash
57+
# Build & install
58+
make install-tools # Dev tools (golangci-lint, air, protoc plugins)
59+
make build # Build daemon + CLI
60+
make install # Install to /usr/local/bin
9461

62+
# Use it
63+
cd your-project
64+
watchfire init # Initialize a project
65+
watchfire task add # Add tasks
66+
watchfire # Launch the TUI
9567
```
96-
watchfire/
97-
├── cmd/ # Entry points
98-
│ ├── watchfire/ # CLI/TUI binary
99-
│ └── watchfired/ # Daemon binary
100-
├── internal/ # Go packages
101-
│ ├── cli/ # CLI commands
102-
│ ├── config/ # Config loading, paths, logging
103-
│ ├── daemon/ # Daemon internals
104-
│ │ ├── agent/ # Agent manager, process, worktree, sandbox
105-
│ │ ├── server/ # gRPC server + services
106-
│ │ ├── task/ # Task manager
107-
│ │ ├── project/ # Project manager
108-
│ │ └── watcher/ # File watcher
109-
│ ├── models/ # Data structures
110-
│ └── tui/ # Bubbletea TUI
111-
├── proto/ # Protobuf definitions
112-
├── gui/ # Electron GUI
113-
└── assets/ # Icons, logos, brand assets
114-
```
11568

116-
## Make Targets
117-
118-
| Target | Description |
119-
|--------|-------------|
120-
| `make build` | Build daemon + CLI (native arch) |
121-
| `make build-universal` | Build universal (fat) binaries for macOS |
122-
| `make install` | Build and install to `/usr/local/bin` |
123-
| `make install-all` | Install CLI, daemon, and GUI app |
124-
| `make test` | Run tests with race detector |
125-
| `make lint` | Run golangci-lint |
126-
| `make proto` | Regenerate protobuf code |
127-
| `make clean` | Remove build artifacts |
128-
| `make dev-daemon` | Run daemon with hot reload (air) |
129-
| `make dev-tui` | Build and run TUI |
130-
| `make dev-gui` | Run Electron GUI in dev mode |
69+
---
70+
71+
## Components
72+
73+
| Component | Binary | Description |
74+
|-----------|--------|-------------|
75+
| **Daemon** | `watchfired` | Orchestration, PTY management, git workflows, gRPC server, system tray |
76+
| **CLI/TUI** | `watchfire` | Project-scoped CLI commands + interactive TUI mode |
77+
| **GUI** | `Watchfire.app` | Electron multi-project client |
78+
79+
## Development
80+
81+
```bash
82+
make dev-daemon # Daemon with hot reload
83+
make dev-tui # Build and run TUI
84+
make dev-gui # Electron GUI dev mode
85+
make test # Tests with race detector
86+
make lint # Linting
87+
make proto # Regenerate protobuf code
88+
```
13189

13290
## Architecture
13391

architecture.md

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1970,9 +1970,31 @@ watchfire/
19701970
│ ├── updater/ # GitHub Releases update checker + binary replacer
19711971
│ ├── cli/ # CLI commands
19721972
│ ├── config/ # YAML loading/saving, path helpers
1973-
│ ├── daemon/ # Daemon packages (agent, server, watcher, etc.)
1973+
│ ├── daemon/ # Daemon packages
1974+
│ │ ├── agent/ # Manager, Process (PTY+vt10x), worktree, sandbox, prompts
1975+
│ │ ├── server/ # gRPC server + per-service files:
1976+
│ │ │ ├── server.go # Server setup, listener, registration
1977+
│ │ │ ├── helpers.go # Shared helpers (getProjectPath)
1978+
│ │ │ ├── project_service.go # ProjectService RPCs
1979+
│ │ │ ├── task_service.go # TaskService RPCs
1980+
│ │ │ ├── agent_service.go # AgentService RPCs + mode helpers
1981+
│ │ │ ├── branch_service.go # BranchService RPCs
1982+
│ │ │ ├── log_service.go # LogService RPCs
1983+
│ │ │ ├── settings_service.go # SettingsService RPCs
1984+
│ │ │ ├── daemon_service.go # DaemonService RPCs
1985+
│ │ │ └── converters.go # Model-to-proto converters
1986+
│ │ ├── tray/ # System tray integration
1987+
│ │ ├── watcher/ # fsnotify watcher with debouncing
1988+
│ │ ├── task/ # Task manager
1989+
│ │ └── project/ # Project manager
19741990
│ ├── models/ # Data structures
1975-
│ └── tui/ # TUI components
1991+
│ └── tui/ # TUI (Bubbletea Elm architecture):
1992+
│ ├── model.go # Model struct, Init, Update dispatch, View
1993+
│ ├── keyhandler.go # Key event routing
1994+
│ ├── mousehandler.go # Mouse event handling
1995+
│ ├── msghandler.go # Message processing (gRPC responses, etc.)
1996+
│ ├── actions.go # Task action methods
1997+
│ └── ... # Components: tasklist, terminal, panels, styles, etc.
19761998
├── proto/ # Protobuf definitions
19771999
├── gui/ # Electron app
19782000
├── assets/ # Icons, images

assets/brand/BRAND_REFERENCE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
## Identity
66

77
**Name:** Watchfire
8-
**Tagline:** Remote control for AI coding agents
8+
**Tagline:** Better context. Better code.
99
**What it does:** Desktop + mobile app to monitor, control, and manage Claude Code sessions remotely
1010

1111
## Colors

assets/brand/WATCHFIRE_BRAND.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
**Watchfire** is a command center for AI coding agents. It enables developers to monitor, control, and manage Claude Code sessions remotely—from desktop and mobile.
66

7-
**Tagline:** "Remote control for AI coding agents"
7+
**Tagline:** "Better context. Better code."
88

99
---
1010

assets/readme-context-flow.svg

Lines changed: 47 additions & 0 deletions
Loading

assets/readme-how-it-works.svg

Lines changed: 43 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)