README.md

September 1, 2026 · View on GitHub

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

FeatureDescription
Minimal InputProvide a title, domain, and hypothesis; agents handle the research workflow
Agent-Driven ResearchFinds literature, datasets, and baselines before running experiments
Multi-Provider SupportWorks with Claude Code, Codex, and Gemini CLI
AutoResearchIteratively proposes, executes, scores, and checkpoints improvements
HITL AutoResearchAdds a manager and human decision points to AutoResearch
Domain-AgnosticSupports ML, data science, AI, systems, theory, and more
Smart DocumentationProduces reports, code, results, and optional papers
GitHub IntegrationOptionally 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>:

DockerLocal uv (native)
./neurico submit path/to/idea.yamluv 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.

ModeDockerLocal 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> --autoresearchuv run python src/core/runner.py <idea_id> --autoresearchBuild 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 publishing — GITHUB_TOKEN is required only when publishing to GitHub; GITHUB_ORG is optional (uses the personal account if empty)

VariableRequiredDescription
GITHUB_TOKENYesGitHub Classic Personal Access Token (create here, select repo scope)
GITHUB_ORGNoGitHub org name (default: personal account)
Paper Finder, scoring verifier, and agent API keys

Paper Finder and scoring verifier — S2_API_KEY is required for full paper-finder, together with OPENROUTER_KEY or OPENAI_API_KEY. Scoring-contract verification uses the same configured OpenRouter or OpenAI API access. The verifier sends the declared contract and a bounded allowlist of scorer/function source to the configured external API; it never launches a coding agent. OpenRouter requests require zero-data-retention and deny data collection per request. In HITL mode an unavailable verifier is reported as API NOT AVAILABLE, a malformed response is reported as VERIFICATION INCONCLUSIVE, and manager review continues. In non-HITL scoring, verification remains a gate and an unavailable API fails the rule-maker stage. The verifier performs one request with SDK retries disabled and enforces an outer wall-clock deadline over the complete request. COHERE_API_KEY is optional (improves paper ranking).

VariableRequiredDescription
OPENROUTER_KEYYes, unless OPENAI_API_KEY is setOpenRouter access for paper-finder, IdeaHub conversion, LLM repo naming, and experiments that need it
OPENAI_API_KEYYes, unless OPENROUTER_KEY is setDirect OpenAI access for paper-finder, IdeaHub conversion, LLM repo naming, and experiments that need it
NEURICO_EVAL_VERIFIER_MODELNoOverride the verifier model (openai/gpt-4.1 through OpenRouter or gpt-4.1 through OpenAI by default)
S2_API_KEYFor paper-finderSemantic Scholar API key (get here)
COHERE_API_KEYNoImproves paper-finder ranking (~7% boost)

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

VariablePurpose
ANTHROPIC_API_KEYClaude API access
GOOGLE_API_KEYGoogle AI / Gemini API access
OPENROUTER_KEYOpenRouter multi-model access
HF_TOKENHugging Face model/dataset access
WANDB_API_KEYWeights & 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.

InputDockerLocal uv (native)
YAML./neurico submit <idea.yaml>uv run python src/cli/submit.py <idea.yaml>
Markdown or text./neurico submit-local idea.mduv 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.

FlagPurpose
--no-githubDisable repository creation for this submission
--github-org ORGCreate the repository in a GitHub organization
--privateCreate a private repository
--no-hashOmit 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.

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

Common options

FlagDefaultPurpose
--provider claude|codex|geminiclaudeSelect the research worker provider
--compute-backend local|dsi-slurm|modallocalSelect where experiments execute
--timeout SECONDS3600Set the experiment-runner timeout
--no-full-permissionsfull permissionsRestore normal provider permission prompts
--no-write-paperpaper enabledSkip paper generation
--paper-style neurips|icml|acl|amsdomain defaultSelect the paper template
--no-githubGitHub when configuredKeep the run local
--force-freshreuse workspaceIgnore an existing workspace and start again
Remote compute backends
BackendSetup
modalRun modal token new on the host. Docker automatically mounts ~/.modal.toml.
dsi-slurmRequires University of Chicago DSI cluster access and an SSH host configured as login.ds.
Advanced Standard pipeline controls
FlagPurpose
--pause-after-resourcesReview resources before experimentation
--skip-resource-finderUse an already prepared workspace
--resource-finder-timeout SECONDSChange the resource-finder timeout; default 2700
--use-scribeUse the optional notebook-oriented execution path
--enable-scoringAdd a sealed rule-maker and scorer stage
--comment-modeApply 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.

DockerLocal uv (native)
./neurico run <idea_id> --autoresearchuv 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.

DockerLocal uv (native)
./neurico run <idea_id> --continue-autoresearchuv 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.

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

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

Common options

FlagDefaultPurpose
--autoresearch-iterations N1Set the number of improvement iterations

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

