You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update README, add MIT license, add GitHub Pages deploy action
Rewrite README to reflect current state: deployment modes, follow-up
loop, billing, budget controls, all env vars, pm2 config. Switch
license from ISC to MIT. Add GitHub Actions workflow to build and
deploy the static app to GitHub Pages on push to main.
agent/ - Self-hosted agent server (webhook, dashboard, runner, poll loop)
25
26
api/ - SaaS API server (OAuth, billing, Stripe)
26
27
app/ - SaaS frontend (React)
27
28
skill/ - Claude Code CLI skills (/grog-solve, /grog-explore, /grog-review, /grog-answer)
29
+
pm2/ - PM2 ecosystem config for production
28
30
```
29
31
32
+
## Deployment Modes
33
+
34
+
### 1. Self-Host (free)
35
+
36
+
Run the agent on your own machine. You bring your own Anthropic API key and Claude Code CLI. No billing, no limits — just `yarn dev:agent` and go.
37
+
38
+
### 2. SaaS with Credits
39
+
40
+
Hosted by Turing Labs. Pay-per-token via credit packs (Stripe). 10,000 tokens = 1 credit. Credits are automatically deducted after each job completes.
41
+
42
+
### 3. Dedicated (coming soon)
43
+
44
+
Dedicated VPS per customer with managed infrastructure.
45
+
30
46
## Self-Host Setup
31
47
32
48
### Prerequisites
@@ -128,14 +144,18 @@ On any issue in a repo where the app is installed, comment:
128
144
129
145
The agent will pick it up, work on it, and open a PR.
130
146
147
+
## Follow-up Loop
148
+
149
+
When the agent can't solve an issue on the first pass, it posts a comment asking for clarification and sets the job to `waiting_for_reply`. When you reply and mention the bot again, the agent re-runs with the full conversation — the new reply is highlighted so Claude knows exactly what changed.
150
+
131
151
## Dashboard
132
152
133
153
The agent includes a built-in terminal-style dashboard at `http://localhost:3000`:
134
154
135
155
-**Job list** — all jobs with status, repo, issue, age, token usage
136
156
-**Live terminal** — click any job to see real-time Claude output (SSE streaming)
137
157
-**Stop/Start** — pause and resume jobs from the terminal panel
138
-
-**Budget display** — token usage tracking in the header
158
+
-**Budget display** — token usage tracking with hourly/daily limits in the header
139
159
-**App status** — shows connected GitHub App with disconnect option
140
160
141
161
## Production Deployment (PM2)
@@ -159,6 +179,9 @@ For webhooks to work in production, your agent needs a public URL. Set the webho
159
179
|`MAX_RETRIES`| No |`2`| Retries for transient failures |
160
180
|`DAILY_TOKEN_BUDGET`| No |`0` (unlimited) | Daily token limit |
161
181
|`HOURLY_TOKEN_BUDGET`| No |`0` (unlimited) | Hourly token limit |
182
+
|`LOG_LEVEL`| No |`info`|`debug`, `info`, `warn`, `error`|
183
+
|`LOG_FORMAT`| No | human-readable | Set to `json` for structured output |
184
+
|`STRIPE_SECRET_KEY`| No | — | Enable billing (SaaS mode) |
162
185
163
186
The GitHub App credentials (App ID, private key, installation ID) are stored in MongoDB and configured through the dashboard — no need to put them in `.env`.
164
187
@@ -181,4 +204,4 @@ Then in any Claude Code session:
0 commit comments