The iteration stack for AI-native Growth teams. Open-source platform for rapid experimentation — pluggable data sources, configurable workflows, and a multi-agent engine that compresses the loop from weeks to hours.
The bottleneck in experimentation isn't ideas. It's the loop.
Observe metric → form hypothesis → design experiment → get alignment → configure → monitor → synthesize results → repeat.
Every step has handoffs. Every handoff costs days. Most don't require human judgment — they require human attention because the infrastructure to automate them safely doesn't exist.
Iterstack is that infrastructure.
- Pluggable data connectors — bring your own source (GA4, Mixpanel, Amplitude, custom warehouse)
- Configurable workflows — define which steps run, what thresholds matter, where humans approve. All YAML, no forking
- Run management + observability — every execution logged with full traces, token cost, and stakeholder summaries
- Human-in-the-loop gates — approve experiments before anything touches production
- REST API + dashboard — integrate with how your team already works
Under the hood, a multi-agent engine handles the reasoning: anomaly detection, hypothesis generation, experiment configuration, result evaluation, summary writing.
Data → 🔍 Analyst → 🧠 Planner → 👤 Human Gate → ⚡ Executor → 📊 Critic → 📝 Synthesizer
↓
(next cycle)
┌─────────────────────────────────────────────────────────────┐
│ Layer 3 — Interfaces │
│ REST API · Dashboard · Slack/Webhook │
├─────────────────────────────────────────────────────────────┤
│ Layer 2 — Platform Primitives │
│ Connectors · Run Manager · Config · Observability │
├─────────────────────────────────────────────────────────────┤
│ Layer 1 — Core Agent Engine │
│ Analyst → Planner → Executor → Critic → Synthesizer │
│ Orchestrated with LangGraph · Powered by Claude API │
└─────────────────────────────────────────────────────────────┘
See docs/architecture/overview.md for the full design.
# Clone the repo
git clone https://github.com/anuragchouksey/iterstack.git
cd iterstack
# Set up environment
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Add your Claude API key
cp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEY
# Run with the mock connector (no external services needed)
python main.pyGet your Claude API key at console.anthropic.com.
You'll see the full agent loop run end-to-end — Analyst detects an anomaly, Planner generates ranked hypotheses, you approve at the human gate, Executor configures the experiment, and Critic evaluates the results:
🔍 Analyst Agent starting
Data source: Mock
→ Tool: get_funnel_data
→ Tool: detect_anomalies
✅ Analyst Agent complete
🧠 Planner Agent starting
Top anomaly: Mobile checkout drop requires investigation
→ Tool: get_historical_experiments
✅ Planner Agent complete
👤 Human Review Gate
Top hypothesis: Reduce mobile checkout form fields
Approve? [y/N]: y
⚡ Executor Agent starting
→ Tool: calculate_sample_size
→ Tool: create_feature_flag
✅ Experiment launched: exp_a3f7b9c2
📊 Critic Agent starting
→ Tool: get_experiment_results
→ Tool: calculate_significance
→ Tool: check_guardrails
✅ Verdict: SHIP_WINNER (lift +6.8%, p=0.003)
Want to skip the human gate for automated runs?
python main.py --skip-hitlJust want to see the Analyst step (Phase 2 mode)?
python main.py --analyst-only| Agent | Role | Status |
|---|---|---|
| 🔍 Analyst | Detects funnel anomalies and surfaces the most critical signals | ✅ Built |
| 🧠 Planner | Generates and ranks experiment hypotheses from signals | ✅ Built |
| 👤 Human Gate | Approves hypotheses before experiment configuration | ✅ Built (console) |
| ⚡ Executor | Configures feature flags, audience segmentation, success metrics | ✅ Built |
| 📊 Critic | Monitors live experiments, kills losers early, ships winners | ✅ Built |
| 📝 Synthesizer | Writes stakeholder-ready summaries and learning documents | 🚧 Phase 5 |
- Phase 1 — Foundations & architecture
- Phase 2 — Analyst Agent + Connector Interface
- Phase 3 — Planner + Executor + Critic Agents (full agent loop)
- Phase 4 — Run Manager + Config System (platform primitives)
- Phase 5 — Synthesizer Agent + Observability + LangGraph orchestration
- Phase 6 — REST API + Dashboard
- Phase 7 — Production hardening + connector ecosystem
See ROADMAP.md for details.
Iterstack supports pluggable data sources. Currently shipped:
| Connector | Status | Notes |
|---|---|---|
mock |
✅ Available | Local JSON file, ideal for development |
ga4 |
🚧 Stub | Interface defined, full implementation in Phase 3 |
mixpanel |
🚧 Stub | Interface defined, full implementation in Phase 3 |
amplitude |
🚧 Stub | Interface defined, full implementation in Phase 3 |
heap |
📋 Planned | Phase 7 |
snowflake |
📋 Planned | Phase 7 (direct warehouse adapter) |
Want to add a connector? Implement the BaseConnector interface — about 30 lines. See docs/connectors/adding-a-connector.md.
iterstack/
├── core/ # Layer 1 — Agent engine
│ ├── agents/ # The agents themselves
│ │ ├── analyst.py ✅ Built (Phase 2)
│ │ ├── planner.py 🚧 Phase 3
│ │ ├── executor.py 🚧 Phase 3
│ │ ├── critic.py 🚧 Phase 3
│ │ ├── synthesizer.py 🚧 Phase 5
│ │ └── tools/ # Deterministic tools used by agents
│ ├── contracts/ # Pydantic schemas — agent handoff contracts
│ └── orchestration/ # LangGraph workflow (Phase 5)
├── platform/ # Layer 2 — Platform primitives
│ ├── connectors/ # Data source connectors
│ │ ├── base.py ✅ Interface (Phase 2)
│ │ ├── mock.py ✅ Built (Phase 2)
│ │ ├── ga4.py 🚧 Stub
│ │ ├── mixpanel.py 🚧 Stub
│ │ └── amplitude.py 🚧 Stub
│ ├── run_manager/ # Run lifecycle (Phase 4)
│ └── observability/ # Logging, traces, costs (Phase 5)
├── api/ # Layer 3 — REST API (Phase 6)
│ ├── server.py # FastAPI app
│ └── routes/ # Endpoint definitions
├── dashboard/ # Layer 3 — Web UI (Phase 6)
├── config/ # Platform configuration
├── data/ # Mock data for development
├── docs/ # Architecture and guides
│ ├── architecture/ # System design docs
│ ├── connectors/ # Connector integration guides
│ └── phases/ # Per-phase implementation plans
├── examples/ # Runnable example workflows
├── tests/ # Test suite
└── main.py # Entry point
Contributions welcome — see CONTRIBUTING.md.
Good first issues:
- Build the Mixpanel connector (implement BaseConnector)
- Add example workflows in
examples/ - Improve test coverage
- Documentation improvements
I spent three years running Member Growth engineering at Thrive Market — scaling from 900K to 1.6M+ members through experimentation. The bottleneck wasn't engineers or ideas. It was the time between "we noticed something" and "we shipped a test." Every handoff added days. The infrastructure to compress that loop didn't exist.
Iterstack is that infrastructure. Open-sourcing it so other Growth teams can adopt it, contribute, and build the future of AI-native experimentation together.
MIT — use it, fork it, ship it.
- Star this repo to follow progress
- Watch for releases
- Follow on LinkedIn for build-in-public updates