clawck 0.1.0 → 0.3.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.
Files changed (80) hide show
  1. package/README.md +223 -151
  2. package/dist/cli/index.js +926 -30
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/core/clawck.d.ts +16 -3
  5. package/dist/core/clawck.d.ts.map +1 -1
  6. package/dist/core/clawck.js +48 -14
  7. package/dist/core/clawck.js.map +1 -1
  8. package/dist/core/database.d.ts +4 -4
  9. package/dist/core/database.d.ts.map +1 -1
  10. package/dist/core/database.js +85 -104
  11. package/dist/core/database.js.map +1 -1
  12. package/dist/core/patterns.d.ts +7 -0
  13. package/dist/core/patterns.d.ts.map +1 -0
  14. package/dist/core/patterns.js +36 -0
  15. package/dist/core/patterns.js.map +1 -0
  16. package/dist/core/types.d.ts +31 -0
  17. package/dist/core/types.d.ts.map +1 -1
  18. package/dist/core/types.js.map +1 -1
  19. package/dist/core/webhooks.d.ts +22 -0
  20. package/dist/core/webhooks.d.ts.map +1 -0
  21. package/dist/core/webhooks.js +70 -0
  22. package/dist/core/webhooks.js.map +1 -0
  23. package/dist/dashboard/index.d.ts.map +1 -1
  24. package/dist/dashboard/index.js +7 -1
  25. package/dist/dashboard/index.js.map +1 -1
  26. package/dist/hooks/adapters.d.ts +8 -0
  27. package/dist/hooks/adapters.d.ts.map +1 -0
  28. package/dist/hooks/adapters.js +138 -0
  29. package/dist/hooks/adapters.js.map +1 -0
  30. package/dist/hooks/handler.d.ts +9 -0
  31. package/dist/hooks/handler.d.ts.map +1 -0
  32. package/dist/hooks/handler.js +90 -0
  33. package/dist/hooks/handler.js.map +1 -0
  34. package/dist/hooks/index.d.ts +10 -0
  35. package/dist/hooks/index.d.ts.map +1 -0
  36. package/dist/hooks/index.js +23 -0
  37. package/dist/hooks/index.js.map +1 -0
  38. package/dist/hooks/install.d.ts +16 -0
  39. package/dist/hooks/install.d.ts.map +1 -0
  40. package/dist/hooks/install.js +239 -0
  41. package/dist/hooks/install.js.map +1 -0
  42. package/dist/hooks/session.d.ts +10 -0
  43. package/dist/hooks/session.d.ts.map +1 -0
  44. package/dist/hooks/session.js +72 -0
  45. package/dist/hooks/session.js.map +1 -0
  46. package/dist/hooks/stdin.d.ts +6 -0
  47. package/dist/hooks/stdin.d.ts.map +1 -0
  48. package/dist/hooks/stdin.js +38 -0
  49. package/dist/hooks/stdin.js.map +1 -0
  50. package/dist/hooks/types.d.ts +23 -0
  51. package/dist/hooks/types.d.ts.map +1 -0
  52. package/dist/hooks/types.js +7 -0
  53. package/dist/hooks/types.js.map +1 -0
  54. package/dist/reports/html.d.ts +13 -0
  55. package/dist/reports/html.d.ts.map +1 -0
  56. package/dist/reports/html.js +321 -0
  57. package/dist/reports/html.js.map +1 -0
  58. package/dist/reports/pdf.d.ts +13 -0
  59. package/dist/reports/pdf.d.ts.map +1 -0
  60. package/dist/reports/pdf.js +169 -0
  61. package/dist/reports/pdf.js.map +1 -0
  62. package/dist/server/api.d.ts.map +1 -1
  63. package/dist/server/api.js +18 -2
  64. package/dist/server/api.js.map +1 -1
  65. package/dist/server/mcp.d.ts.map +1 -1
  66. package/dist/server/mcp.js +140 -32
  67. package/dist/server/mcp.js.map +1 -1
  68. package/docs/skills/clawck-setup.md +131 -0
  69. package/docs/skills/clawck-usage.md +148 -0
  70. package/docs/snippets/claude-md.txt +24 -0
  71. package/docs/snippets/hooks-claude.json +16 -0
  72. package/docs/snippets/hooks-cline.txt +10 -0
  73. package/docs/snippets/hooks-codex.json +16 -0
  74. package/docs/snippets/hooks-cursor.json +16 -0
  75. package/docs/snippets/hooks-gemini.json +16 -0
  76. package/docs/snippets/hooks-windsurf.json +16 -0
  77. package/docs/snippets/mcp-config.json +7 -0
  78. package/docs/snippets/openclaw-agent-md.txt +18 -0
  79. package/docs/snippets/openclaw-heartbeat-md.txt +17 -0
  80. package/package.json +6 -3
