ralph-starter 0.0.1 → 0.1.1-beta.1
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 +707 -17
- package/dist/auth/browser.d.ts +10 -0
- package/dist/auth/browser.d.ts.map +1 -0
- package/dist/auth/browser.js +56 -0
- package/dist/auth/browser.js.map +1 -0
- package/dist/auth/index.d.ts +5 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +5 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/oauth-server.d.ts +20 -0
- package/dist/auth/oauth-server.d.ts.map +1 -0
- package/dist/auth/oauth-server.js +168 -0
- package/dist/auth/oauth-server.js.map +1 -0
- package/dist/auth/pkce.d.ts +46 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/pkce.js +57 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/auth/providers/base.d.ts +52 -0
- package/dist/auth/providers/base.d.ts.map +1 -0
- package/dist/auth/providers/base.js +70 -0
- package/dist/auth/providers/base.js.map +1 -0
- package/dist/auth/providers/index.d.ts +23 -0
- package/dist/auth/providers/index.d.ts.map +1 -0
- package/dist/auth/providers/index.js +39 -0
- package/dist/auth/providers/index.js.map +1 -0
- package/dist/auth/providers/linear.d.ts +37 -0
- package/dist/auth/providers/linear.d.ts.map +1 -0
- package/dist/auth/providers/linear.js +46 -0
- package/dist/auth/providers/linear.js.map +1 -0
- package/dist/auth/providers/notion.d.ts +36 -0
- package/dist/auth/providers/notion.d.ts.map +1 -0
- package/dist/auth/providers/notion.js +75 -0
- package/dist/auth/providers/notion.js.map +1 -0
- package/dist/auth/providers/todoist.d.ts +29 -0
- package/dist/auth/providers/todoist.d.ts.map +1 -0
- package/dist/auth/providers/todoist.js +40 -0
- package/dist/auth/providers/todoist.js.map +1 -0
- package/dist/automation/git.d.ts +15 -0
- package/dist/automation/git.d.ts.map +1 -0
- package/dist/automation/git.js +73 -0
- package/dist/automation/git.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +192 -19
- package/dist/cli.js.map +1 -0
- package/dist/commands/auth.d.ts +14 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +243 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/check.d.ts +12 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +124 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/config.d.ts +13 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +374 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/init.d.ts +31 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +353 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/integrations.d.ts +17 -0
- package/dist/commands/integrations.d.ts.map +1 -0
- package/dist/commands/integrations.js +193 -0
- package/dist/commands/integrations.js.map +1 -0
- package/dist/commands/plan.d.ts +5 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +80 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/run.d.ts +26 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +351 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/scaffold.d.ts +9 -0
- package/dist/commands/scaffold.d.ts.map +1 -0
- package/dist/commands/scaffold.js +128 -0
- package/dist/commands/scaffold.js.map +1 -0
- package/dist/commands/setup.d.ts +12 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +27 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/skill.d.ts +6 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +151 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/source.d.ts +17 -0
- package/dist/commands/source.d.ts.map +1 -0
- package/dist/commands/source.js +173 -0
- package/dist/commands/source.js.map +1 -0
- package/dist/config/manager.d.ts +70 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/manager.js +227 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -2
- package/dist/index.js.map +1 -0
- package/dist/integrations/_template/auth.d.ts +29 -0
- package/dist/integrations/_template/auth.d.ts.map +1 -0
- package/dist/integrations/_template/auth.js +42 -0
- package/dist/integrations/_template/auth.js.map +1 -0
- package/dist/integrations/_template/index.d.ts +8 -0
- package/dist/integrations/_template/index.d.ts.map +1 -0
- package/dist/integrations/_template/index.js +8 -0
- package/dist/integrations/_template/index.js.map +1 -0
- package/dist/integrations/_template/source.d.ts +34 -0
- package/dist/integrations/_template/source.d.ts.map +1 -0
- package/dist/integrations/_template/source.js +124 -0
- package/dist/integrations/_template/source.js.map +1 -0
- package/dist/integrations/base.d.ts +158 -0
- package/dist/integrations/base.d.ts.map +1 -0
- package/dist/integrations/base.js +109 -0
- package/dist/integrations/base.js.map +1 -0
- package/dist/integrations/github/index.d.ts +8 -0
- package/dist/integrations/github/index.d.ts.map +1 -0
- package/dist/integrations/github/index.js +8 -0
- package/dist/integrations/github/index.js.map +1 -0
- package/dist/integrations/github/source.d.ts +26 -0
- package/dist/integrations/github/source.d.ts.map +1 -0
- package/dist/integrations/github/source.js +190 -0
- package/dist/integrations/github/source.js.map +1 -0
- package/dist/integrations/index.d.ts +37 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +71 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/linear/auth.d.ts +37 -0
- package/dist/integrations/linear/auth.d.ts.map +1 -0
- package/dist/integrations/linear/auth.js +45 -0
- package/dist/integrations/linear/auth.js.map +1 -0
- package/dist/integrations/linear/index.d.ts +9 -0
- package/dist/integrations/linear/index.d.ts.map +1 -0
- package/dist/integrations/linear/index.js +9 -0
- package/dist/integrations/linear/index.js.map +1 -0
- package/dist/integrations/linear/source.d.ts +26 -0
- package/dist/integrations/linear/source.d.ts.map +1 -0
- package/dist/integrations/linear/source.js +248 -0
- package/dist/integrations/linear/source.js.map +1 -0
- package/dist/integrations/notion/index.d.ts +8 -0
- package/dist/integrations/notion/index.d.ts.map +1 -0
- package/dist/integrations/notion/index.js +8 -0
- package/dist/integrations/notion/index.js.map +1 -0
- package/dist/integrations/notion/source.d.ts +53 -0
- package/dist/integrations/notion/source.d.ts.map +1 -0
- package/dist/integrations/notion/source.js +463 -0
- package/dist/integrations/notion/source.js.map +1 -0
- package/dist/llm/api.d.ts +29 -0
- package/dist/llm/api.d.ts.map +1 -0
- package/dist/llm/api.js +152 -0
- package/dist/llm/api.js.map +1 -0
- package/dist/llm/index.d.ts +7 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +7 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/providers.d.ts +24 -0
- package/dist/llm/providers.d.ts.map +1 -0
- package/dist/llm/providers.js +51 -0
- package/dist/llm/providers.js.map +1 -0
- package/dist/loop/__tests__/agents.test.d.ts +2 -0
- package/dist/loop/__tests__/agents.test.d.ts.map +1 -0
- package/dist/loop/__tests__/agents.test.js +183 -0
- package/dist/loop/__tests__/agents.test.js.map +1 -0
- package/dist/loop/__tests__/circuit-breaker.test.d.ts +2 -0
- package/dist/loop/__tests__/circuit-breaker.test.d.ts.map +1 -0
- package/dist/loop/__tests__/circuit-breaker.test.js +161 -0
- package/dist/loop/__tests__/circuit-breaker.test.js.map +1 -0
- package/dist/loop/__tests__/cost-tracker.test.d.ts +2 -0
- package/dist/loop/__tests__/cost-tracker.test.d.ts.map +1 -0
- package/dist/loop/__tests__/cost-tracker.test.js +200 -0
- package/dist/loop/__tests__/cost-tracker.test.js.map +1 -0
- package/dist/loop/__tests__/rate-limiter.test.d.ts +2 -0
- package/dist/loop/__tests__/rate-limiter.test.d.ts.map +1 -0
- package/dist/loop/__tests__/rate-limiter.test.js +198 -0
- package/dist/loop/__tests__/rate-limiter.test.js.map +1 -0
- package/dist/loop/__tests__/validation.test.d.ts +2 -0
- package/dist/loop/__tests__/validation.test.d.ts.map +1 -0
- package/dist/loop/__tests__/validation.test.js +234 -0
- package/dist/loop/__tests__/validation.test.js.map +1 -0
- package/dist/loop/agents.d.ts +26 -0
- package/dist/loop/agents.d.ts.map +1 -0
- package/dist/loop/agents.js +188 -0
- package/dist/loop/agents.js.map +1 -0
- package/dist/loop/circuit-breaker.d.ts +61 -0
- package/dist/loop/circuit-breaker.d.ts.map +1 -0
- package/dist/loop/circuit-breaker.js +143 -0
- package/dist/loop/circuit-breaker.js.map +1 -0
- package/dist/loop/cost-tracker.d.ts +90 -0
- package/dist/loop/cost-tracker.d.ts.map +1 -0
- package/dist/loop/cost-tracker.js +229 -0
- package/dist/loop/cost-tracker.js.map +1 -0
- package/dist/loop/estimator.d.ts +20 -0
- package/dist/loop/estimator.d.ts.map +1 -0
- package/dist/loop/estimator.js +123 -0
- package/dist/loop/estimator.js.map +1 -0
- package/dist/loop/executor.d.ts +44 -0
- package/dist/loop/executor.d.ts.map +1 -0
- package/dist/loop/executor.js +646 -0
- package/dist/loop/executor.js.map +1 -0
- package/dist/loop/progress.d.ts +34 -0
- package/dist/loop/progress.d.ts.map +1 -0
- package/dist/loop/progress.js +186 -0
- package/dist/loop/progress.js.map +1 -0
- package/dist/loop/rate-limiter.d.ts +71 -0
- package/dist/loop/rate-limiter.d.ts.map +1 -0
- package/dist/loop/rate-limiter.js +151 -0
- package/dist/loop/rate-limiter.js.map +1 -0
- package/dist/loop/semantic-analyzer.d.ts +33 -0
- package/dist/loop/semantic-analyzer.d.ts.map +1 -0
- package/dist/loop/semantic-analyzer.js +153 -0
- package/dist/loop/semantic-analyzer.js.map +1 -0
- package/dist/loop/skills.d.ts +29 -0
- package/dist/loop/skills.d.ts.map +1 -0
- package/dist/loop/skills.js +174 -0
- package/dist/loop/skills.js.map +1 -0
- package/dist/loop/step-detector.d.ts +17 -0
- package/dist/loop/step-detector.d.ts.map +1 -0
- package/dist/loop/step-detector.js +280 -0
- package/dist/loop/step-detector.js.map +1 -0
- package/dist/loop/task-counter.d.ts +41 -0
- package/dist/loop/task-counter.d.ts.map +1 -0
- package/dist/loop/task-counter.js +99 -0
- package/dist/loop/task-counter.js.map +1 -0
- package/dist/loop/validation.d.ts +28 -0
- package/dist/loop/validation.d.ts.map +1 -0
- package/dist/loop/validation.js +138 -0
- package/dist/loop/validation.js.map +1 -0
- package/dist/mcp/core/init.d.ts +15 -0
- package/dist/mcp/core/init.d.ts.map +1 -0
- package/dist/mcp/core/init.js +272 -0
- package/dist/mcp/core/init.js.map +1 -0
- package/dist/mcp/core/plan.d.ts +15 -0
- package/dist/mcp/core/plan.d.ts.map +1 -0
- package/dist/mcp/core/plan.js +90 -0
- package/dist/mcp/core/plan.js.map +1 -0
- package/dist/mcp/core/run.d.ts +26 -0
- package/dist/mcp/core/run.d.ts.map +1 -0
- package/dist/mcp/core/run.js +114 -0
- package/dist/mcp/core/run.js.map +1 -0
- package/dist/mcp/prompts.d.ts +10 -0
- package/dist/mcp/prompts.d.ts.map +1 -0
- package/dist/mcp/prompts.js +163 -0
- package/dist/mcp/prompts.js.map +1 -0
- package/dist/mcp/resources.d.ts +16 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +114 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/server.d.ts +10 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +73 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +15 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +316 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/presets/index.d.ts +36 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +236 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/setup/agent-detector.d.ts +57 -0
- package/dist/setup/agent-detector.d.ts.map +1 -0
- package/dist/setup/agent-detector.js +170 -0
- package/dist/setup/agent-detector.js.map +1 -0
- package/dist/setup/index.d.ts +7 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/index.js +7 -0
- package/dist/setup/index.js.map +1 -0
- package/dist/setup/llm-tester.d.ts +33 -0
- package/dist/setup/llm-tester.d.ts.map +1 -0
- package/dist/setup/llm-tester.js +105 -0
- package/dist/setup/llm-tester.js.map +1 -0
- package/dist/setup/wizard.d.ts +19 -0
- package/dist/setup/wizard.d.ts.map +1 -0
- package/dist/setup/wizard.js +313 -0
- package/dist/setup/wizard.js.map +1 -0
- package/dist/sources/__tests__/file.test.d.ts +2 -0
- package/dist/sources/__tests__/file.test.d.ts.map +1 -0
- package/dist/sources/__tests__/file.test.js +126 -0
- package/dist/sources/__tests__/file.test.js.map +1 -0
- package/dist/sources/__tests__/github.test.d.ts +2 -0
- package/dist/sources/__tests__/github.test.d.ts.map +1 -0
- package/dist/sources/__tests__/github.test.js +157 -0
- package/dist/sources/__tests__/github.test.js.map +1 -0
- package/dist/sources/base.d.ts +72 -0
- package/dist/sources/base.d.ts.map +1 -0
- package/dist/sources/base.js +127 -0
- package/dist/sources/base.js.map +1 -0
- package/dist/sources/builtin/file.d.ts +21 -0
- package/dist/sources/builtin/file.d.ts.map +1 -0
- package/dist/sources/builtin/file.js +129 -0
- package/dist/sources/builtin/file.js.map +1 -0
- package/dist/sources/builtin/github-scraper.d.ts +65 -0
- package/dist/sources/builtin/github-scraper.d.ts.map +1 -0
- package/dist/sources/builtin/github-scraper.js +324 -0
- package/dist/sources/builtin/github-scraper.js.map +1 -0
- package/dist/sources/builtin/pdf.d.ts +24 -0
- package/dist/sources/builtin/pdf.d.ts.map +1 -0
- package/dist/sources/builtin/pdf.js +174 -0
- package/dist/sources/builtin/pdf.js.map +1 -0
- package/dist/sources/builtin/url.d.ts +47 -0
- package/dist/sources/builtin/url.d.ts.map +1 -0
- package/dist/sources/builtin/url.js +429 -0
- package/dist/sources/builtin/url.js.map +1 -0
- package/dist/sources/config.d.ts +72 -0
- package/dist/sources/config.d.ts.map +1 -0
- package/dist/sources/config.js +215 -0
- package/dist/sources/config.js.map +1 -0
- package/dist/sources/index.d.ts +47 -0
- package/dist/sources/index.d.ts.map +1 -0
- package/dist/sources/index.js +210 -0
- package/dist/sources/index.js.map +1 -0
- package/dist/sources/integrations/github.d.ts +24 -0
- package/dist/sources/integrations/github.d.ts.map +1 -0
- package/dist/sources/integrations/github.js +193 -0
- package/dist/sources/integrations/github.js.map +1 -0
- package/dist/sources/integrations/linear.d.ts +18 -0
- package/dist/sources/integrations/linear.d.ts.map +1 -0
- package/dist/sources/integrations/linear.js +197 -0
- package/dist/sources/integrations/linear.js.map +1 -0
- package/dist/sources/integrations/notion.d.ts +39 -0
- package/dist/sources/integrations/notion.d.ts.map +1 -0
- package/dist/sources/integrations/notion.js +343 -0
- package/dist/sources/integrations/notion.js.map +1 -0
- package/dist/sources/integrations/todoist.d.ts +18 -0
- package/dist/sources/integrations/todoist.d.ts.map +1 -0
- package/dist/sources/integrations/todoist.js +154 -0
- package/dist/sources/integrations/todoist.js.map +1 -0
- package/dist/sources/types.d.ts +106 -0
- package/dist/sources/types.d.ts.map +1 -0
- package/dist/sources/types.js +9 -0
- package/dist/sources/types.js.map +1 -0
- package/dist/ui/index.d.ts +3 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +3 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/progress-renderer.d.ts +54 -0
- package/dist/ui/progress-renderer.d.ts.map +1 -0
- package/dist/ui/progress-renderer.js +118 -0
- package/dist/ui/progress-renderer.js.map +1 -0
- package/dist/ui/shimmer.d.ts +16 -0
- package/dist/ui/shimmer.d.ts.map +1 -0
- package/dist/ui/shimmer.js +31 -0
- package/dist/ui/shimmer.js.map +1 -0
- package/dist/wizard/ascii-art.d.ts +93 -0
- package/dist/wizard/ascii-art.d.ts.map +1 -0
- package/dist/wizard/ascii-art.js +378 -0
- package/dist/wizard/ascii-art.js.map +1 -0
- package/dist/wizard/idea-prompts.d.ts +18 -0
- package/dist/wizard/idea-prompts.d.ts.map +1 -0
- package/dist/wizard/idea-prompts.js +154 -0
- package/dist/wizard/idea-prompts.js.map +1 -0
- package/dist/wizard/idea-ui.d.ts +34 -0
- package/dist/wizard/idea-ui.d.ts.map +1 -0
- package/dist/wizard/idea-ui.js +225 -0
- package/dist/wizard/idea-ui.js.map +1 -0
- package/dist/wizard/ideas.d.ts +27 -0
- package/dist/wizard/ideas.d.ts.map +1 -0
- package/dist/wizard/ideas.js +511 -0
- package/dist/wizard/ideas.js.map +1 -0
- package/dist/wizard/index.d.ts +11 -0
- package/dist/wizard/index.d.ts.map +1 -0
- package/dist/wizard/index.js +472 -0
- package/dist/wizard/index.js.map +1 -0
- package/dist/wizard/llm.d.ts +14 -0
- package/dist/wizard/llm.d.ts.map +1 -0
- package/dist/wizard/llm.js +420 -0
- package/dist/wizard/llm.js.map +1 -0
- package/dist/wizard/prompts.d.ts +75 -0
- package/dist/wizard/prompts.d.ts.map +1 -0
- package/dist/wizard/prompts.js +455 -0
- package/dist/wizard/prompts.js.map +1 -0
- package/dist/wizard/spec-generator.d.ts +14 -0
- package/dist/wizard/spec-generator.d.ts.map +1 -0
- package/dist/wizard/spec-generator.js +200 -0
- package/dist/wizard/spec-generator.js.map +1 -0
- package/dist/wizard/types.d.ts +53 -0
- package/dist/wizard/types.d.ts.map +1 -0
- package/dist/wizard/types.js +10 -0
- package/dist/wizard/types.js.map +1 -0
- package/dist/wizard/ui.d.ts +57 -0
- package/dist/wizard/ui.d.ts.map +1 -0
- package/dist/wizard/ui.js +211 -0
- package/dist/wizard/ui.js.map +1 -0
- package/package.json +67 -8
package/README.md
CHANGED
|
@@ -1,6 +1,130 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="ralph.png" alt="Ralph Wiggum" />
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
>
|
|
5
|
+
<h3 align="center">
|
|
6
|
+
<strong>Connect your tools. Run AI coding loops. Ship faster.</strong>
|
|
7
|
+
</h3>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<em>Pull specs from GitHub, Linear, Notion, and more — then let AI build it autonomously.</em>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="#integrations">Integrations</a> •
|
|
15
|
+
<a href="#quick-start">Quick Start</a> •
|
|
16
|
+
<a href="#features">Features</a> •
|
|
17
|
+
<a href="https://ralphstarter.ai">Docs</a> •
|
|
18
|
+
<a href="ROADMAP.md">Roadmap</a>
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Why ralph-starter?
|
|
24
|
+
|
|
25
|
+
Most AI coding tools work in isolation. You describe a task, AI builds it, done.
|
|
26
|
+
|
|
27
|
+
**ralph-starter** is different. It **connects to your existing workflow** — pulling specs from GitHub issues, Linear tickets, Notion docs, or any URL — then runs autonomous AI loops until the task is complete.
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Build from a GitHub issue
|
|
31
|
+
ralph-starter run --from github --project myorg/myrepo --label "ready"
|
|
32
|
+
|
|
33
|
+
# Build from a Linear ticket
|
|
34
|
+
ralph-starter run --from linear --project "Mobile App" --label "sprint-1"
|
|
35
|
+
|
|
36
|
+
# Build from a Notion spec
|
|
37
|
+
ralph-starter run --from notion --project "https://notion.so/Product-Spec-abc123"
|
|
38
|
+
|
|
39
|
+
# Or just describe what you want
|
|
40
|
+
ralph-starter run "build a todo app with React" --commit
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Integrations
|
|
46
|
+
|
|
47
|
+
ralph-starter integrates with your favorite tools out of the box:
|
|
48
|
+
|
|
49
|
+
| Integration | Auth Method | What It Fetches |
|
|
50
|
+
|-------------|-------------|-----------------|
|
|
51
|
+
| **GitHub** | `gh` CLI (recommended) or API token | Issues, PRs, files |
|
|
52
|
+
| **Linear** | `linear` CLI or API key | Issues by team/project |
|
|
53
|
+
| **Notion** | None (public) or API token (private) | Pages, databases |
|
|
54
|
+
| **URLs** | None | Any public markdown/HTML |
|
|
55
|
+
| **Files** | None | Local markdown, PDF |
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Check available integrations
|
|
59
|
+
ralph-starter integrations list
|
|
60
|
+
|
|
61
|
+
# Test connectivity
|
|
62
|
+
ralph-starter integrations test github
|
|
63
|
+
ralph-starter integrations test linear
|
|
64
|
+
|
|
65
|
+
# Preview data before running
|
|
66
|
+
ralph-starter integrations fetch github owner/repo
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
> **Want more integrations?** Check the [Roadmap](ROADMAP.md) for upcoming integrations like Figma, Jira, GitLab, and more. PRs welcome!
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Table of Contents
|
|
74
|
+
|
|
75
|
+
- [Why ralph-starter?](#why-ralph-starter)
|
|
76
|
+
- [Integrations](#integrations)
|
|
77
|
+
- [Quick Start](#quick-start)
|
|
78
|
+
- [Features](#features)
|
|
79
|
+
- [Ralph Playbook Workflow](#ralph-playbook-workflow)
|
|
80
|
+
- [Commands](#commands)
|
|
81
|
+
- [Options](#options-for-run)
|
|
82
|
+
- [Configuration](#api-key-configuration)
|
|
83
|
+
- [Contributing](#contributing)
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Summary
|
|
88
|
+
|
|
89
|
+
**ralph-starter** is a production-ready CLI for running autonomous AI coding loops using the [Ralph Wiggum technique](https://ghuntley.com/ralph/). It makes autonomous coding accessible to everyone.
|
|
90
|
+
|
|
91
|
+
### Key Features
|
|
92
|
+
|
|
93
|
+
| Feature | Description |
|
|
94
|
+
|---------|-------------|
|
|
95
|
+
| 🔗 **Integrations** | Pull specs from GitHub, Linear, Notion, URLs, files |
|
|
96
|
+
| 🔄 **Multi-Agent Support** | Works with Claude Code, Cursor, Codex, OpenCode |
|
|
97
|
+
| 🧙 **Interactive Wizard** | Guided project creation with AI-refined specifications |
|
|
98
|
+
| 🎯 **16+ Workflow Presets** | Pre-configured modes: feature, tdd, debug, review, and more |
|
|
99
|
+
| 🔌 **Circuit Breaker** | Auto-stops stuck loops after repeated failures |
|
|
100
|
+
| 💰 **Cost Tracking** | Estimates token usage and cost per iteration |
|
|
101
|
+
| 🔧 **Git Automation** | Auto-commit, push, and PR creation |
|
|
102
|
+
| ✅ **Backpressure Validation** | Run tests/lint/build after each iteration |
|
|
103
|
+
| 🖥️ **MCP Server** | Use from Claude Desktop or any MCP client |
|
|
104
|
+
|
|
105
|
+
### Quick Example
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Simple task
|
|
109
|
+
ralph-starter run "build a todo app" --commit --validate
|
|
110
|
+
|
|
111
|
+
# With preset
|
|
112
|
+
ralph-starter run --preset tdd-red-green "add user authentication"
|
|
113
|
+
|
|
114
|
+
# With safety controls
|
|
115
|
+
ralph-starter run --rate-limit 50 --circuit-breaker-failures 3 "build X"
|
|
116
|
+
|
|
117
|
+
# Interactive wizard
|
|
118
|
+
ralph-starter
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## What is Ralph Wiggum?
|
|
124
|
+
|
|
125
|
+
Ralph Wiggum is a technique for running AI coding agents in autonomous loops until tasks are completed. Instead of prompting back and forth, you give the AI a task and let it iterate until done.
|
|
126
|
+
|
|
127
|
+
**ralph-starter** makes this dead simple - for developers and non-developers alike.
|
|
4
128
|
|
|
5
129
|
## Installation
|
|
6
130
|
|
|
@@ -10,25 +134,591 @@ npm install -g ralph-starter
|
|
|
10
134
|
npx ralph-starter
|
|
11
135
|
```
|
|
12
136
|
|
|
13
|
-
##
|
|
137
|
+
## Quick Start
|
|
138
|
+
|
|
139
|
+
### For Everyone (Non-Developers Welcome!)
|
|
140
|
+
|
|
141
|
+
Just run `ralph-starter` with no arguments to launch the interactive wizard:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
ralph-starter
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
The wizard will:
|
|
148
|
+
1. Ask if you have a project idea (or help you brainstorm one)
|
|
149
|
+
2. Refine your idea with AI
|
|
150
|
+
3. Let you customize the tech stack
|
|
151
|
+
4. Build your project automatically
|
|
152
|
+
|
|
153
|
+
### Don't Know What to Build?
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
ralph-starter ideas
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
This launches **Idea Mode** - a brainstorming session to help you discover project ideas:
|
|
160
|
+
- **Brainstorm with AI** - Get creative suggestions
|
|
161
|
+
- **See trending ideas** - Based on 2025-2026 tech trends
|
|
162
|
+
- **Based on my skills** - Personalized to technologies you know
|
|
163
|
+
- **Solve a problem** - Help fix something that frustrates you
|
|
164
|
+
|
|
165
|
+
### For Developers
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# Run a single task
|
|
169
|
+
ralph-starter run "build a todo app with React"
|
|
170
|
+
|
|
171
|
+
# With git automation
|
|
172
|
+
ralph-starter run "add user authentication" --commit --pr
|
|
173
|
+
|
|
174
|
+
# With validation (backpressure)
|
|
175
|
+
ralph-starter run "refactor auth" --commit --validate
|
|
176
|
+
|
|
177
|
+
# Fetch specs from external sources
|
|
178
|
+
ralph-starter run --from https://example.com/spec.md
|
|
179
|
+
ralph-starter run --from github --project myorg/myrepo --label "ready"
|
|
180
|
+
ralph-starter run --from linear --project "Mobile App"
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Working with Existing Projects
|
|
184
|
+
|
|
185
|
+
ralph-starter automatically detects existing projects when you run the wizard:
|
|
186
|
+
|
|
187
|
+
**Ralph Playbook Project** (has AGENTS.md, IMPLEMENTATION_PLAN.md, etc.):
|
|
188
|
+
```bash
|
|
189
|
+
cd my-ralph-project
|
|
190
|
+
ralph-starter
|
|
191
|
+
```
|
|
192
|
+
The wizard will detect the Ralph Playbook files and let you:
|
|
193
|
+
- Continue working (run the build loop)
|
|
194
|
+
- Regenerate the implementation plan
|
|
195
|
+
- Add new specs
|
|
196
|
+
|
|
197
|
+
**Language Project** (has package.json, pyproject.toml, Cargo.toml, go.mod):
|
|
198
|
+
```bash
|
|
199
|
+
cd my-existing-app
|
|
200
|
+
ralph-starter
|
|
201
|
+
```
|
|
202
|
+
The wizard will detect the project type and let you:
|
|
203
|
+
- Add features to the existing project
|
|
204
|
+
- Create a new project in a subfolder
|
|
205
|
+
|
|
206
|
+
This makes ralph-starter compatible with other Ralph Wiggum tools like [ralph-cli](https://github.com/yemyat/ralph-cli), [ralph-tui](https://github.com/subsy/ralph-tui), [oh-my-claudecode](https://github.com/Yeachan-Heo/oh-my-claudecode), and more.
|
|
207
|
+
|
|
208
|
+
## Features
|
|
209
|
+
|
|
210
|
+
### Interactive Wizard
|
|
211
|
+
Launch with `ralph-starter` (no args) for a guided experience:
|
|
212
|
+
- Describe your idea in plain English
|
|
213
|
+
- AI refines and suggests features
|
|
214
|
+
- Choose your tech stack
|
|
215
|
+
- Auto-runs init → plan → build
|
|
216
|
+
|
|
217
|
+
### Idea Mode
|
|
218
|
+
For users who don't know what to build yet:
|
|
219
|
+
```bash
|
|
220
|
+
ralph-starter ideas
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Integrations & Input Sources
|
|
224
|
+
|
|
225
|
+
ralph-starter's superpower is **pulling specs from anywhere** — then building autonomously.
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# From GitHub issues
|
|
229
|
+
ralph-starter run --from github --project owner/repo --label "ready"
|
|
230
|
+
|
|
231
|
+
# From Linear tickets
|
|
232
|
+
ralph-starter run --from linear --project "Mobile App"
|
|
233
|
+
|
|
234
|
+
# From Notion pages (public pages work without auth!)
|
|
235
|
+
ralph-starter run --from notion --project "https://notion.so/My-Spec-abc123"
|
|
236
|
+
|
|
237
|
+
# From URLs
|
|
238
|
+
ralph-starter run --from https://example.com/spec.md
|
|
239
|
+
|
|
240
|
+
# From local files
|
|
241
|
+
ralph-starter run --from ./specs/feature.md
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
#### Quick Setup
|
|
245
|
+
|
|
246
|
+
| Integration | Setup Command | Notes |
|
|
247
|
+
|-------------|---------------|-------|
|
|
248
|
+
| **GitHub** | `gh auth login` | Uses GitHub CLI (no API key needed) |
|
|
249
|
+
| **Linear** | `linear auth login` or `ralph-starter config set linear.apiKey <key>` | CLI or API key |
|
|
250
|
+
| **Notion** | None for public pages | Private pages need token |
|
|
251
|
+
|
|
252
|
+
#### Managing Integrations
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
# List all integrations with status
|
|
256
|
+
ralph-starter integrations list
|
|
257
|
+
|
|
258
|
+
# Test connectivity
|
|
259
|
+
ralph-starter integrations test github
|
|
260
|
+
ralph-starter integrations test linear
|
|
261
|
+
|
|
262
|
+
# Get help for specific integration
|
|
263
|
+
ralph-starter integrations help notion
|
|
264
|
+
|
|
265
|
+
# Preview data before running
|
|
266
|
+
ralph-starter integrations fetch github owner/repo --limit 5
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
> See the full [Integrations Guide](https://ralphstarter.ai/docs/integrations) for detailed setup instructions.
|
|
270
|
+
|
|
271
|
+
### MCP Server
|
|
272
|
+
Use ralph-starter from Claude Desktop or any MCP client:
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
ralph-starter mcp
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
Add to Claude Desktop config:
|
|
279
|
+
```json
|
|
280
|
+
{
|
|
281
|
+
"mcpServers": {
|
|
282
|
+
"ralph-starter": {
|
|
283
|
+
"command": "ralph-starter",
|
|
284
|
+
"args": ["mcp"]
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
**Available MCP Tools:**
|
|
291
|
+
- `ralph_init` - Initialize Ralph Playbook
|
|
292
|
+
- `ralph_plan` - Create implementation plan
|
|
293
|
+
- `ralph_run` - Execute coding loop
|
|
294
|
+
- `ralph_status` - Check progress
|
|
295
|
+
- `ralph_validate` - Run tests/lint/build
|
|
296
|
+
|
|
297
|
+
### Multi-Agent Support
|
|
298
|
+
Works with your favorite coding agents:
|
|
299
|
+
- **Claude Code** (recommended)
|
|
300
|
+
- **Cursor**
|
|
301
|
+
- **Codex**
|
|
302
|
+
- **OpenCode**
|
|
303
|
+
|
|
304
|
+
### Git Automation
|
|
305
|
+
```bash
|
|
306
|
+
ralph-starter run "your task" --commit # Auto-commit after tasks
|
|
307
|
+
ralph-starter run "your task" --push # Push to remote
|
|
308
|
+
ralph-starter run "your task" --pr # Create PR when done
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### Backpressure Validation
|
|
312
|
+
```bash
|
|
313
|
+
ralph-starter run "your task" --validate # Run tests/lint/build after each iteration
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
The `--validate` flag runs test, lint, and build commands (from AGENTS.md or package.json) after each iteration. If validation fails, the agent gets feedback to fix the issues.
|
|
317
|
+
|
|
318
|
+
### Workflow Presets
|
|
319
|
+
|
|
320
|
+
Pre-configured settings for common development scenarios:
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
# List all 16+ presets
|
|
324
|
+
ralph-starter presets
|
|
325
|
+
|
|
326
|
+
# Use a preset
|
|
327
|
+
ralph-starter run --preset feature "build login"
|
|
328
|
+
ralph-starter run --preset tdd-red-green "add tests"
|
|
329
|
+
ralph-starter run --preset debug "fix the bug"
|
|
330
|
+
ralph-starter run --preset refactor "clean up auth module"
|
|
331
|
+
ralph-starter run --preset pr-review "review changes"
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
**Available Presets:**
|
|
335
|
+
| Category | Presets |
|
|
336
|
+
|----------|---------|
|
|
337
|
+
| Development | `feature`, `feature-minimal`, `tdd-red-green`, `spec-driven`, `refactor` |
|
|
338
|
+
| Debugging | `debug`, `incident-response`, `code-archaeology` |
|
|
339
|
+
| Review | `review`, `pr-review`, `adversarial-review` |
|
|
340
|
+
| Documentation | `docs`, `documentation-first` |
|
|
341
|
+
| Specialized | `api-design`, `migration-safety`, `performance-optimization`, `scientific-method`, `research`, `gap-analysis` |
|
|
342
|
+
|
|
343
|
+
### Circuit Breaker
|
|
344
|
+
|
|
345
|
+
Automatically stops loops that are stuck:
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
# Stop after 3 consecutive failures (default)
|
|
349
|
+
ralph-starter run "build X" --validate
|
|
350
|
+
|
|
351
|
+
# Custom thresholds
|
|
352
|
+
ralph-starter run "build X" --circuit-breaker-failures 2 --circuit-breaker-errors 3
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
The circuit breaker monitors:
|
|
356
|
+
- **Consecutive failures**: Stops after N validation failures in a row
|
|
357
|
+
- **Same error count**: Stops if the same error repeats N times
|
|
358
|
+
|
|
359
|
+
### Progress Tracking
|
|
360
|
+
|
|
361
|
+
Writes iteration logs to `activity.md`:
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
# Enabled by default
|
|
365
|
+
ralph-starter run "build X"
|
|
366
|
+
|
|
367
|
+
# Disable if not needed
|
|
368
|
+
ralph-starter run "build X" --no-track-progress
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
Each iteration records:
|
|
372
|
+
- Timestamp and duration
|
|
373
|
+
- Status (completed, failed, blocked)
|
|
374
|
+
- Validation results
|
|
375
|
+
- Commit info
|
|
376
|
+
|
|
377
|
+
### File-Based Completion
|
|
378
|
+
|
|
379
|
+
The loop automatically checks for completion signals:
|
|
380
|
+
- `RALPH_COMPLETE` file in project root
|
|
381
|
+
- `.ralph-done` marker file
|
|
382
|
+
- All tasks marked `[x]` in `IMPLEMENTATION_PLAN.md`
|
|
383
|
+
|
|
384
|
+
### Rate Limiting
|
|
385
|
+
|
|
386
|
+
Control API call frequency to manage costs:
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
# Limit to 50 calls per hour
|
|
390
|
+
ralph-starter run --rate-limit 50 "build X"
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
### Cost Tracking
|
|
394
|
+
|
|
395
|
+
Track estimated token usage and costs during loops:
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
# Cost tracking is enabled by default
|
|
399
|
+
ralph-starter run "build X"
|
|
400
|
+
|
|
401
|
+
# Disable cost tracking
|
|
402
|
+
ralph-starter run "build X" --no-track-cost
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
Cost tracking provides:
|
|
406
|
+
- **Per-iteration cost** displayed during the loop
|
|
407
|
+
- **Running total** of tokens and cost
|
|
408
|
+
- **Cost summary** at the end of the loop
|
|
409
|
+
- **Cost logged** in `activity.md` for each iteration
|
|
410
|
+
- **Projected cost** for remaining iterations (after 3+ iterations)
|
|
411
|
+
|
|
412
|
+
Supported models for cost estimation:
|
|
413
|
+
- Claude 3 Opus ($15/$75 per 1M tokens)
|
|
414
|
+
- Claude 3.5 Sonnet ($3/$15 per 1M tokens)
|
|
415
|
+
- Claude 3.5 Haiku ($0.25/$1.25 per 1M tokens)
|
|
416
|
+
- GPT-4 ($30/$60 per 1M tokens)
|
|
417
|
+
- GPT-4 Turbo ($10/$30 per 1M tokens)
|
|
418
|
+
|
|
419
|
+
## Ralph Playbook Workflow
|
|
420
|
+
|
|
421
|
+
ralph-starter follows the [Ralph Playbook](https://claytonfarr.github.io/ralph-playbook/) methodology:
|
|
422
|
+
|
|
423
|
+
```bash
|
|
424
|
+
# 1. Initialize Ralph Playbook files
|
|
425
|
+
ralph-starter init
|
|
426
|
+
|
|
427
|
+
# 2. Write specs in specs/ folder
|
|
428
|
+
|
|
429
|
+
# 3. Create implementation plan
|
|
430
|
+
ralph-starter plan
|
|
431
|
+
|
|
432
|
+
# 4. Execute the plan
|
|
433
|
+
ralph-starter run --commit --validate
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
This creates:
|
|
437
|
+
- `AGENTS.md` - Agent instructions and validation commands
|
|
438
|
+
- `PROMPT_plan.md` - Planning prompt template
|
|
439
|
+
- `PROMPT_build.md` - Building prompt template
|
|
440
|
+
- `IMPLEMENTATION_PLAN.md` - Prioritized task list
|
|
441
|
+
- `specs/` - Specification files
|
|
442
|
+
|
|
443
|
+
## Commands
|
|
444
|
+
|
|
445
|
+
| Command | Description |
|
|
446
|
+
|---------|-------------|
|
|
447
|
+
| `ralph-starter` | Launch interactive wizard |
|
|
448
|
+
| `ralph-starter run [task]` | Run an autonomous coding loop |
|
|
449
|
+
| `ralph-starter integrations <action>` | Manage integrations (list, help, test, fetch) |
|
|
450
|
+
| `ralph-starter plan` | Create implementation plan from specs |
|
|
451
|
+
| `ralph-starter init` | Initialize Ralph Playbook in a project |
|
|
452
|
+
| `ralph-starter ideas` | Brainstorm project ideas |
|
|
453
|
+
| `ralph-starter presets` | List available workflow presets |
|
|
454
|
+
| `ralph-starter mcp` | Start as MCP server |
|
|
455
|
+
| `ralph-starter config <action>` | Manage credentials |
|
|
456
|
+
| `ralph-starter source <action>` | Manage input sources (legacy) |
|
|
457
|
+
| `ralph-starter skill add <repo>` | Install agent skills |
|
|
458
|
+
|
|
459
|
+
## Options for `run`
|
|
460
|
+
|
|
461
|
+
### Core Options
|
|
462
|
+
|
|
463
|
+
| Flag | Description |
|
|
464
|
+
|------|-------------|
|
|
465
|
+
| `--auto` | Skip permission prompts |
|
|
466
|
+
| `--commit` | Auto-commit after tasks |
|
|
467
|
+
| `--push` | Push commits to remote |
|
|
468
|
+
| `--pr` | Create pull request |
|
|
469
|
+
| `--validate` | Run tests/lint/build (backpressure) |
|
|
470
|
+
| `--agent <name>` | Specify agent to use |
|
|
471
|
+
| `--max-iterations <n>` | Max loop iterations (default: 50) |
|
|
472
|
+
|
|
473
|
+
### Workflow Presets
|
|
474
|
+
|
|
475
|
+
| Flag | Description |
|
|
476
|
+
|------|-------------|
|
|
477
|
+
| `--preset <name>` | Use a workflow preset (feature, tdd-red-green, debug, etc.) |
|
|
478
|
+
|
|
479
|
+
```bash
|
|
480
|
+
# List all available presets
|
|
481
|
+
ralph-starter presets
|
|
482
|
+
|
|
483
|
+
# Use a preset
|
|
484
|
+
ralph-starter run --preset feature "build login page"
|
|
485
|
+
ralph-starter run --preset tdd-red-green "add user validation"
|
|
486
|
+
ralph-starter run --preset debug "fix the auth bug"
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
### Exit Detection
|
|
490
|
+
|
|
491
|
+
| Flag | Description |
|
|
492
|
+
|------|-------------|
|
|
493
|
+
| `--completion-promise <string>` | Custom string to detect task completion |
|
|
494
|
+
| `--require-exit-signal` | Require explicit `EXIT_SIGNAL: true` for completion |
|
|
495
|
+
|
|
496
|
+
```bash
|
|
497
|
+
# Stop when agent outputs "FEATURE_DONE"
|
|
498
|
+
ralph-starter run --completion-promise "FEATURE_DONE" "build X"
|
|
499
|
+
|
|
500
|
+
# Require explicit exit signal
|
|
501
|
+
ralph-starter run --require-exit-signal "build Y"
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
### Safety Controls
|
|
505
|
+
|
|
506
|
+
| Flag | Description |
|
|
507
|
+
|------|-------------|
|
|
508
|
+
| `--rate-limit <n>` | Max API calls per hour (default: unlimited) |
|
|
509
|
+
| `--circuit-breaker-failures <n>` | Max consecutive failures before stopping (default: 3) |
|
|
510
|
+
| `--circuit-breaker-errors <n>` | Max same error occurrences before stopping (default: 5) |
|
|
511
|
+
| `--track-progress` | Write progress to activity.md (default: true) |
|
|
512
|
+
| `--no-track-progress` | Disable progress tracking |
|
|
513
|
+
| `--track-cost` | Track token usage and estimated cost (default: true) |
|
|
514
|
+
| `--no-track-cost` | Disable cost tracking |
|
|
515
|
+
|
|
516
|
+
```bash
|
|
517
|
+
# Limit to 50 API calls per hour
|
|
518
|
+
ralph-starter run --rate-limit 50 "build X"
|
|
519
|
+
|
|
520
|
+
# Stop after 2 consecutive failures
|
|
521
|
+
ralph-starter run --circuit-breaker-failures 2 "build Y"
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
### Source Options
|
|
525
|
+
|
|
526
|
+
| Flag | Description |
|
|
527
|
+
|------|-------------|
|
|
528
|
+
| `--from <source>` | Fetch spec from source |
|
|
529
|
+
| `--project <name>` | Project filter for sources |
|
|
530
|
+
| `--label <name>` | Label filter for sources |
|
|
531
|
+
| `--status <status>` | Status filter for sources |
|
|
532
|
+
| `--limit <n>` | Max items from source |
|
|
533
|
+
| `--prd <file>` | Read tasks from markdown |
|
|
534
|
+
|
|
535
|
+
## Config Commands
|
|
536
|
+
|
|
537
|
+
```bash
|
|
538
|
+
# Set credentials
|
|
539
|
+
ralph-starter config set linear.apiKey <key>
|
|
540
|
+
ralph-starter config set notion.token <token>
|
|
541
|
+
ralph-starter config set github.token <token>
|
|
542
|
+
|
|
543
|
+
# View config
|
|
544
|
+
ralph-starter config list
|
|
545
|
+
ralph-starter config get linear.apiKey
|
|
546
|
+
|
|
547
|
+
# Remove
|
|
548
|
+
ralph-starter config delete linear.apiKey
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
## Integration Commands
|
|
552
|
+
|
|
553
|
+
```bash
|
|
554
|
+
# List all integrations with auth status
|
|
555
|
+
ralph-starter integrations list
|
|
556
|
+
|
|
557
|
+
# Get help for a specific integration
|
|
558
|
+
ralph-starter integrations help github
|
|
559
|
+
ralph-starter integrations help linear
|
|
560
|
+
ralph-starter integrations help notion
|
|
561
|
+
|
|
562
|
+
# Test connectivity
|
|
563
|
+
ralph-starter integrations test github
|
|
564
|
+
ralph-starter integrations test linear
|
|
565
|
+
|
|
566
|
+
# Fetch and preview data
|
|
567
|
+
ralph-starter integrations fetch github owner/repo
|
|
568
|
+
ralph-starter integrations fetch linear "Mobile App" --limit 10
|
|
569
|
+
ralph-starter integrations fetch notion "https://notion.so/Page-abc123"
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
## Source Commands (Legacy)
|
|
573
|
+
|
|
574
|
+
```bash
|
|
575
|
+
# List available sources
|
|
576
|
+
ralph-starter source list
|
|
577
|
+
|
|
578
|
+
# Get help for a source
|
|
579
|
+
ralph-starter source help github
|
|
580
|
+
|
|
581
|
+
# Test source connectivity
|
|
582
|
+
ralph-starter source test linear
|
|
583
|
+
|
|
584
|
+
# Preview items from source
|
|
585
|
+
ralph-starter source preview github --project owner/repo
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
## Example: Build a SaaS Dashboard
|
|
589
|
+
|
|
590
|
+
```bash
|
|
591
|
+
mkdir my-saas && cd my-saas
|
|
592
|
+
git init
|
|
593
|
+
|
|
594
|
+
ralph-starter run "Create a SaaS dashboard with:
|
|
595
|
+
- User authentication (email/password)
|
|
596
|
+
- Stripe subscription billing
|
|
597
|
+
- Dashboard with usage metrics
|
|
598
|
+
- Dark mode support" --commit --pr --validate
|
|
599
|
+
|
|
600
|
+
# Watch the magic happen...
|
|
601
|
+
# 🔄 Loop 1: Setting up Next.js project...
|
|
602
|
+
# ✓ Validation passed
|
|
603
|
+
# ✓ Committed: chore: initialize Next.js with TypeScript
|
|
604
|
+
# 🔄 Loop 2: Adding authentication...
|
|
605
|
+
# ✓ Validation passed
|
|
606
|
+
# ✓ Committed: feat(auth): add NextAuth with email provider
|
|
607
|
+
# ...
|
|
608
|
+
# ✓ Created PR #1: "Build SaaS dashboard"
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
## Testing ralph-starter
|
|
612
|
+
|
|
613
|
+
### Quick Test (No API Keys)
|
|
614
|
+
|
|
615
|
+
You can test ralph-starter with public URLs - no API keys required:
|
|
616
|
+
|
|
617
|
+
```bash
|
|
618
|
+
# Test with a public GitHub gist or raw markdown
|
|
619
|
+
ralph-starter run --from https://raw.githubusercontent.com/rubenmarcus/ralph-starter/main/README.md
|
|
620
|
+
|
|
621
|
+
# Test with GitHub issues (requires gh CLI login)
|
|
622
|
+
gh auth login
|
|
623
|
+
ralph-starter run --from github --project rubenmarcus/ralph-starter --label "enhancement"
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
### Testing the Wizard
|
|
627
|
+
|
|
628
|
+
```bash
|
|
629
|
+
# Launch the interactive wizard
|
|
630
|
+
ralph-starter
|
|
631
|
+
|
|
632
|
+
# Or test idea mode
|
|
633
|
+
ralph-starter ideas
|
|
634
|
+
```
|
|
635
|
+
|
|
636
|
+
### Testing with Your Own Specs
|
|
637
|
+
|
|
638
|
+
```bash
|
|
639
|
+
# Create a simple spec file
|
|
640
|
+
echo "Build a simple counter app with React" > my-spec.md
|
|
641
|
+
|
|
642
|
+
# Run with local file
|
|
643
|
+
ralph-starter run --from ./my-spec.md
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
### Verifying Source Connectivity
|
|
647
|
+
|
|
648
|
+
Before using an integration, verify it's working:
|
|
649
|
+
|
|
650
|
+
```bash
|
|
651
|
+
# Check what integrations are available
|
|
652
|
+
ralph-starter integrations list
|
|
653
|
+
|
|
654
|
+
# Test each integration
|
|
655
|
+
ralph-starter integrations test github
|
|
656
|
+
ralph-starter integrations test linear
|
|
657
|
+
ralph-starter integrations test notion
|
|
658
|
+
|
|
659
|
+
# Preview items (dry run)
|
|
660
|
+
ralph-starter integrations fetch linear "My Project" --limit 3
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
## API Key Configuration
|
|
664
|
+
|
|
665
|
+
### Option 1: Environment Variables (Recommended for Developers)
|
|
666
|
+
|
|
667
|
+
Set environment variables in your shell profile or `.env` file:
|
|
668
|
+
|
|
669
|
+
```bash
|
|
670
|
+
# Add to ~/.bashrc, ~/.zshrc, or .env file
|
|
671
|
+
export LINEAR_API_KEY=lin_api_xxxxx
|
|
672
|
+
export NOTION_API_KEY=secret_xxxxx
|
|
673
|
+
export GITHUB_TOKEN=ghp_xxxxx
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
Environment variables take precedence over the config file.
|
|
677
|
+
|
|
678
|
+
### Option 2: Config Command
|
|
679
|
+
|
|
680
|
+
Use the CLI to store credentials:
|
|
681
|
+
|
|
682
|
+
```bash
|
|
683
|
+
ralph-starter config set linear.apiKey lin_api_xxxxx
|
|
684
|
+
ralph-starter config set notion.token secret_xxxxx
|
|
685
|
+
ralph-starter config set github.token ghp_xxxxx
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
Credentials are stored in `~/.ralph-starter/sources.json`.
|
|
689
|
+
|
|
690
|
+
### Environment Variable Reference
|
|
691
|
+
|
|
692
|
+
| Source | Environment Variable | Config Key |
|
|
693
|
+
|--------|---------------------|------------|
|
|
694
|
+
| Linear | `LINEAR_API_KEY` | `linear.apiKey` |
|
|
695
|
+
| Notion | `NOTION_API_KEY` | `notion.token` |
|
|
696
|
+
| GitHub | `GITHUB_TOKEN` | `github.token` |
|
|
697
|
+
|
|
698
|
+
### Managing Config
|
|
699
|
+
|
|
700
|
+
```bash
|
|
701
|
+
ralph-starter config list # View all config
|
|
702
|
+
ralph-starter config get linear # View specific source
|
|
703
|
+
ralph-starter config delete linear.apiKey # Remove a key
|
|
704
|
+
```
|
|
705
|
+
|
|
706
|
+
## Requirements
|
|
707
|
+
|
|
708
|
+
- Node.js 18+
|
|
709
|
+
- At least one coding agent installed (Claude Code, Cursor, etc.)
|
|
710
|
+
- Git (for automation features)
|
|
711
|
+
- GitHub CLI `gh` (for PR creation and GitHub source)
|
|
712
|
+
|
|
713
|
+
## Documentation
|
|
14
714
|
|
|
15
|
-
|
|
16
|
-
- **`ralph-starter new --template <name>`** - Create from templates (nextjs-saas, fastapi-ml, etc.)
|
|
17
|
-
- **`ralph-starter skill add <name>`** - Install skills from marketplace
|
|
18
|
-
- **`ralph-starter run [--docker]`** - Execute Claude Code loop with beautiful TUI
|
|
19
|
-
- **`ralph-starter docs init`** - Setup Docusaurus/VitePress documentation
|
|
20
|
-
- **`ralph-starter feature "<name>"`** - Create feature branch + spec + auto-PR
|
|
715
|
+
Full documentation available at: https://ralphstarter.ai
|
|
21
716
|
|
|
22
|
-
##
|
|
717
|
+
## Contributing
|
|
23
718
|
|
|
24
|
-
|
|
719
|
+
Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
25
720
|
|
|
26
|
-
|
|
27
|
-
2. **Zero-to-loop experience** - Chat → specs → running loop in minutes
|
|
28
|
-
3. **Template gallery** - Pre-built starters for common project types
|
|
29
|
-
4. **Skill marketplace** - Discover and install community skills
|
|
30
|
-
5. **Auto-documentation** - Generate Docusaurus/VitePress docs
|
|
31
|
-
6. **Docker execution** - Sandboxed, safe autonomous coding
|
|
721
|
+
For creating custom integrations, agents, or using the programmatic API, see the [Developer Extension Guide](https://ralphstarter.ai/docs/guides/extending-ralph-starter).
|
|
32
722
|
|
|
33
723
|
## License
|
|
34
724
|
|