"The researcher's job shifts from writing Python to writing Markdown." — Andrej Karpathy
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionautoresearchExecute the skills CLI command in your project's root directory to begin installation:
Fetches autoresearch from supercent-io/skills-template and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate autoresearch. Access via /autoresearch in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
0
total installs
0
this week
88
GitHub stars
0
upvotes
Run in your terminal
0
installs
0
this week
88
stars
"The researcher's job shifts from writing Python to writing Markdown." — Andrej Karpathy
Autoresearch is an autonomous ML experimentation framework. An AI agent iteratively modifies train.py, runs fixed 5-minute GPU experiments, evaluates with a single metric (val_bpb), and commits only improvements via git ratcheting. The result: wake up to 100+ experiments logged and a monotonically better model.
program.md research directives for the agentresults.tsv to understand what the agent foundHuman authors program.md
│
▼
Agent reads program.md + train.py
│
▼
Agent modifies train.py → git commit
│
▼
uv run train.py (exactly 300 seconds)
│
▼
Extract val_bpb + peak_vram_mb
│
┌────┴────┐
improved? no improvement
│ │
keep commit git reset HEAD~1
│ │
└──────┬───────┘
│
log to results.tsv
│
▼
repeat ∞
| File | Agent access | Purpose |
|---|---|---|
train.py |
Read + Write | Model, optimizer, training loop (~630 lines) |
program.md |
Read-only | Human research directives |
prepare.py |
Read-only | Data pipeline + evaluate_bpb() harness |
constants.py |
Read-only | TIME_BUDGET=300, MAX_SEQ_LEN, EVAL_TOKENS |
pyproject.toml |
Read-only | Locked dependencies (no new packages) |
results.tsv |
Append | All experiments: kept and discarded |
# Install uv (fast Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone the repository
git clone https://github.com/karpathy/autoresearch
cd autoresearch
# Install locked dependencies
uv sync
# Downloads FineWeb-Edu parquet shards, trains BPE tokenizer
# Last shard is reserved for validation — never seen during training
uv run prepare.py
For constrained hardware, edit prepare.py before running:
# Lower MAX_SEQ_LEN for GPUs with limited VRAM
MAX_SEQ_LEN = 256 # default: 2048
# Single 5-minute experiment to verify setup
uv run train.py > run.log 2>&1
# Extract key metrics
grep "^val_bpb:\|^peak_vram_mb:" run.log
Expected output:
val_bpb: 0.9979
peak_vram_mb: 38420
program.md is the human-written research charter the agent reads at the start of every loop iteration. Write it as precise Markdown instructions:
# Research Program
## Goal
Minimize val_bpb on the FineWeb-Edu validation set within the 300-second budget.
## Current Baseline
val_bpb: 0.9979 (depth-12 GPT, Muon + AdamW optimizer)
## Directions to Explore
1. Attention variants: MLA, GQA, sliding window, local-global hybrid
2. Layer types: MoE FFN layers, SwiGLU activations
3. Optimizer tuning: Muon momentum, AdamW β values, learning rate schedule
4. Architectural depth/width tradeoffs within VRAM budget
## Constraints
- Must complete within 300 seconds
- Peak VRAM must stay under 39GB
- No new packages (use only what is in pyproject.toml)
- Do not modify prepare.py or constants.py
## Notes from Previous Runs
- Depth-12 improvements transfer to depth-24 (scale-invariant gains)
- RoPE positional encoding outperformed learned embeddings (+0.008 val_bpb)
Effective program.md principles:
val_bpb as a reference pointPoint your AI agent (Claude Code, Codex, etc.) at the repository with program.md as its research context. The agent will:
program.md + current train.pytrain.py + commituv run train.py (300 seconds)val_bpb; keep or revert via gitresults.tsvWith Claude Code (OMC):
# From inside autoresearch/
# Give Claude the context: "Run the autoresearch loop following program.md"
With Claude Code CLI directly:
claude "Follow program.md. Run autonomous research loop on train.py.
Execute: uv run train.py, extract val_bpb, keep improvements, revert failures.
Log everything to results.tsv. Do not stop until I say so."
# Live monitoring during a run
watch -n 30 "tail -20 results.tsv"
# Count kept vs. discarded
awk -F'\t' '{print $4}' results.tsv | sort | uniq -c
# Find the best experiment
sort -t$'\t' -k2 -n results.tsv | head -5
# Check current best val_bpb
git log --oneline -5
commit val_bpb memory_gb status description
a3f2c91 0.9697 37.2 keep SwiGLU activation + depth-12
b8e1d04 0.9821 38.1 discard MoE 4-expert: marginal gain
c1a5f30 crash — crash OOM: sequence length 4096
| Status | Meaning |
|---|---|
keep |
val_bpb improved; commit retained on branch |
discard |
No improvement; git reset HEAD~1 applied |
crash |
OOM, syntax error, or timeout; always reverted |
Session summary: 126 experiments, 18 improvements
Best val_bpb: 0.9697 (started: 0.9979)
Top improvements:
- SwiGLU activation: -0.012 val_bpb
- GQA with 4 KV heads: -0.009 val_bpb
- Muon momentum 0.92→0.95: -0.006 val_bpb
# In prepare.py — edit before uv run prepare.py
MAX_SEQ_LEN = 256 # was 2048
EVAL_TOKENS = 2_097_152 # was 20_971_520 (scale down proportionally)
# Find all attention-related experiments
grep -i "attention\|GQA\|MLA\|MHA" results.tsv
# List only improvements sorted by gain
awk -F'\t' '$4=="keep"' results.tsv | sort -t$'\t' -k2 -n
Run from inside the autoresearch repository directory:
| Script | Purpose | Usage |
|---|---|---|
setup.sh |
One-time environment setup | bash scripts/setup.sh [--seq-len 512] |
run-experiment.sh |
Single 5-min experiment + metric extraction | bash scripts/run-experiment.sh |
run-loop.sh |
Autonomous loop: run → keep/revert → repeat | bash scripts/run-loop.sh [--max 20] |
show-results.sh |
Human-readable results.tsv report | bash scripts/show-results.sh [--top 10] |
check-hardware.sh |
GPU/CUDA/uv availability check (JSON output) | bash scripts/check-hardware.sh |
# Typical overnight session
bash scripts/check-hardware.sh
bash scripts/setup.sh --seq-len 512 # adjust for your VRAM
# Edit program.md with your research directives
bash scripts/run-loop.sh --max 100 --desc "session-1"
bash scripts/show-results.sh --kept-only
Detailed documentation in references/:
| File | Contents |
|---|---|
references/architecture.md |
System design, immutability contract, git ratcheting, key design decisions |
references/program-md-guide.md |
How to write effective program.md directives; full template + principles |
references/hardware-config.md |
VRAM settings by GPU, memory optimization techniques, troubleshooting |
uv run train.py manually before launching the loop to confirm the setup worksMAX_SEQ_LEN in prepare.py consistent — changing it mid-run invalidates val_bpb comparisonsprepare.py or constants.py — the evaluation harness must stay fixed for results to be meaningfulprogram.md updates — version-control your research directives alongside results.tsv for reproducibilitypeak_vram_mb constraints in program.md for your GPU's headroompip install; it can only use what is in pyproject.toml| Hardware | Status | Notes |
|---|---|---|
| H100 80GB | Recommended | Default config, full MAX_SEQ_LEN=2048 |
| A100 40GB | Supported | Lower MAX_SEQ_LEN if needed |
| RTX 4090 24GB | Community | Reduce MAX_SEQ_LEN to 512 |
| GTX 1660 Ti 6GB | Community fork | MAX_SEQ_LEN=256, reduced EVAL_TOKENS |
| Apple Silicon (M-series) | MLX port | Community fork; different optimizer API |
| Windows RTX | Community | WSL2 + CUDA recommended |
| Metric | Direction | Description |
|---|---|---|
val_bpb |
Lower = better | Validation bits-per-byte; vocabulary-size-independent |
peak_vram_mb |
Lower = more headroom | Peak GPU memory during the training run |
| Experiments/hour | Higher = faster search | ~12 at TIME_BUDGET=300 |
Make data-driven prioritization decisions faster
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Prerequisites
Time Estimate
30-60 minutes to see productivity improvements
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid when
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
supercent-io/skills-template
mattpocock/skills
parcadei/continuous-claude-v3
cursor/plugins
ailabs-393/ai-labs-claude-skills
pproenca/dot-skills
Useful defaults in autoresearch — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
autoresearch reduced setup friction for our internal harness; good balance of opinion and flexibility.
Registry listing for autoresearch matched our evaluation — installs cleanly and behaves as described in the markdown.
Registry listing for autoresearch matched our evaluation — installs cleanly and behaves as described in the markdown.
autoresearch is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
Keeps context tight: autoresearch is the kind of skill you can hand to a new teammate without a long onboarding doc.
Useful defaults in autoresearch — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
Registry listing for autoresearch matched our evaluation — installs cleanly and behaves as described in the markdown.
I recommend autoresearch for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Useful defaults in autoresearch — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
showing 1-10 of 60