package/README.md CHANGED
@@ -1,23 +1,11 @@
1
- # ⏱️🦀 Clawck
1
+ # Clawck v0.3
2
2
 
3
3
  **Time tracking for AI agents. Toggl for the agentic era.**
4
4
 
5
- Clawck is an open-source tool that tracks how long AI agents spend on tasks, projects, and client work then shows you how much human-equivalent time and money they saved.
5
+ Clawck is an open-source tool that tracks how long AI agents spend on tasks, projects, and client work - then shows you how much human-equivalent time and money they saved.
6
6
 
7
7
  Every service business runs on timesheets. AI agent businesses will too.
8
8
 
9
- ---
10
-
11
- ## Why Clawck?
12
-
13
- AI agents are doing real work — writing code, researching grants, generating content, analyzing data. But nobody's tracking *how long* that work takes or *how much value* it delivers.
14
-
15
- Clawck answers the questions your clients, managers, and finance teams are already asking:
16
-
17
- - **"What did the AI actually do today?"** → A clear timesheet showing every task, duration, and outcome
18
- - **"Is this worth what we're paying?"** → Human-equivalent hours and cost savings calculated automatically
19
- - **"Which agent is the most productive?"** → Per-agent breakdowns across projects and clients
20
-
21
9
  ## Quick Start
22
10
 
23
11
  ```bash
@@ -27,15 +15,34 @@ npm install -g clawck
27
15
  # Initialize
28
16
  clawck init
29
17
 
30
- # Seed with sample data (to see the dashboard)
18
+ # Seed with sample data
31
19
  clawck seed --count 30
32
20
 
33
21
  # Start the server + dashboard
34
22
  clawck serve
35
- # Dashboard at http://localhost:3456
23
+ # Open http://localhost:3456
24
+
25
+ # Generate an interactive HTML report
26
+ clawck report --format html
36
27
  ```
37
28
 
38
- ## How It Works
29
+ ## Features
30
+
31
+ - **Time tracking** - Start/stop timers or log completed tasks retroactively
32
+ - **Human-equivalent calculations** - Configurable multipliers estimate how long a human would take
33
+ - **Tracking patterns** - Reusable task templates (code-review, research, testing, etc.)
34
+ - **Approval workflow** - Mark entries as approved for billing/invoicing
35
+ - **Reports** - Terminal, PDF, and interactive HTML reports with calendar, table, Gantt, and CSV views
36
+ - **Dashboard** - Real-time web dashboard with stats, entries, and breakdowns
37
+ - **MCP server** - Works with Claude Code, Cline, Cursor, Windsurf via stdio
38
+ - **REST API** - Full CRUD API for any agent framework
39
+ - **Multi-agent sync** - Pull from remote instances or push via ingest endpoint
40
+ - **Webhooks** - Notify on task completion, failure, or idle alerts
41
+ - **Platform hooks** - Auto-track via Claude Code hooks, Gemini, Cursor, etc.
42
+ - **PDF reports** - Professional timesheet PDFs with entry details table
43
+ - **CSV/JSON export** - Export data for external tools
44
+
45
+ ## Getting Started
39
46
 
40
47
  ### 1. Agents clock in and out
41
48
 
@@ -52,12 +59,7 @@ Add to your MCP config (`~/.claude/mcp_servers.json` or similar):
52
59
  }
