fathom-cli 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -129
- package/dist/index.js +3996 -2418
- package/dist/index.js.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
# fathom-cli
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
intake → estimate → build (tracked) → reconcile → calibrate → velocity
|
|
7
|
-
```
|
|
3
|
+
Estimate AI token costs before work, track actuals during work, and calibrate your estimates after. One command runs the full loop.
|
|
8
4
|
|
|
9
5
|
## Install
|
|
10
6
|
|
|
@@ -12,161 +8,87 @@ intake → estimate → build (tracked) → reconcile → calibrate → velocity
|
|
|
12
8
|
npm install -g fathom-cli
|
|
13
9
|
```
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
# Quick estimate — "how much will this cost?"
|
|
19
|
-
# AI scores complexity automatically when ANTHROPIC_API_KEY is set
|
|
20
|
-
fathom estimate "React dashboard with OAuth"
|
|
21
|
-
|
|
22
|
-
# Generate a full spec sheet — "break this down into work items"
|
|
23
|
-
fathom intake "Users say the calendar is slow and Zoom links are missing" --project myapp
|
|
24
|
-
|
|
25
|
-
# Analyze a full spec with multiple features
|
|
26
|
-
fathom analyze spec.md --project myapp
|
|
27
|
-
|
|
28
|
-
# Scaffold tracking for an existing project
|
|
29
|
-
fathom setup --project myapp
|
|
30
|
-
|
|
31
|
-
# Import and auto-tag Claude Code sessions
|
|
32
|
-
fathom track --project myapp
|
|
33
|
-
|
|
34
|
-
# Compare estimates vs actuals
|
|
35
|
-
fathom reconcile --project myapp
|
|
36
|
-
|
|
37
|
-
# See velocity metrics
|
|
38
|
-
fathom velocity --project myapp
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Commands
|
|
42
|
-
|
|
43
|
-
| Command | Description |
|
|
44
|
-
|---------|-------------|
|
|
45
|
-
| `fathom estimate <desc>` | Quick cost estimate — AI scores complexity, returns tokens + cost |
|
|
46
|
-
| `fathom intake <text>` | Generate spec sheet — extracts work items, estimates each, outputs markdown |
|
|
47
|
-
| `fathom analyze <spec>` | Parse spec, estimate all features, generate registry |
|
|
48
|
-
| `fathom track` | Import Claude Code sessions, auto-tag to features |
|
|
49
|
-
| `fathom reconcile` | Compare estimates vs actuals per feature |
|
|
50
|
-
| `fathom calibrate` | Show drift and suggest profile adjustments |
|
|
51
|
-
| `fathom velocity` | Velocity metrics and benchmarks |
|
|
52
|
-
| `fathom status` | Project overview with tracking data |
|
|
53
|
-
| `fathom pricing` | Show current model pricing |
|
|
54
|
-
| `fathom setup` | Scaffold `.claude/` skill + hooks + registry |
|
|
55
|
-
| `fathom validate <spec>` | Validate spec file format |
|
|
56
|
-
| `fathom init` | Initialize global config |
|
|
57
|
-
|
|
58
|
-
## How It Works
|
|
59
|
-
|
|
60
|
-
### 1. Estimate vs Intake (Before Work)
|
|
61
|
-
|
|
62
|
-
**`estimate`** — quick cost number from a description:
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
fathom estimate "Build a real-time chat system with WebSocket support"
|
|
66
|
-
# AI analyzes → L complexity, 205K tokens, $2.51, recommends Sonnet
|
|
67
|
-
# Use --complexity M to override, --no-ai for heuristic-only scoring
|
|
68
|
-
```
|
|
11
|
+
Add `ANTHROPIC_API_KEY` to your project's `.env` file (auto-loaded).
|
|
69
12
|
|
|
70
|
-
|
|
13
|
+
## One Command
|
|
71
14
|
|
|
72
15
|
```bash
|
|
73
|
-
fathom
|
|
74
|
-
# Extracts discrete work items, classifies each by complexity/priority,
|
|
75
|
-
# estimates tokens + cost per item, attaches velocity benchmarks,
|
|
76
|
-
# outputs structured markdown spec ready for implementation
|
|
16
|
+
fathom
|
|
77
17
|
```
|
|
78
18
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
Both use a calibrated model: base tokens per task type × complexity multiplier × overhead (context resend, tool calls, thinking, error recovery, planning, review).
|
|
82
|
-
|
|
83
|
-
### 2. Track (During Work)
|
|
84
|
-
|
|
85
|
-
Fathom automatically discovers Claude Code sessions from `~/.claude/projects/` and tags them to features using a 4-signal cascade:
|
|
19
|
+
That's it. `fathom` with no arguments walks through the entire workflow:
|
|
86
20
|
|
|
87
|
-
1. **
|
|
88
|
-
2. **
|
|
89
|
-
3. **
|
|
90
|
-
4. **File path** match → 70%
|
|
21
|
+
1. **Intake** — extracts work items from your requirements, estimates tokens + cost
|
|
22
|
+
2. **Build** — generates a context-rich prompt and launches Claude Code
|
|
23
|
+
3. **Review** — tracks sessions, reconciles estimates vs actuals, calibrates
|
|
91
24
|
|
|
92
|
-
|
|
25
|
+
New project? It auto-scaffolds everything. Returning project? Shows progress and offers contextual next steps:
|
|
93
26
|
|
|
94
|
-
### 3. Reconcile + Calibrate (After Work)
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
fathom reconcile --project myapp
|
|
98
|
-
# Shows: Feature | Estimated | Actual | Drift% | Cost | Sessions
|
|
99
|
-
|
|
100
|
-
fathom calibrate --project myapp
|
|
101
|
-
# Shows: Feature | Drift | Suggested adjustment multiplier
|
|
102
27
|
```
|
|
28
|
+
$ fathom
|
|
103
29
|
|
|
104
|
-
|
|
30
|
+
Fathom — myproject
|
|
31
|
+
6/12 features complete (50%) — $8.40 of $14.20 spent
|
|
105
32
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
33
|
+
What would you like to do?
|
|
34
|
+
❯ Continue building (next: payment-integration)
|
|
35
|
+
New intake — add more work
|
|
36
|
+
Review — reconcile recent sessions
|
|
37
|
+
Status overview
|
|
111
38
|
```
|
|
112
39
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
Fathom includes a real-time web dashboard (Next.js + Convex) with 7 views: overview, projects, burn-down, intake queue, cost analytics, velocity benchmarks, and calibration health.
|
|
40
|
+
Resume from any phase:
|
|
116
41
|
|
|
117
42
|
```bash
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
# All commands auto-sync when CONVEX_URL is set
|
|
122
|
-
fathom analyze spec.md --project myapp # → syncs estimates
|
|
123
|
-
fathom track --project myapp # → syncs actuals
|
|
43
|
+
fathom --from build # Skip intake
|
|
44
|
+
fathom --from review # Just track + reconcile + calibrate
|
|
45
|
+
fathom --auto # Skip all confirmations
|
|
124
46
|
```
|
|
125
47
|
|
|
126
|
-
|
|
48
|
+
## Build Modes
|
|
127
49
|
|
|
128
|
-
|
|
50
|
+
Fathom offers three ways to build (choice is remembered):
|
|
129
51
|
|
|
130
|
-
|
|
52
|
+
- **Launch Claude Code** — opens Claude with full project context, priority queue, and feature details
|
|
53
|
+
- **Worktree** — creates an isolated git branch per feature, launches Claude in it
|
|
54
|
+
- **Manual** — prints the spec path and build prompt so you can build however you want
|
|
131
55
|
|
|
132
|
-
|
|
133
|
-
# From text
|
|
134
|
-
fathom intake "Users say the calendar is slow and Zoom links are missing" --project myapp
|
|
56
|
+
## Individual Commands
|
|
135
57
|
|
|
136
|
-
|
|
137
|
-
fathom intake --file meeting-notes.md --project myapp --markdown
|
|
138
|
-
```
|
|
58
|
+
All commands also work standalone:
|
|
139
59
|
|
|
140
|
-
|
|
60
|
+
| Command | What it does |
|
|
61
|
+
|---------|-------------|
|
|
62
|
+
| `fathom` | **Full workflow** — intake → build → review |
|
|
63
|
+
| `fathom intake` | Generate a spec from raw feedback (interactive) |
|
|
64
|
+
| `fathom estimate <desc>` | Quick cost estimate for a single feature |
|
|
65
|
+
| `fathom analyze <spec>` | Parse an existing spec and estimate all features |
|
|
66
|
+
| `fathom setup` | Scaffold project tracking in `.claude/` |
|
|
67
|
+
| `fathom track` | Import Claude Code sessions, auto-tag to features |
|
|
68
|
+
| `fathom reconcile` | Compare estimates vs actuals |
|
|
69
|
+
| `fathom calibrate` | Adjust profiles from real data |
|
|
70
|
+
| `fathom velocity` | Throughput metrics and benchmarks |
|
|
71
|
+
| `fathom status` | Project overview |
|
|
72
|
+
| `fathom rename <name>` | Rename project across config files |
|
|
73
|
+
| `fathom pricing` | Show model pricing |
|
|
141
74
|
|
|
142
75
|
## Environment Variables
|
|
143
76
|
|
|
144
|
-
|
|
145
|
-
|----------|----------|---------|
|
|
146
|
-
| `ANTHROPIC_API_KEY` | For `estimate` + `intake` | AI complexity scoring and work item extraction |
|
|
147
|
-
| `CONVEX_URL` | Optional | Enable dashboard sync |
|
|
148
|
-
|
|
149
|
-
## Spec Format
|
|
77
|
+
Auto-loaded from `.env` in your project directory.
|
|
150
78
|
|
|
151
|
-
|
|
79
|
+
| Variable | Purpose |
|
|
80
|
+
|----------|---------|
|
|
81
|
+
| `ANTHROPIC_API_KEY` | Required for `intake` and `estimate` |
|
|
82
|
+
| `CONVEX_URL` | Optional — enables real-time dashboard sync |
|
|
152
83
|
|
|
153
|
-
|
|
154
|
-
### Feature: User Authentication
|
|
155
|
-
- **Complexity**: L
|
|
156
|
-
- **Category**: Infrastructure
|
|
157
|
-
- **Description**: OAuth2 with Google + email/password login
|
|
84
|
+
## Dashboard
|
|
158
85
|
|
|
159
|
-
|
|
160
|
-
- **Complexity**: M
|
|
161
|
-
- **Category**: Frontend
|
|
162
|
-
- **Description**: Main dashboard with metrics and charts
|
|
163
|
-
```
|
|
86
|
+
Optional web dashboard (Next.js + Convex) with project burn-down, velocity charts, cost analytics, and more. All CLI commands auto-sync when `CONVEX_URL` is set. See the [repo](https://github.com/olivelliott/fathom) for setup.
|
|
164
87
|
|
|
165
88
|
## Links
|
|
166
89
|
|
|
167
|
-
- [GitHub
|
|
168
|
-
- [
|
|
169
|
-
- [Report an Issue](https://github.com/olivelliott/fathom/issues)
|
|
90
|
+
- [GitHub](https://github.com/olivelliott/fathom)
|
|
91
|
+
- [Issues](https://github.com/olivelliott/fathom/issues)
|
|
170
92
|
|
|
171
93
|
## License
|
|
172
94
|
|