Autonomous AI research framework. Idea in, paper out.
What it doesTakes a research idea (YAML) and autonomously runs the full research lifecycle: literature review, experiment design, code execution, analysis, paper writing, GitHub pushInputYAML file with 3 required fields: title, domain, hypothesisOutputCode ( src/), results & plots ( results/), LaTeX paper ( paper_draft/), GitHub repoProvidersClaude Code, Codex, Gemini (OAuth login, not API keys)Installgit clone https://github.com/ChicagoHAI/neurico && cd neurico && ./neurico setupSourcegithub.com/ChicagoHAI/neurico — Chicago Human+AI Lab (ChicagoHAI), University of ChicagoLicenseApache 2.0
OptionWhat you needDocker (recommended)git + dockerNativegit + python>=3.10 + uv
Access to at least one AI coding CLI (OAuth login required):
WhatWhyGitHub token (classic, repo scope)Auto-creates repos and pushes results. Create here
KeyPurposeOPENAI_API_KEYLLM-based repo naming, IdeaHub fetching, paper-finderS2_API_KEYSemantic Scholar literature search via paper-finderOPENROUTER_KEYMulti-model access during experimentsCOHERE_API_KEYImproves paper-finder ranking (~7% boost)HF_TOKENHugging Face private models/datasetsWANDB_API_KEYWeights & Biases experiment tracking
GITHUB_TOKEN -- full NeuriCo functionalityOPENAI_API_KEY -- LLM repo naming + IdeaHub supportS2_API_KEY (+ optional COHERE_API_KEY) -- paper-finder literature searchThe Docker image is a pre-configured environment with Python, Node.js, AI coding CLIs (Claude Code, Codex, Gemini), and a full LaTeX installation for paper compilation -- so you don't have to install any of these yourself. All experiments run inside this container; nothing is installed on your host system beyond the cloned repo. The image is built from the open-source Dockerfile and hosted on GitHub Container Registry.
bash
git clone https://github.com/ChicagoHAI/neurico && cd neurico
./neurico setup # pulls Docker image, configures API keys, walks through CLI login
Or step by step:
bash
git clone https://github.com/ChicagoHAI/neurico && cd neurico
docker pull ghcr.io/chicagohai/neurico:latest
docker tag ghcr.io/chicagohai/neurico:latest chicagohai/neurico:latest
./neurico config # configure API keys
claude # login to AI CLI (one-time, on host)
bash
git clone https://github.com/ChicagoHAI/neurico && cd neurico
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync
cp .env.example .env # edit: add your API keys
claude # login to AI CLI
bash
./neurico fetch <ideahub_url> --submit --run --provider claude
Browse ideas at IdeaHub, copy the URL, and run the command above. NeuriCo fetches the idea, creates a GitHub repo, runs experiments, writes a paper, and pushes everything.
bash
./neurico submit path/to/idea.yaml
./neurico run <idea_id> --provider claude
OptionDescription--provider claude|gemini|codexAI provider (default: claude)--no-githubRun locally without GitHub integration--write-paperGenerate LaTeX paper after experiments (default: on)--paper-style neurips|icml|acl|amsPaper format (default: neurips)--privateCreate private GitHub repository
Only 3 fields required:
yaml
idea:
title: "Do LLMs understand causality?"
domain: artificial_intelligence
hypothesis: "LLMs can distinguish causal from correlational relationships"
Optional fields: background (papers, datasets, code references), methodology (approach, steps, baselines, metrics), constraints (compute, time, memory, budget), expected_outputs, evaluation_criteria.
Full schema: ideas/schema.yaml
text
workspace/<repo-name>/
src/ # Python experiment code
results/ # Metrics, plots, models
paper_draft/ # LaTeX paper (with --write-paper)
logs/ # Execution logs
artifacts/ # Models, checkpoints
.neurico/ # Original idea spec
Results are automatically pushed to the GitHub repo created during submission.
DomainExamplesArtificial IntelligenceLLM evaluation, prompt engineering, AI agentsMachine LearningTraining, evaluation, hyperparameter tuningData ScienceEDA, statistical analysis, visualizationNLPLanguage model experiments, text analysisComputer VisionImage processing, object detectionReinforcement LearningAgent training, policy evaluationSystemsPerformance benchmarking, optimizationTheoryAlgorithmic analysis, proof verificationScientific ComputingSimulations, numerical methods
bash
./neurico config # Interactive API key configuration
./neurico setup # Full setup wizard
./neurico shell # Interactive shell inside container
./neurico help # Show all commands
Environment variables go in .env (copy from .env.example). See README for details.
.env file and are never committed, pushed, or sent anywhere beyond the APIs they authenticate with. Sensitive environment variables are explicitly filtered out from all subprocess calls and sanitized from logs.