53
60
  ```
54
61
 
55
- Now your agent has access to:
56
- - `clawck_start_task` — Start a timer
57
- - `clawck_stop_task` — Stop a timer
58
- - `clawck_log_task` — Log a completed task retroactively
59
- - `clawck_status` — See what's running
60
- - `clawck_timesheet` — Get a summary report
62
+ Your agent gets: `clawck_start_task`, `clawck_stop_task`, `clawck_log_task`, `clawck_status`, `clawck_timesheet`.
61
63
 
62
64
  **Via REST API:**
63
65
 
@@ -70,43 +72,26 @@ curl -X POST http://localhost:3456/api/start \
70
72
  # Stop a task
71
73
  curl -X POST http://localhost:3456/api/stop \
72
74
  -H "Content-Type: application/json" \
73
- -d '{"id": "entry-uuid-here", "status": "completed", "summary": "Found 12 matching grants", "tokens_in": 15000, "tokens_out": 3000}'
75
+ -d '{"id": "entry-uuid-here", "status": "completed", "summary": "Found 12 matching grants"}'
74
76
  ```
75
77
 
76
- **Via the SDK (in your own code):**
78
+ **Via the SDK:**
77
79
 
78
80
  ```typescript
79
81
  import { Clawck } from 'clawck';
80
82
 
81
- const clawck = new Clawck({
82
- default_client: 'acme-corp',
83
- default_agent: 'my-agent',
84
- });
85
-
86
- const entry = clawck.start({
87
- task: 'Analyze Q3 customer data',
88
- project: 'analytics',
89
- category: 'analysis',
90
- });
91
-
83
+ const clawck = new Clawck({ default_client: 'acme-corp', default_agent: 'my-agent' });
84
+ const entry = clawck.start({ task: 'Analyze Q3 data', project: 'analytics', category: 'analysis' });
92
85
  // ... agent does work ...
93
-
94
- clawck.stop({
95
- id: entry.id,
96
- status: 'completed',
97
- tokens_in: 25000,
98
- tokens_out: 8000,
99
- cost_usd: 0.12,
100
- summary: 'Identified 3 key churn drivers',
101
- });
86
+ clawck.stop({ id: entry.id, status: 'completed', tokens_in: 25000, cost_usd: 0.12 });
102
87
  ```
103
88
 
104
89
  ### 2. Clawck calculates human-equivalent value
105
90
 
106
- Every entry has a **category** (research, content, code, data_entry, design, etc.) and Clawck applies configurable multipliers to estimate how long a human would take:
91
+ Every entry has a **category** and Clawck applies configurable multipliers:
107
92
 
108
- | Category | Agent → Human Multiplier | Human Rate |
109
- |----------|--------------------------|------------|
93
+ | Category | Multiplier | Human Rate |
94
+ |----------|-----------|------------|
110
95
  | Research | 12x | $50/hr |
111
96
  | Content | 10x | $45/hr |
112
97
  | Code | 6x | $75/hr |
