Idea Explorer is an autonomous research framework that takes structured research ideas and orchestrates AI agents to design, execute, analyze, and document experiments across diverse domains.
Key Features
| Feature | Description |
|---|---|
| Minimal Input | Just provide title, domain, and hypothesis - agents handle the rest |
| Agent-Driven Research | Literature review, dataset search, baseline identification |
| Multi-Provider Support | Works with Claude, Codex, and Gemini (raw CLI by default, notebooks optional) |
| Pragmatic Execution | Creates resources when they don't exist, always proceeds |
| Domain-Agnostic | ML, data science, AI, systems, theory, and more |
| Smart Documentation | Auto-generates reports, code, and results |
| GitHub Integration | Auto-creates repos and pushes results |
Quick Start
One-liner install (clones repo, pulls Docker image, walks you through setup):
curl -fsSL https://raw.githubusercontent.com/ChicagoHAI/idea-explorer/main/install.sh | bashOr set up manually:
# 1. Clone the repo (needed for CLI scripts, config, and templates)
git clone https://github.com/ChicagoHAI/idea-explorer
cd idea-explorer
# 2. Run the interactive setup wizard
./idea-explorer setup
# Or do each step yourself:
cp .env.example .env # Edit .env: add GITHUB_TOKEN, OPENAI_API_KEY
docker pull ghcr.io/chicagohai/idea-explorer:latest # Pull pre-built (~2 min)
docker tag ghcr.io/chicagohai/idea-explorer:latest chicagohai/idea-explorer:latest
claude # Login to your AI CLI (one-time, on host machine)
# 3. Run from IdeaHub (easiest way to start)
./idea-explorer fetch https://hypogenic.ai/ideahub/idea/HGVv4Z0ALWVHZ9YsstWT \
--submit --run --provider claude --full-permissionsThat's it! The agent fetches the idea, creates a GitHub repo, runs experiments, and pushes results.
Docker provides an isolated environment with GPU support, CLI tools, LaTeX, and paper-finder pre-installed. The pre-built image includes everything — Python venvs, CLI tools (Claude/Codex/Gemini), LaTeX, and paper-finder — so you skip the long build step.
# Clone the repo (provides CLI scripts, config, templates, and idea examples)
git clone https://github.com/ChicagoHAI/idea-explorer
cd idea-explorer
# Option A: Pull pre-built image (faster, ~2 min download)
docker pull ghcr.io/chicagohai/idea-explorer:latest
docker tag ghcr.io/chicagohai/idea-explorer:latest chicagohai/idea-explorer:latest
# Option B: Build from source (~10-15 min)
./idea-explorer build
# Configure
cp .env.example .env # Edit: add your API keys (see Configuration below)
# Login to your AI CLI (one-time, on your host machine)
claude # or: codex, gemini
# Credentials are automatically mounted into containersNote: Cloning the repo is required even when pulling the pre-built image. The repo provides the
./idea-explorerCLI, config files, templates, and idea examples. The Docker image provides the runtime environment (Python, tools, LaTeX). At runtime, config and templates are mounted from your local clone into the container, so you can customize them without rebuilding.
GPU support requires NVIDIA Container Toolkit:
sudo apt install nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerFor users who prefer running directly on their system.
curl -LsSf https://astral.sh/uv/install.sh | sh # Install uv
git clone https://github.com/ChicagoHAI/idea-explorer
cd idea-explorer
uv sync
cp .env.example .env # Edit: add your API keys
claude # Login to your AI CLIClaude Code, Codex, and Gemini CLIs use OAuth login (not API keys). Login once on your host machine:
claude # or: codex, geminiIn Docker mode, credentials are automatically mounted into containers.
Copy .env.example to .env and configure:
| Variable | Required | Description |
|---|---|---|
GITHUB_TOKEN |
Recommended | GitHub Personal Access Token (generate here, repo scope) |
GITHUB_ORG |
No | GitHub org name (default: personal account) |
OPENAI_API_KEY |
For IdeaHub/paper-finder | Used for IdeaHub fetching, LLM repo naming, paper-finder |
S2_API_KEY |
No | Enables paper-finder literature search (get here) |
COHERE_API_KEY |
No | Improves paper-finder ranking (~7% boost) |
Additional keys (ANTHROPIC_API_KEY, GOOGLE_API_KEY, OPENROUTER_KEY, HF_TOKEN, WANDB_API_KEY) are passed through to the agent environment.
Setup tiers:
- Basic: CLI login +
GITHUB_TOKEN— full idea-explorer - Enhanced: +
OPENAI_API_KEY— LLM repo naming + IdeaHub support - Full: +
S2_API_KEY(+ optionalCOHERE_API_KEY) — paper-finder literature search
Research workspaces are created in the directory specified by config/workspace.yaml.
Default: workspace/ in the project root (already gitignored).
To customize: Copy config/workspace.yaml.example to config/workspace.yaml and edit parent_dir:
workspace:
parent_dir: "/path/to/your/workspaces"
auto_create: trueTemplates in templates/ control agent behavior. In Docker mode, these are mounted from the host, so you can edit them without rebuilding:
| What to Change | Template File |
|---|---|
| Experiment workflow (phases 1-6) | templates/agents/session_instructions.txt |
| Paper writing structure | templates/agents/paper_writer.txt |
| Resource finding behavior | templates/agents/resource_finder.txt |
| Research methodology | templates/base/researcher.txt |
| Domain-specific guidance | templates/domains/<domain>/core.txt |
| Claude Code skills | templates/skills/<skill-name>/SKILL.md |
See ARCHITECTURE_AND_ROADMAP.md for details on the template system.
Browse ideas at IdeaHub, then fetch and run:
# Docker
./idea-explorer fetch <ideahub_url> --submit --run --provider claude --full-permissions
# Native
uv run python src/cli/fetch_from_ideahub.py <ideahub_url> --submit --run --provider claude --full-permissionsThis one command: fetches the idea, converts it to YAML, submits it, creates a GitHub repo, and runs the research agent.
You can also break it into steps:
./idea-explorer fetch <url> # Just fetch and convert to YAML
./idea-explorer fetch <url> --submit # Fetch, convert, and submit (creates GitHub repo)Write an idea YAML (see examples in ideas/examples/) and submit:
# Docker
./idea-explorer submit ideas/examples/ml_regularization_test.yaml
./idea-explorer run <idea_id> --provider claude --full-permissions
# Native
uv run python src/cli/submit.py ideas/examples/ml_regularization_test.yaml
uv run python src/core/runner.py <idea_id> --provider claude --full-permissions| Option | Description |
|---|---|
--provider claude|gemini|codex |
AI provider (default: claude) |
--timeout SECONDS |
Execution timeout (default: 3600) |
--full-permissions |
Allow agents to run without prompts |
--no-github |
Run locally without GitHub integration |
--github-org ORG |
GitHub organization (default: GITHUB_ORG env var) |
--private |
Create private GitHub repository |
--no-hash |
Simpler repo names (skip random hash) |
--write-paper |
Generate LaTeX paper after experiments |
--paper-style neurips|icml|acl |
Paper format (default: neurips) |
./idea-explorer shell # Interactive shell inside the container
./idea-explorer login # Login to CLI tools inside the container
./idea-explorer help # Show all commandsSystem Architecture
flowchart LR
subgraph Input
A[Research Idea<br/>YAML] --> B[Submit CLI]
C[IdeaHub URL] --> B
end
subgraph Processing
B --> D[GitHub Repo<br/>Created]
D --> E[Research Agent]
E --> F[Literature Review]
E --> G[Experiment Design]
E --> H[Code Execution]
end
subgraph Output
F --> I[Documentation]
G --> I
H --> I
I --> J[Notebooks]
I --> K[Results & Plots]
I --> L[GitHub Push]
end
Directory Structure:
ideas/
submitted/ <- New research ideas
in_progress/ <- Currently executing
completed/ <- Finished research
workspace/<repo-name>/
.claude/skills/ <- Claude Code skills (paper-finder, literature-review, etc.)
src/ <- Python scripts for experiments (default mode)
results/ <- Metrics, plots, models
logs/ <- Execution logs and transcripts
artifacts/ <- Models, checkpoints
notebooks/ <- Jupyter notebooks (only with --use-scribe)
paper_draft/ <- LaTeX paper output (only with --write-paper)
.idea-explorer/ <- Original idea spec
Research-First Philosophy
You can submit minimal ideas - agents will research the details:
- Just provide: title, domain, research question
- Agent searches for: datasets, baselines, evaluation methods
- Grounds in literature when resources exist
- Creates synthetic data/baselines when they don't
- Always proceeds to execution - doesn't get stuck
Example minimal idea:
idea:
title: "Do LLMs understand causality?"
domain: artificial_intelligence
hypothesis: "LLMs can distinguish causal from correlational relationships"
# That's it! Agent handles the restFull specification example:
idea:
title: "Clear, descriptive title"
domain: machine_learning
hypothesis: "Specific, testable hypothesis"
background:
description: "Context and motivation"
papers:
- url: "https://arxiv.org/..."
description: "Why this paper is relevant"
datasets:
- name: "Dataset name"
source: "Where to get it"
methodology:
approach: "High-level strategy"
steps: ["Step 1", "Step 2"]
baselines: ["Baseline 1", "Baseline 2"]
metrics: ["Metric 1", "Metric 2"]
constraints:
compute: gpu_required
time_limit: 3600See ideas/schema.yaml for full specification.
Supported Domains
| Domain | Examples |
|---|---|
| Artificial Intelligence | LLM evaluation, prompt engineering, AI agents, benchmarking |
| Machine Learning | Training, evaluation, hyperparameter tuning |
| Data Science | EDA, statistical analysis, visualization |
| Systems | Performance benchmarking, optimization |
| Theory | Algorithmic analysis, proof verification |
| Scientific Computing | Simulations, numerical methods |
| NLP | Language model experiments, text analysis |
| Computer Vision | Image processing, object detection |
| Reinforcement Learning | Agent training, policy evaluation |
Paper-Finder Integration
When S2_API_KEY and OPENAI_API_KEY are set, the container automatically starts the paper-finder service for high-quality literature search with relevance ranking.
- With paper-finder: Agents get ranked, relevant papers via Semantic Scholar + LLM scoring
- Without paper-finder: Agents fall back to manual search (arXiv, Semantic Scholar, Papers with Code)
- Optional
COHERE_API_KEY: Adds reranking for ~7% quality improvement
Paper-finder starts automatically in Docker — no extra setup needed.
- docs/WORKFLOW.md - Complete workflow guide
- docs/IDEAHUB_INTEGRATION.md - IdeaHub integration
- ARCHITECTURE_AND_ROADMAP.md - Architecture, template system, and roadmap
- DESIGN.md - Comprehensive design document
- docs/GITHUB_INTEGRATION.md - GitHub setup and usage
- ideas/schema.yaml - Full specification schema
- ideas/examples/ - Example research ideas
Contributions welcome! Areas of interest:
- New domain templates (biology, chemistry, social science, etc.)
- Additional evaluation criteria
- Integration with experiment trackers
- Web interface
- Multi-agent collaboration features
If you use Idea Explorer in research, please cite:
@software{idea_explorer_2025,
title={Idea Explorer: Autonomous Research Framework},
author={Haokun Liu, Chenhao Tan},
year={2025},
url={https://github.com/ChicagoHAI/idea-explorer}
}Some skills in templates/skills/ were inspired by claude-scientific-skills (MIT License, K-Dense Inc.). See NOTICE for details.
Apache 2.0 - See LICENSE file
Ready to explore your research ideas?
./idea-explorer fetch https://hypogenic.ai/ideahub/idea/YOUR_IDEA_ID \
--submit --run --provider claude --full-permissionsFor questions and feedback, open an issue or join our Discord.

