MCPcopy Create free account
hub / github.com/ChicagoHAI/NeuriCo

github.com/ChicagoHAI/NeuriCo @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
2,261 symbols 9,294 edges 261 files ⚖ Apache-2.0 438 documented · 19% updated 4d ago★ 15631 open issues

Browse by type

Functions 1,808 Types & classes 448 Endpoints 5
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

NeuriCo - AI-Powered Research Acceleration

GitHub Stars Python 3.10+ Docker License X Follow Discord

NeuriCo (Neural Co-Scientist, inspired by Enrico Fermi) takes structured research ideas and coordinates agents to find resources, design and run experiments, analyze results, and document the work.

NeuriCo Demo

Key features

Feature Description
Minimal Input Provide a title, domain, and hypothesis; agents handle the research workflow
Agent-Driven Research Finds literature, datasets, and baselines before running experiments
Multi-Provider Support Works with Claude Code, Codex, and Gemini CLI
AutoResearch Iteratively proposes, executes, scores, and checkpoints improvements
HITL AutoResearch Adds a manager and human decision points to AutoResearch
Domain-Agnostic Supports ML, data science, AI, systems, theory, and more
Smart Documentation Produces reports, code, results, and optional papers
GitHub Integration Optionally creates repositories and pushes results

Requirements

Minimal (choose one):

  • Docker: Git and a running Docker installation
  • Local uv: Git, Python 3.10+, and uv

Provider access:

Recommended for GitHub publishing:

  • A classic GitHub token with repo scope; create one and follow Configuration
  • Skip this when research should remain local

Quick start

Choose Docker or local uv and use the same route throughout.

1. Install

Docker

git clone https://github.com/ChicagoHAI/neurico.git
cd neurico
./neurico setup --quick

For Codex or Gemini, run ./neurico setup instead.

Install the Docker route with one command

curl -fsSL https://raw.githubusercontent.com/ChicagoHAI/neurico/main/install.sh | bash

The installer clones NeuriCo into ./neurico and opens the full setup wizard.

Local uv (native)

git clone https://github.com/ChicagoHAI/neurico.git
cd neurico
uv sync
cp .env.example .env
claude  # or: codex, gemini

More information about provider authentication, workspace location, and optional services is available under Configuration.

2. Write and submit an idea

Create a YAML idea file:

idea:
  title: "Do LLMs distinguish causation from correlation?"
  domain: artificial_intelligence
  hypothesis: >
    Explicit causal prompts improve causal-reasoning accuracy compared with
    otherwise equivalent direct prompts.

Submit it and keep the printed <idea_id>:

Docker Local uv (native)
./neurico submit path/to/idea.yaml uv run python src/cli/submit.py path/to/idea.yaml

Additional input formats and submission options are available under Idea submission.

3. Choose a research mode

Replace <idea_id> with the ID printed during submission.

Mode Docker Local uv (native) Behavior
Standard ./neurico run <idea_id> uv run python src/core/runner.py <idea_id> Run the full pipeline once, from resource discovery to paper
AutoResearch ./neurico run <idea_id> --autoresearch uv run python src/core/runner.py <idea_id> --autoresearch Build a scored baseline, then test and retain improvements
HITL AutoResearch — web ./neurico hitl-web <idea_id> uv run python src/cli/hitl_web.py <idea_id> Participate in iterative research through the browser
HITL AutoResearch — terminal ./neurico hitl-cli <idea_id> uv run python src/cli/hitl_cli.py <idea_id> Participate in iterative research through the terminal

Detailed workflows and options are available under Research modes.

That's it—NeuriCo turns your hypothesis into experiments, evidence, and a reproducible research project.

Configuration

CLI authentication

Claude Code, Codex, and Gemini CLI use OAuth login, not API keys. Log in once on the host:

claude  # or: codex, gemini

In Docker mode, credentials are automatically mounted into containers.

Workspace configuration

