Environment-aware setup system that automatically detects your context (VPS, Codespaces, local dev) and installs only the tools you need.
git clone https://github.com/ebowwa/seed.git
cd seed
./setup.sh| Tool | Purpose |
|---|---|
| Claude Code | AI coding assistant |
| GitHub CLI | GitHub from terminal |
| Doppler | Secrets management |
| OrbStack | Fast Docker & Linux VMs (macOS) |
| Vision MCP | Image/video analysis (Z.ai) |
| Web Search MCP | Real-time web search (Z.ai) |
| GitHub MCP | Repository intelligence |
| chat.sh | Persistent Claude conversations |
| Ralph Iterative | "Mr. Meeseeks Mode" - Autonomous AI loops |
| Node Agent | Multi-node Ralph orchestration (port 8911) |
Ralph Iterative is a Claude Code plugin that relentlessly iterates on tasks until completion.
Quick Start:
# Install Ralph Iterative (runs automatically during setup)
./setup-ralph-iterative.sh
# Run a Ralph loop
doppler run --project seed --config prd -- claude '/go "Fix the authentication bug" --completion-promise BUG_FIXED' -p
# Check status
doppler run --project seed --config prd -- claude '/ralph-iterative-status' -p
# Stop a loop
doppler run --project seed --config prd -- claude '/quit' -pKey Commands:
| Command | Description |
|---|---|
/go |
Start Ralph loop |
/quit |
Stop active loop |
/ralph-iterative-status |
Show session status |
/ralph-iterative-history |
Show session history |
/ralph-iterative-resume |
Resume a session |
Features:
- ✅ Loops indefinitely until completion signal
- ✅ Tracks state in
.claude/.ralph-iterative.local.json - ✅ Monitored by Node Agent (GUI dashboard)
- ✅ SLAM subagents (planner, executor, paranoid, reviewer)
- ✅ Git integration (auto-commit, PRs)
📖 Full Documentation: RALPH-ITERATIVE-SETUP.md
Coordinator Node (seed-node-prod)
├── PM Daemon: Orchestrates work across nodes
└── Node Agent API: :8911
Worker Nodes (seed-node-1, seed-node-2, ...)
├── Node Agent: Executes assigned tasks
└── Ralph Iterative: Runs autonomous loops
# 1. Bootstrap script (coming soon)
curl -fsSL https://raw.githubusercontent.com/ebowwa/seed/main/bootstrap-node.sh | bash
# 2. Manual setup
git clone https://github.com/ebowwa/seed.git
cd seed
./setup.sh
# 3. Register with coordinator
curl -X POST http://100.71.68.25:8911/api/nodes/register \
-H "Content-Type: application/json" \
-d '{"node_name": "seed-node-1", "role": "worker"}'# Check node health
curl http://localhost:8911/api/health
# List all nodes
curl http://localhost:8911/api/nodes
# Submit work to node
curl -X POST http://localhost:8911/api/ralph/start \
-H "Content-Type: application/json" \
-d '{"prompt": "Fix the authentication bug", "target_node": "seed-node-1"}'📖 Full Documentation: NODE-SETUP-GUIDE.md
All secrets are managed via Doppler - no hardcoded tokens in .env files.
# Install and login
brew install doppler-cli # macOS
# or
curl -sL https://cli.doppler.com/install.sh | sh # Linux
doppler login
# Setup project
doppler setup # Creates seed project with dev/prd configs
# Run any command with secrets injected
doppler run --project seed --config prd -- <your-command>
# View secrets
doppler secrets download --no-mask --project seed --config prdRequired Secrets in Doppler:
| Secret | Description | Example |
|---|---|---|
AI_ASSISTANT |
Claude provider | zai |
ZAI_API_KEY |
Z.ai API key | zai_xxx |
GITHUB_TOKEN |
GitHub Personal Access Token | ghp_xxx |
DOPPLER_TOKEN |
Doppler service token | dp.st.xxx |
TAILSCALE_AUTH_KEY |
Tailscale auth key | tskey-xxx |
Git is configured to fetch tokens from Doppler automatically:
# Credential helper is installed by setup.sh
# Uses Doppler GITHUB_TOKEN for all GitHub operations
git config --global credential.helper /root/.git-credentials-doppler
# No need to set credentials manually
git clone https://github.com/ebowwa/seed.git # Just works| Environment | Tools |
|---|---|
| VPS/Production | All tools |
| Codespaces | Claude, GitHub CLI, Doppler |
| Local Dev | All tools |
# Login to Doppler (one-time)
doppler login
# Configure project (already set up for seed)
doppler setup --project seed --config prd
# Verify secrets are accessible
doppler run --project seed --config prd -- env | grep -E "(ZAI|GITHUB|DOPPLER|TAILSCALE)"# GitHub CLI
gh auth login
# Tailscale
sudo tailscale up # Linux
tailscale up # macOS
# Doppler
doppler login# Run Claude Code with Z.ai config from Doppler
doppler run --project seed --config prd -- claudeThe chat.sh wrapper enables persistent conversations with Claude across sessions.
# Basic usage
./chat.sh "your prompt here"
# Custom project/config
./chat.sh "prompt" --project myproj --config dev
# Via environment variables
DOPPLER_PROJECT=other DOPPLER_CONFIG=staging ./chat.sh "prompt"How it works:
- Maintains conversation history in
/tmp/c.txt - Each prompt includes full conversation context
- Loads secrets from Doppler (configurable)
- Resets when
/tmp/c.txtis deleted
Communicate with a remote Claude instance on a VPS for distributed AI workflows.
# Example: Chat with remote Claude on Hetzner server
ssh ebowwa-deptwar "cd ~/seed && ./chat.sh 'your prompt'"Use cases:
- Different backends (Z.ai GLM vs Anthropic)
- Independent context/persistence
- Multi-Claude collaboration
- Test prompts across models without local config changes
setup.sh- Main installation scriptsituations.yaml- Environment/tool configschat.sh- Persistent conversation wrapper.env.example- API key template.claude/settings.template.json- Claude settings template.claude/settings.local.json- Local Claude settings.claude/commands/- Claude Code skills (seedistributed-claude.md)
- Ralph Iterative Setup
- Claude Code Skills
- GLM Models Comparison
- GitHub MCP Integration
- Z.ai Vision MCP
- Z.ai Web Search MCP
- Never commit
.envfiles - Rotate credentials regularly
- Use environment-specific tokens
MIT