Skip to content

Commit 25300f3

Browse files
2witstudiosclaude
andcommitted
docs: archive project, point to PurePoint successor
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 525bbba commit 25300f3

1 file changed

Lines changed: 13 additions & 258 deletions

File tree

README.md

Lines changed: 13 additions & 258 deletions
Original file line numberDiff line numberDiff line change
@@ -1,269 +1,24 @@
11
# ppg — Pure Point Guard
22

3-
[![CI](https://github.com/2witstudios/ppg-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/2witstudios/ppg-cli/actions/workflows/ci.yml)
4-
[![npm version](https://img.shields.io/npm/v/pure-point-guard.svg)](https://www.npmjs.com/package/pure-point-guard)
5-
[![license](https://img.shields.io/npm/l/pure-point-guard.svg)](https://github.com/2witstudios/ppg-cli/blob/main/LICENSE)
3+
> **This project has been archived.** PPG CLI has been superseded by [PurePoint](https://github.com/2witstudios/PurePoint), a ground-up rebuild in Swift and Rust.
4+
>
5+
> PPG CLI started as a vibe-coded experiment — a TypeScript CLI wrapped in a Swift macOS dashboard for orchestrating parallel AI coding agents. The concept worked so well that it warranted a proper rebuild as a native application. PurePoint is that rebuild.
6+
>
7+
> **If you're looking for a parallel AI agent orchestrator, head to [PurePoint](https://github.com/2witstudios/PurePoint).**
68
7-
> **Note:** This project is an active swarm/vibecoding experiment. The open PRs and branches were generated by parallel AI agents and have not been reviewed line-by-line. The project is being rebuilt properly — treat the current state as experimental.
8-
9-
A native macOS dashboard for orchestrating parallel AI coding agents.
10-
11-
Spawn, monitor, and merge multiple AI agents working in parallel — each isolated in its own git worktree. Watch them all from a single window.
9+
---
1210

1311
![ppg dashboard](screenshot.png)
1412

15-
## Features
16-
17-
**Multi-agent dashboard** — See all your projects, worktrees, and agents in one place. Each agent gets a live terminal pane so you can watch it work in real time.
18-
19-
**Command palette** — Hit a key to spawn a new agent (Claude, Codex, OpenCode), open a terminal, or create a worktree. Type a prompt and it's running in seconds.
20-
21-
**Agent-agnostic** — Works with Claude Code, Codex, OpenCode, or any CLI agent. Define custom agents in config.
22-
23-
**Git worktree isolation** — Every agent works in its own worktree on its own branch. No file conflicts, clean merges.
24-
25-
**Prompts editor** — Write and manage reusable prompt templates with `{{VAR}}` substitution, right inside the app.
26-
27-
**Swarms** — Define multi-agent orchestrations in YAML. Choose shared or isolated strategies. Launch coordinated agent groups.
28-
29-
**Project overview** — Home dashboard shows all your projects with commit heatmaps, recent commits, agent status, and worktree counts at a glance.
30-
31-
**Inline rename** — Click any agent, terminal, or worktree name in the sidebar to rename it.
32-
33-
**Split panes** — Run multiple agents in the same worktree with split terminal views.
34-
35-
**Cron scheduling** — Define recurring agent tasks in `.ppg/schedules.yaml`. The daemon triggers swarms or prompts on cron expressions. Manage from the Schedules dashboard tab or `ppg cron` CLI.
36-
37-
**Global prompts & templates** — Put prompts, templates, and swarms in `~/.ppg/` to share them across all projects. Project-local always takes precedence.
38-
39-
**Customizable** — Appearance modes (light/dark/system), terminal font and size, keybinding customization, configurable shell.
40-
41-
## Install
42-
43-
### Dashboard (macOS app)
44-
45-
The dashboard is the primary interface. Download from [GitHub Releases](https://github.com/2witstudios/ppg-cli/releases/latest) — grab the `.dmg` file.
46-
47-
Or install via CLI:
48-
49-
```bash
50-
ppg install-dashboard
51-
```
52-
53-
### CLI (runtime engine)
54-
55-
The CLI is the engine that powers the dashboard. Install it globally:
56-
57-
```bash
58-
npm install -g pure-point-guard
59-
```
60-
61-
**Requirements:** Node.js >= 20, git, tmux (`brew install tmux`), macOS
62-
63-
### Claude Code integration
64-
65-
Running `ppg init` in any project automatically installs the `/ppg` skill for Claude Code. This gives Claude the ability to orchestrate parallel agents — just type `/ppg` in any Claude Code session.
66-
67-
## Quick Start
68-
69-
```bash
70-
# 1. Initialize ppg in your project
71-
cd your-project
72-
ppg init
73-
74-
# 2. Open the dashboard
75-
ppg ui
76-
```
77-
78-
From the dashboard, use the command palette to spawn agents, watch their progress in real time, and merge completed work.
79-
80-
### Or use the CLI directly
81-
82-
```bash
83-
# Spawn agents
84-
ppg spawn --name fix-auth --prompt "Fix the authentication bug in src/auth.ts"
85-
ppg spawn --name add-tests --prompt "Add unit tests for src/utils/"
86-
ppg spawn --name update-docs --prompt "Update the API documentation"
87-
88-
# Attach to an existing branch (e.g. from a PR)
89-
ppg spawn --branch fix/auth-bug --prompt "Review and improve this PR"
90-
91-
# Check status
92-
ppg status
93-
94-
# Collect results
95-
ppg aggregate --all
96-
97-
# Merge completed work
98-
ppg merge wt-xxxxxx
99-
```
100-
101-
## How It Works
102-
103-
Each `ppg spawn` creates a git worktree on a `ppg/<name>` branch, opens a tmux pane, and launches the agent. The dashboard watches the manifest file in real time — no IPC, no server.
104-
105-
```
106-
your-project/
107-
├── .ppg/
108-
│ ├── config.yaml # Agent and project config
109-
│ ├── manifest.json # Runtime state (worktrees, agents, status)
110-
│ ├── templates/ # Reusable prompt templates
111-
│ ├── prompts/ # Prompt files for swarms
112-
│ └── results/ # Agent result files
113-
├── .worktrees/
114-
│ ├── wt-abc123/ # Isolated git worktree
115-
│ └── wt-def456/ # Another worktree
116-
└── ...
117-
```
118-
119-
**Agent lifecycle:**
120-
121-
```
122-
spawning → running → completed (result file written)
123-
→ failed (non-zero exit or shell prompt visible)
124-
→ killed (via ppg kill)
125-
→ lost (tmux pane died unexpectedly)
126-
```
127-
128-
## Configuration
129-
130-
`.ppg/config.yaml`:
131-
132-
```yaml
133-
sessionName: ppg
134-
defaultAgent: claude
135-
136-
agents:
137-
claude:
138-
name: claude
139-
command: claude --dangerously-skip-permissions
140-
interactive: true
141-
resultInstructions: >-
142-
When you have completed the task, write a summary of what you did
143-
and any important notes to the file at: {{RESULT_FILE}}
144-
145-
codex:
146-
name: codex
147-
command: codex
148-
promptFlag: --prompt
149-
interactive: true
150-
151-
custom-script:
152-
name: custom
153-
command: ./scripts/my-agent.sh
154-
promptFlag: --task
155-
interactive: false
156-
157-
worktreeBase: .worktrees
158-
templateDir: .ppg/templates
159-
resultDir: .ppg/results
160-
logDir: .ppg/logs
161-
envFiles:
162-
- .env
163-
- .env.local
164-
symlinkNodeModules: true
165-
```
166-
167-
## Templates
168-
169-
Templates live in `.ppg/templates/` as Markdown files with `{{VAR}}` placeholders. The prompts editor in the dashboard lets you create and edit these visually.
170-
171-
**Built-in variables:** `{{WORKTREE_PATH}}`, `{{BRANCH}}`, `{{AGENT_ID}}`, `{{RESULT_FILE}}`, `{{PROJECT_ROOT}}`, `{{TASK_NAME}}`, `{{PROMPT}}`
172-
173-
Custom variables are passed with `--var KEY=VALUE` or defined in swarm YAML.
174-
175-
## Global Prompts & Templates
176-
177-
Put prompts, templates, and swarms in `~/.ppg/` to make them available across all projects:
178-
179-
```
180-
~/.ppg/
181-
├── prompts/ # Global prompt files
182-
├── templates/ # Global templates
183-
└── swarms/ # Global swarm definitions
184-
```
185-
186-
Project-local files always take precedence when names conflict. Use `ppg list prompts` or `ppg list templates` to see both local and global entries.
187-
188-
## Cron Scheduling
189-
190-
Define recurring agent tasks in `.ppg/schedules.yaml`:
191-
192-
```yaml
193-
schedules:
194-
- name: nightly-review
195-
swarm: code-review
196-
cron: '0 2 * * *'
197-
vars:
198-
CONTEXT: 'Review all changes from the last 24 hours'
199-
- name: hourly-lint
200-
prompt: lint-check
201-
cron: '0 * * * *'
202-
```
203-
204-
```bash
205-
ppg cron start # Start the scheduler daemon
206-
ppg cron list # Show schedules with next run times
207-
ppg cron status # Check daemon status
208-
ppg cron stop # Stop the daemon
209-
```
210-
211-
Manage schedules visually from the Schedules tab in the dashboard.
212-
213-
## CLI Reference
214-
215-
All commands support `--json` for machine-readable output.
216-
217-
| Command | Description |
218-
|---|---|
219-
| `ppg init` | Initialize ppg in the current git repo |
220-
| `ppg spawn` | Spawn a worktree with agent(s) |
221-
| `ppg status` | Show status of all worktrees and agents |
222-
| `ppg attach` | Open a terminal attached to a worktree or agent |
223-
| `ppg logs` | View agent output from tmux pane |
224-
| `ppg kill` | Kill agents and optionally remove worktrees |
225-
| `ppg aggregate` | Collect result files from completed agents |
226-
| `ppg merge` | Merge a worktree branch back into base |
227-
| `ppg diff` | Show changes in a worktree branch |
228-
| `ppg restart` | Restart a failed or killed agent |
229-
| `ppg send` | Send text or keystrokes to an agent pane |
230-
| `ppg wait` | Wait for agents to complete |
231-
| `ppg clean` | Remove worktrees in terminal states |
232-
| `ppg worktree create` | Create a standalone worktree |
233-
| `ppg list templates` | List available prompt templates |
234-
| `ppg list prompts` | List available prompt files |
235-
| `ppg prompt` | Spawn an agent from a prompt file |
236-
| `ppg cron start` | Start the cron scheduler daemon |
237-
| `ppg cron stop` | Stop the cron scheduler daemon |
238-
| `ppg cron list` | Show configured schedules with next run times |
239-
| `ppg cron status` | Show daemon status and recent log entries |
240-
| `ppg install-dashboard` | Download and install the macOS dashboard |
241-
| `ppg ui` | Open the dashboard |
242-
243-
Run `ppg <command> --help` for detailed options.
244-
245-
## Conductor Mode
246-
247-
ppg is designed to be driven programmatically by a meta-agent (a "conductor"). All commands support `--json` for machine consumption.
248-
249-
```bash
250-
# 1. Spawn agents
251-
ppg spawn --name task-1 --prompt "Do X" --json
252-
ppg spawn --name task-2 --prompt "Do Y" --json
253-
254-
# 2. Wait for completion
255-
ppg wait --all --json
256-
257-
# 3. Aggregate results
258-
ppg aggregate --all --json
259-
260-
# 4. Merge completed work
261-
ppg merge wt-xxxxxx --json
262-
```
13+
## What was ppg?
26314

264-
## Contributing
15+
A native macOS dashboard for orchestrating parallel AI coding agents. Spawn, monitor, and merge multiple AI agents working in parallel — each isolated in its own git worktree.
26516

266-
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, testing, and code conventions.
17+
- **Multi-agent dashboard** — Claude Code, Codex, OpenCode, or any CLI agent
18+
- **Git worktree isolation** — every agent works on its own branch
19+
- **Swarms** — coordinated multi-agent orchestrations defined in YAML
20+
- **Conductor mode** — designed to be driven programmatically by a meta-agent
21+
- **Cron scheduling** — recurring agent tasks on cron expressions
26722

26823
## License
26924

0 commit comments

Comments
 (0)