Workspaces default to workspaces/. With Docker, change the location through the configuration menu:

./neurico config

With local uv, copy the workspace example and set parent_dir:

cp config/workspace.yaml.example config/workspace.yaml
workspace:
  parent_dir: "/path/to/your/workspaces"
  auto_create: true

Environment variables (.env)

With Docker, configure environment variables through the interactive menu:

./neurico config

With local uv, edit .env directly. Here's what each variable does:

GitHub publishingGITHUB_TOKEN is required only when publishing to GitHub; GITHUB_ORG is optional (uses the personal account if empty)

Variable Required Description
GITHUB_TOKEN Yes GitHub Classic Personal Access Token (create here, select repo scope)
GITHUB_ORG No GitHub org name (default: personal account)

Paper Finder and agent API keys

Paper FinderS2_API_KEY and either OPENROUTER_KEY or OPENAI_API_KEY required for full paper-finder; COHERE_API_KEY optional (improves ranking)

Variable Required Description
OPENROUTER_KEY Yes, unless OPENAI_API_KEY is set OpenRouter access for paper-finder, IdeaHub conversion, and LLM repo naming
OPENAI_API_KEY Yes, unless OPENROUTER_KEY is set Direct OpenAI access for paper-finder, IdeaHub conversion, and LLM repo naming
S2_API_KEY For paper-finder Semantic Scholar API key (get here)
COHERE_API_KEY No Improves paper-finder ranking (~7% boost)

Agent API Keys — optional, provided to the agent during automated experiments

Variable Purpose
ANTHROPIC_API_KEY Claude API access
GOOGLE_API_KEY Google AI / Gemini API access
OPENROUTER_KEY OpenRouter multi-model access
HF_TOKEN Hugging Face model/dataset access
WANDB_API_KEY Weights & Biases experiment tracking

Idea submission

NeuriCo accepts YAML, Markdown or text, and IdeaHub pages. Follow the Idea quickstart to prepare your first idea. See the complete Idea guide for all available fields and options.

Input Docker Local uv (native)
YAML ./neurico submit <idea.yaml> uv run python src/cli/submit.py <idea.yaml>
Markdown or text ./neurico submit-local idea.md uv run python src/cli/submit_local.py idea.md
IdeaHub ./neurico fetch <ideahub_url> uv run python src/cli/fetch_from_ideahub.py <ideahub_url>

Without --submit, Markdown, text, and IdeaHub inputs are converted to a YAML draft for review; submit the reviewed draft later with the YAML command above. Add --submit to submit the converted YAML directly to NeuriCo.

Publishing options

If GITHUB_TOKEN is configured, submission also creates and prepares a research repository.

Flag Purpose
--no-github Disable repository creation for this submission
--github-org ORG Create the repository in a GitHub organization
--private Create a private repository
--no-hash Omit the random hash from the generated repository name

Research modes

Standard

Standard performs one end-to-end research run: it finds resources, designs and executes experiments, analyzes the results, and writes a paper draft. Choose it when you want one complete pass without iterative improvement.

Docker Local uv (native)
./neurico run <idea_id> uv run python src/core/runner.py <idea_id>

Common options

Flag Default Purpose
--provider claude\|codex\|gemini claude Select the research worker provider
--compute-backend local\|dsi-slurm\|modal local Select where experiments execute
--timeout SECONDS 3600 Set the experiment-runner timeout
--no-full-permissions full permissions Restore normal provider permission prompts
--no-write-paper paper enabled Skip paper generation
--paper-style neurips\|icml\|acl\|ams domain default Select the paper template
--no-github GitHub when configured Keep the run local
--force-fresh reuse workspace Ignore an existing workspace and start again

Remote compute backends

Backend Setup
modal Run modal token new on the host. Docker automatically mounts ~/.modal.toml.
dsi-slurm Requires University of Chicago DSI cluster access and an SSH host configured as login.ds.

Advanced Standard pipeline controls