Advanced AutoResearch and bootstrap controls
FlagDefaultPurpose
--proposer-timeout SECONDS900Set proposal-generation timeout
--rule-maker-timeout SECONDS1800Set scoring-contract construction timeout
--scorer-timeout SECONDS600Set scoring timeout
--manifest-trimmer-timeout SECONDS300Set bootstrap manifest-trimmer timeout
--bootstrap-rule-makeroffRetrofit 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

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

The web interface opens at http://localhost:7890. Opening it does not start research. Click Start AutoResearch in the upper-right corner, review the run settings, and start the run.

FlagDefaultPurpose
--port N7890Use a different port
--no-browserbrowser opensStart the server without opening a browser

Terminal interface

DockerLocal uv (native)
./neurico hitl-cli <idea_id>uv run python src/cli/hitl_cli.py <idea_id>

Opening the terminal interface does not start research. Enter /run and answer the prompts. NeuriCo detects whether to start a fresh HITL run or continue the existing workspace.

ControlPurpose
/runConfigure and start a fresh or continuing HITL run
/statusShow the current research stage, phase, timer, and next step
/activityShow recent durable phase, idea, and review activity
/idea <ID>Show the complete record for a specific idea, such as I7
/reply <number>Choose an option for the active human request
/reply <feedback>Resolve a request with free-form feedback
/helpShow interface commands
/quitClose the terminal interface

For the manager and human review workflow, scoring decisions, and recovery, see the HITL AutoResearch guide.

Docker utilities

./neurico update   # Pull the latest code and Docker image
./neurico shell    # Open a shell in the container
./neurico help     # Show all commands

Research outputs

A research workspace can contain:

workspaces/<research-workspace>/
├── README.md         # Project overview
├── REPORT.md         # Research findings
├── STATE.md          # Pipeline state
├── src/              # Experiment code
├── results/          # Metrics and generated results
├── logs/             # Run logs and transcripts
├── artifacts/        # Models and checkpoints
├── scoring/          # When scoring is enabled
├── notebooks/        # With --use-scribe
└── paper_draft/      # When paper writing is enabled

Submitted idea files move through ideas/submitted/, ideas/in_progress/, and ideas/completed/ as runs progress. Workspace contents depend on the mode and run options.

Workflow overview
flowchart LR
    A["Idea (YAML, text, or IdeaHub)"] --> B["Submit and validate"]
    B --> C{"Choose a mode"}
    C --> D["Standard"]
    C --> E["AutoResearch"]
    C --> F["HITL AutoResearch"]
    D --> G["Research workspace"]
    E --> G
    F --> G
    G --> H["Code, results, logs, and reports"]
    G --> I["Optional scoring and paper"]
    G --> J["Optional GitHub publication"]

Customizing NeuriCo

Selected domains

DomainExamples
Artificial IntelligenceLLM evaluation, agents, and benchmarking
Machine LearningModel training, evaluation, and tuning
Data ScienceStatistical analysis and visualization
MathematicsProofs and formal verification
Scientific ComputingNumerical methods and simulation

See the complete domain definitions for all supported domains and domain keys.

Templates and skills

Files under templates/ control NeuriCo's agent behavior. Docker reads these files directly from the checkout, so changes take effect without rebuilding the image.

BehaviorFile or directory
Experiment workflowtemplates/agents/session_instructions.txt
Paper writingtemplates/agents/paper_writer.txt
Resource discoverytemplates/agents/resource_finder.txt
Base research methodtemplates/base/researcher.txt
Domain guidancetemplates/domains/<domain>/core.txt
Research skillstemplates/skills/
Domain and skill authoringtemplates/README.md

Documentation

GuideWhat it covers
WorkflowSetup, idea submission, and research modes for Docker and local uv
Idea quickstartPrepare and submit a first idea
Idea guideAll available idea fields and options
Local idea submissionConvert Markdown or text and use local resources
IdeaHubImport ideas from IdeaHub
AutoResearchFresh runs, continuation, recovery, and bootstrap
HITL AutoResearchWeb and terminal interfaces, human review, and recovery
Architecture and roadmapSystem architecture, template design, and planned directions
GitHub integrationOptional repository creation and publishing
ClawHub skillClawHub discovery and onboarding package

ClawHub provides installation and onboarding metadata. Run NeuriCo with Docker or local uv. The documentation index separates user guides from developer, internal, and legacy documents.

Contributing

Contributions are welcome. Areas of interest include domain templates, evaluation contracts, experiment integrations, and research-mode improvements. Open an issue before starting a large change.

Citation

If you use NeuriCo in research, please cite:

@software{neurico_2025,
  title={NeuriCo: Autonomous Research Framework},
  author={Haokun Liu, Chenhao Tan},
  year={2025},
  url={https://github.com/ChicagoHAI/neurico}
}

Acknowledgments

Some skills in templates/skills/ were inspired by claude-scientific-skills (MIT License, K-Dense Inc.). See NOTICE for details.

License

Apache 2.0. See LICENSE.

For questions and feedback, open an issue or join the NeuriCo Discord.