@@ -114,61 +99,135 @@ Every entry has a **category** (research, content, code, data_entry, design, etc
114
99
  | Design | 5x | $60/hr |
115
100
  | Analysis | 10x | $55/hr |
116
101
  | Testing | 8x | $65/hr |
102
+ | Planning | 6x | $50/hr |
103
+ | Communication | 8x | $40/hr |
104
+ | Other | 8x | $50/hr |
117
105
 
118
- So if an agent spends 30 minutes on research, Clawck reports it as **6 hours of human-equivalent work** and **$300 in estimated value**.
106
+ 30 minutes of agent research = **6 hours human-equivalent** = **$300 estimated value**.
119
107
 
120
- ### 3. View the dashboard
108
+ ### 3. View results
121
109
 
122
- Open `http://localhost:3456` to see:
110
+ - **Dashboard** at `http://localhost:3456` - stats, entries, breakdowns by project/agent/category
111
+ - **Terminal** - `clawck report` for quick summaries
112
+ - **HTML** - `clawck report --format html` - interactive report with calendar, sortable table, Gantt chart, CSV export
113
+ - **PDF** - `clawck report --format pdf` - printable timesheet with entry details
123
114
 
124
- - 📊 **Stats cards** — Agent hours, human-equiv hours, cost, active tasks
125
- - 💚 **Savings banner** — Total estimated value delivered
126
- - 📋 **Time entries** — Every task with duration, category, and status
127
- - 📁 **By Project** — Hours breakdown per project with visual bars
128
- - 🤖 **By Agent** — Per-agent productivity and success rates
129
- - 🏷️ **By Category** — Where time is going across work types
115
+ ## Tracking Patterns
130
116
 
131
- ## Multi-Agent Aggregation
117
+ Patterns are reusable templates for common task types. They set default values for category, project, client, agent, and tags.
132
118
 
133
- Running 10 agents across multiple machines? Clawck merges them:
119
+ **Built-in patterns:** `default`, `code-review`, `research`, `content-creation`, `testing`
134
120
 
135
- **Option A: Central collector pulls from remote instances**
121
+ ```bash
122
+ # List available patterns
123
+ clawck pattern list
136
124
 
137
- ```yaml
138
- # .clawck/config.json
139
- {
140
- "remote_sources": [
141
- { "name": "research-agent", "url": "http://cubi-01:3456/api/entries" },
142
- { "name": "writer-agent", "url": "http://cubi-02:3456/api/entries" },
143
- { "name": "coder-agent", "url": "http://cubi-03:3456/api/entries" }
144
- ],
145
- "sync_interval": 60
146
- }
125
+ # Use a pattern when starting a task
126
+ clawck start "Review auth module" --pattern code-review
127
+
128
+ # Add a custom pattern
129
+ clawck pattern add --name deploy --category code --project ops --tags deploy release
130
+
131
+ # Set a default pattern
132
+ clawck pattern use research
147
133
  ```
148
134
 
149
- **Option B: Agents push to a central instance**
135
+ Patterns merge as defaults - any explicit flags you pass override the pattern's values.
136
+
137
+ ## Approval Workflow
138
+
139
+ Entries can be approved for billing, invoicing, or quality control.
150
140
 
151
141
  ```bash
152
- # From any agent, POST entries to central Clawck
153
- curl -X POST http://central-clawck:3456/api/ingest \
154
- -H "Content-Type: application/json" \
155
- -d '[{"task": "...", "agent": "cubi-01", ...}]'
142
+ # Approve an entry (supports 8-char ID prefix)
143
+ clawck approve a1b2c3d4
144
+
145
+ # View only approved entries
146
+ clawck entries --approved
147
+
148
+ # View unapproved entries
149
+ clawck entries --unapproved
150
+
151
+ # Filter in list view too
152
+ clawck list --approved
153
+ ```
154
+
155
+ The API also supports approval: `POST /api/entries/:id/approve`.
156
+
157
+ ## Reports
158
+
159
+ ### Terminal
160
+
161
+ ```bash
162
+ clawck report # Last 7 days
163
+ clawck report --days 30 --detailed # With individual entries
164
+ clawck report --client acme-corp # Filter by client
165
+ ```
166
+
167
+ ### HTML (interactive)
168
+
169
+ ```bash
170
+ clawck report --format html -o report.html
156
171
  ```
157
172
 
158
- Entries merge cleanly by UUID — no conflicts, no duplicates.
173
+ The HTML report includes four tabs:
174
+ - **Calendar** - Color-coded day grid showing entry count and hours
175
+ - **Table** - Sortable table of all entries with full details
176
+ - **Gantt** - Timeline visualization of tasks grouped by date
177
+ - **CSV** - Copyable CSV data for spreadsheets
178
+
179
+ ### PDF
180
+
181
+ ```bash
182
+ clawck report --format pdf -o report.pdf
183
+ ```
184
+
185
+ Professional timesheet PDF with summary stats, breakdowns by project/agent/category, and an entry details table.
159
186
 
160
187
  ## CLI Commands
161
188
 
162
189
  ```bash
163
- clawck init # Create .clawck/ directory with config
164
- clawck serve # Start API + dashboard (default: port 3456)
165
- clawck serve --port 8080 # Custom port
166
- clawck mcp # Start MCP server on stdio
167
- clawck status # Show running tasks and stats
168
- clawck report # Timesheet summary (last 7 days)
169
- clawck report --days 30 # Last 30 days
170
- clawck report --client acme # Filter by client
171
- clawck seed --count 50 # Generate test data
190
+ # Setup
191
+ clawck init # Create .clawck/ directory with config
192
+ clawck serve [--port 8080] # Start API + dashboard
193
+ clawck mcp # Start MCP server on stdio
194
+ clawck seed [--count 50] # Generate test data
195
+
196
+ # Time tracking
197
+ clawck start <task> [--pattern <name>] # Start a timer
198
+ clawck stop <id> # Stop a timer
199
+ clawck log <task> --duration 30 # Log a completed task
200
+
201
+ # Viewing entries
202
+ clawck status # Show running tasks and stats
203
+ clawck list [--days 30] [--approved] # List entries in a table
204
+ clawck get <id> # Show a single entry
205
+ clawck entries [--status running] # Query with filters
206
+
207
+ # Reports and export
208
+ clawck report [--format terminal|pdf|html] [--output path]
209
+ clawck export [--format csv|json] [--days 30]
210
+
211
+ # Patterns
212
+ clawck pattern list # Show tracking patterns
213
+ clawck pattern add --name <n> [opts] # Add a custom pattern
214
+ clawck pattern use <name> # Set default pattern
215
+
216
+ # Approval
217
+ clawck approve <id> # Approve an entry
218
+
219
+ # Editing and deleting
220
+ clawck edit <id> --task "New name" # Edit fields
221
+ clawck delete <id> # Delete an entry (8-char prefix OK)
222
+
223
+ # Hooks
224
+ clawck hooks install <platform> # Show hook config for a platform
225
+ clawck hooks status # Check installed hooks
226
+ clawck setup [claude|mcp|openclaw] # Output integration snippets
227
+
228
+ # Global options
229
+ clawck --json <command> # JSON output for scripting
230
+ clawck -d <path> <command> # Custom data directory
172
231
  ```
173
232
 
174
233
  ## Configuration
@@ -182,6 +241,8 @@ Edit `.clawck/config.json`:
182
241
  "default_project": "general",
183
242
  "default_agent": "cubi-01",
184
243
  "default_model": "claude-sonnet-4-20250514",
244
+ "default_source": "clawck",
245
+ "default_pattern": "default",
185
246
  "human_equivalents": {
186
247
  "research": { "multiplier": 12, "human_rate_usd": 50 },
187
248
  "content": { "multiplier": 10, "human_rate_usd": 45 },
@@ -193,10 +254,21 @@ Edit `.clawck/config.json`:
193
254
  "planning": { "multiplier": 6, "human_rate_usd": 50 },
194
255
  "communication": { "multiplier": 8, "human_rate_usd": 40 },
195
256
  "other": { "multiplier": 8, "human_rate_usd": 50 }
196
- }
257
+ },
258
+ "patterns": [
259
+ { "name": "default", "description": "General task tracking", "category": "other" },
260
+ { "name": "code-review", "description": "Code review and refactoring", "category": "code", "tags": ["review"] },
261
+ { "name": "research", "description": "Research and analysis", "category": "research" },
262
+ { "name": "content-creation", "description": "Content writing", "category": "content" },
263
+ { "name": "testing", "description": "Writing and running tests", "category": "testing" }
264
+ ],
265
+ "remote_sources": [],
266
+ "webhooks": []
197
267
  }
198
268
  ```
199
269
 
270
+ Config is validated on load. Invalid values produce clear error messages.
271
+
200
272
  ## REST API
201
273
 
202
274
  | Method | Endpoint | Description |
@@ -205,6 +277,7 @@ Edit `.clawck/config.json`:
205
277
  | `POST` | `/api/stop` | Stop a running task |
206
278
  | `POST` | `/api/log` | Log a completed task retroactively |
207
279
  | `PATCH` | `/api/entries/:id` | Update an entry |
280
+ | `POST` | `/api/entries/:id/approve` | Approve an entry |
208
281
  | `GET` | `/api/entries` | Query entries (with filters) |
209
282
  | `GET` | `/api/entries/:id` | Get a single entry |
210
283
  | `GET` | `/api/running` | Get currently running tasks |
@@ -216,107 +289,106 @@ Edit `.clawck/config.json`:
216
289
  | `GET` | `/api/health` | Health check |
217
290
  | `GET` | `/api/stats` | Quick stats |
218
291
 
292
+ ## Multi-Agent Aggregation
293
+
294
+ Running agents across multiple machines? Clawck merges them:
295
+
296
+ **Pull mode** - central collector fetches from remote instances:
297
+
298
+ ```json
299
+ {
300
+ "remote_sources": [
301
+ { "name": "research-agent", "url": "http://cubi-01:3456/api/entries" },
302
+ { "name": "writer-agent", "url": "http://cubi-02:3456/api/entries" }
303
+ ],
304
+ "sync_interval": 60
305
+ }
306
+ ```
307
+
308
+ **Push mode** - agents POST entries to a central instance:
309
+
310
+ ```bash
311
+ curl -X POST http://central-clawck:3456/api/ingest \
312
+ -H "Content-Type: application/json" \
313
+ -d '[{"task": "...", "agent": "cubi-01", ...}]'
314
+ ```
315
+
316
+ Entries merge by UUID - no conflicts, no duplicates.
317
+
219
318
  ## Architecture
220
319
 
221
320
  ```
222
321
  clawck/
223
322
  src/
224
- core/ Schema, database (SQLite), entry manager
225
- server/ REST API (Express) + MCP server (stdio)
226
- dashboard/ Single-file HTML dashboard
227
- cli/ → Command-line interface
228
- adapters/ Framework integrations (future)
323
+ core/ - Types, database (SQLite), entry manager, patterns
324
+ server/ - REST API (Express) + MCP server (stdio)
325
+ dashboard/ - Single-file HTML dashboard
326
+ reports/ - PDF and HTML report generators
327
+ cli/ - Command-line interface
328
+ hooks/ - Platform hook integrations
229
329
  .clawck/
230
- config.json Your configuration
231
- clawck.db SQLite database (auto-created)
330
+ config.json - Your configuration
331
+ clawck.db - SQLite database (auto-created)
232
332
  ```
233
333
 
234
334
  **Design principles:**
235
- - **Zero external dependencies** SQLite is embedded, no Redis/Postgres/Docker needed
236
- - **One process** API, dashboard, and MCP all run from the same `clawck serve`
237
- - **Append-only writes** Entries are created and updated, never deleted
238
- - **UUID-based merging** Multi-agent data combines without conflicts
239
- - **Configurable multipliers** Human-equivalent estimates are transparent and adjustable
240
-
241
- ## ClawckSpec v0.1
242
-
243
- Clawck implements an open schema for agent work entries. Any tool can emit ClawckSpec-compatible entries:
244
-
245
- ```json
246
- {
247
- "id": "550e8400-e29b-41d4-a716-446655440000",
248
- "agent": "cubi-research-01",
249
- "model": "claude-sonnet-4-20250514",
250
- "client": "acme-corp",
251
- "project": "grant-research",
252
- "task": "Find NEA grants matching sustainability criteria",
253
- "category": "research",
254
- "start": "2026-03-07T10:00:00Z",
255
- "end": "2026-03-07T10:47:00Z",
256
- "status": "completed",
257
- "tokens_in": 12400,
258
- "tokens_out": 3200,
259
- "cost_usd": 0.0852,
260
- "tool_calls": 8,
261
- "summary": "Found 12 matching grants totaling $2.4M in available funding",
262
- "tags": ["grants", "sustainability"],
263
- "source": "clawck-mcp",
264
- "spec_version": "0.1.0"
265
- }
266
- ```
335
+ - **Zero infrastructure** - SQLite embedded, no Redis/Postgres/Docker needed
336
+ - **One process** - API, dashboard, and MCP all run from `clawck serve`
337
+ - **Append-first** - Entries are created and updated; deletion available via CLI
338
+ - **UUID-based merging** - Multi-agent data combines without conflicts
339
+ - **Configurable** - Human-equivalent multipliers are transparent and adjustable
267
340
 
268
341
  ## Integrations
269
342
 
270
- ### Claude Code
271
- Add to `~/.claude/mcp_servers.json`:
343
+ **Claude Code** - Add to `~/.claude/mcp_servers.json`:
272
344
  ```json
273
345
  { "clawck": { "command": "npx", "args": ["-y", "clawck", "mcp"] } }
274
346
  ```
275
347
 
276
- ### OpenClaw
277
- Instrument at the harness level — auto-start/stop entries on task dispatch.
348
+ **Platform hooks** - Auto-track via `clawck hooks install claude|cursor|cline|windsurf|gemini|codex`
278
349
 
279
- ### n8n
280
- POST to `/api/start` and `/api/stop` from HTTP Request nodes.
350
+ **n8n** - POST to `/api/start` and `/api/stop` from HTTP Request nodes.
281
351
 
282
- ### LangGraph / CrewAI / Any Python Framework
352
+ **Python frameworks (LangGraph, CrewAI, etc.):**
283
353
  ```python
284
354
  import requests
285
-
286
- # Start
287
- r = requests.post("http://localhost:3456/api/start", json={
288
- "task": "Analyze data", "project": "analytics", "agent": "my-agent"
289
- })
355
+ r = requests.post("http://localhost:3456/api/start", json={"task": "Analyze data", "agent": "my-agent"})
290
356
  entry_id = r.json()["id"]
291
-
292
- # Stop
293
- requests.post("http://localhost:3456/api/stop", json={
294
- "id": entry_id, "status": "completed"
295
- })
357
+ requests.post("http://localhost:3456/api/stop", json={"id": entry_id, "status": "completed"})
296
358
  ```
297
359
 
360
+ ## Help / Troubleshooting
361
+
362
+ - `clawck --help` for CLI usage
363
+ - `clawck setup` for agent integration snippets
364
+ - `clawck hooks status` to check hook installations
365
+ - Data directory defaults to `.clawck/` in your working directory. Override with `-d <path>` or `CLAWCK_DIR` env var.
366
+
298
367
  ## Roadmap
299
368
 
369
+ - [x] PDF report export
370
+ - [x] Webhooks (task completion, failure, idle alerts)
371
+ - [x] Claude Code hooks adapter
372
+ - [x] Tracking patterns
373
+ - [x] Approval workflow
374
+ - [x] HTML interactive reports
300
375
  - [ ] Python SDK (`pip install clawck`)
301
376
  - [ ] Auto-instrumentation (monkey-patch LLM client libraries)
302
- - [ ] PDF report export
303
377
  - [ ] Email digest (weekly summary to clients)
304
- - [ ] Webhooks (notify on task completion)
305
- - [ ] Claude Code hooks adapter
306
378
  - [ ] OpenTelemetry exporter
307
- - [ ] "Powered by Clawck" embeddable widget
379
+ - [ ] Embeddable widget
308
380
 
309
381
  ## Contributing
310
382
 
311
383
  Contributions welcome! Especially:
312
- - **Adapters** New framework integrations
313
- - **Dashboard** UI improvements and features
314
- - **Multipliers** Better human-equivalent estimates backed by data
384
+ - **Adapters** - New framework integrations
385
+ - **Dashboard** - UI improvements and features
386
+ - **Multipliers** - Better human-equivalent estimates backed by data
315
387
 
316
388
  ## License
317
389
 
318
- MIT — use it, fork it, build on it.
390
+ MIT
319
391
 
320
392
  ---
321
393
 
322
- Built by [CubiCrew](https://cubicrew.com) · Created by [Vince Quarles](https://github.com/vincequarles)
394
+ Built by [CubiCrew](https://cubicrew.com) - Created by [Vince Quarles](https://github.com/vincequarles)