Flag Purpose
--pause-after-resources Review resources before experimentation
--skip-resource-finder Use an already prepared workspace
--resource-finder-timeout SECONDS Change the resource-finder timeout; default 2700
--use-scribe Use the optional notebook-oriented execution path
--enable-scoring Add a sealed rule-maker and scorer stage
--comment-mode Apply targeted changes from comments in the submitted idea

AutoResearch

AutoResearch starts from a scored baseline and improves it iteratively. Each iteration proposes one change, runs the experiment, and scores the result. The change is kept only when it improves the current best score.

Start fresh

Create a scored baseline and run one improvement iteration by default.

Docker Local uv (native)
./neurico run <idea_id> --autoresearch uv run python src/core/runner.py <idea_id> --autoresearch

Continue an existing AutoResearch workspace

Resume an earlier AutoResearch run without repeating resource discovery or baseline creation.

Docker Local uv (native)
./neurico run <idea_id> --continue-autoresearch uv run python src/core/runner.py <idea_id> --continue-autoresearch

Bootstrap a Standard workspace

Use this when a Standard run already has useful results but no AutoResearch baseline. NeuriCo scores the existing workspace and prepares it for continuation; it does not run an improvement iteration.

Docker Local uv (native)
./neurico run <idea_id> --bootstrap-autoresearch-baseline uv run python src/core/runner.py <idea_id> --bootstrap-autoresearch-baseline

Continue from the new baseline with --continue-autoresearch.

Common options

Flag Default Purpose
--autoresearch-iterations N 1 Set the number of improvement iterations

The Standard provider, compute, permission, paper, and GitHub options also apply to AutoResearch.

Advanced AutoResearch and bootstrap controls

Flag Default Purpose
--proposer-timeout SECONDS 900 Set proposal-generation timeout
--rule-maker-timeout SECONDS 1800 Set scoring-contract construction timeout
--scorer-timeout SECONDS 600 Set scoring timeout
--manifest-trimmer-timeout SECONDS 300 Set bootstrap manifest-trimmer timeout
--bootstrap-rule-maker off Retrofit scoring without creating AutoResearch continuation state

For continuation requirements and details about scoring, checkpoints, and recovery, see the AutoResearch guide.

HITL AutoResearch

Human-in-the-loop (HITL) AutoResearch adds a manager that coordinates the research agents and asks for your input at key decisions. You can review plans and proposals, give feedback, and guide which research directions continue. The web and terminal interfaces connect to the same manager conversation and workspace.

Web interface

Docker Local uv (native)
./neurico hitl-web <idea_id> uv run python src/cli/hitl_web.py <idea_id>

The web interface opens at `http:

Core symbols most depended-on inside this repo

browse all functions →

Shape

Method 952
Function 856
Class 448
Route 5

Languages

Python100%

Modules by API surface

src/core/autoresearch.py81 symbols
services/paper-finder/libs/dcollection/ai2i/dcollection/interface/collection.py66 symbols
services/paper-finder/agents/mabool/api/mabool/agents/metadata_only/plan.py62 symbols
services/paper-finder/libs/dcollection/ai2i/dcollection/interface/document.py59 symbols
services/paper-finder/agents/mabool/api/mabool/agents/metadata_only/ops.py59 symbols
services/paper-finder/libs/di/ai2i/di/scopes.py48 symbols
src/core/workspace_manifest.py43 symbols
services/paper-finder/agents/mabool/api/mabool/data_model/ufs.py39 symbols
services/paper-finder/agents/mabool/api/mabool/infra/operatives/operatives.py38 symbols
services/paper-finder/libs/chain/ai2i/chain/endpoints.py36 symbols
services/paper-finder/libs/di/ai2i/di/interface/scopes.py35 symbols
services/paper-finder/libs/dcollection/ai2i/dcollection/collection.py35 symbols

For agents

$ claude mcp add NeuriCo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page