Oh My Paper Complete Guide: From Literature Research to Paper Publication—All Managed in One Terminal

April 4, 2026

20 Minutes to Get Started|5 Agent Collaboration + 34 Research Skills|Turn Claude Code into your personal research lab


Project Overview

Oh My Paper is an open-source Claude Code plugin that solves a very straightforward problem: Claude Code can help you write code, but research involves far more than coding—you also need literature research, innovation and feasibility assessment, experiment design, paper writing, citation checks, and more. And none of those steps have a good tool to tie them together.

Oh My Paper equips Claude Code with a structured research pipeline: 5 dedicated Agent roles handle different parts, 34 research skills are loaded as needed, and background Hooks automatically remember the project status. Once it’s set up, every time you open Claude Code, it will ask, “Which role are you working on today?” Then it automatically loads the corresponding memory files and continues from where you left off. There’s no need for any GUI—everything is done in the terminal.

TIP

Project link: https://github.com/LigphiDonk/Oh-my--paper, MIT License, supports the Claude Code plugin ecosystem.


Target Audience

This article is for developers like you:

  • 1–5 years of development experience, who have (or are currently going through) the process of writing papers and doing research
  • Want to use AI to assist research, but dislike switching back and forth between lots of tools
  • Interested in concepts like Agent collaboration mode and role-based memory isolation, and want real-world examples

If you already have a clear research direction (e.g., CV, NLP, system architecture), or you’re doing internal technical research at work, Oh My Paper’s pipeline applies.


Core Dependencies & Environment

Before you start, make sure your environment meets the following requirements:

DependencyMinimum RequirementNotes
Claude CodeLatest versionOfficial installation guide
Node.jsv18+Required for running Claude Code plugins
Python3.10+Needed for remote experiment scripts and LaTeX compilation
LaTeXTeX Live 2020+Optional, but used for paper writing
NetworkCan access ArXiv / Semantic ScholarRequired for literature search

WARNING

Oh My Paper is a Claude Code plugin, not a standalone application. You must install Claude Code first.

Windows users are recommended to use WSL2 for the best experience.


Full Project Directory Tree

After running /omp:setup, the project directory structure looks like this:

my-research/
├── paper/                     # LaTeX paper workspace
│   ├── main.tex
│   ├── sections/              # Per-chapter .tex files
│   └── refs/                 # Reference bibliography .bib files
├── experiment/                # Experiment code and scripts
├── survey/                   # Literature research outputs
├── ideation/                 # Innovation points & evaluation results
├── promotion/                # Slides, demos, and promotional materials
├── skills/                   # Project-local custom skills
├── .pipeline/
│   ├── tasks/
│   │   └── tasks.json        # Task tree across all phases
│   ├── docs/
│   │   └── research_brief.json
│   └── memory/               # Agent memory files
│       ├── project_truth.md   # Project baseline + progress logs
│       ├── orchestrator_state.md
│       ├── execution_context.md
│       ├── experiment_ledger.md
│       ├── result_summary.md
│       ├── review_log.md
│       ├── literature_bank.md
│       ├── agent_handoff.md
│       └── decision_log.md
├── .claude/
│   └── settings.json         # SessionStart hook registration
├── CLAUDE.md
└── AGENTS.md

Step-by-Step Installation

Step 1: Add the plugin marketplace

In Claude Code, run the following command to register Oh My Paper’s marketplace address:

/plugin marketplace add LigphiDonk/Oh-my--paper

This step doesn’t require cloning the entire repository—Claude Code will pull the plugin listing from the marketplace.

Step 2: Install the plugin

/plugin install omp@oh-my-paper

After installation, run /plugin to verify:

/plugin
# Expected output should include: omp @ oh-my-paper, Status: Enabled

Step 3: Restart Claude Code

WARNING

This is the easiest step to miss. The SessionStart hook must restart Claude Code to take effect; skipping it will result in the role-selection prompt not appearing every time you open a session.

Fully close the current Claude Code window, then open it again.

Step 4: Initialize your research project

Go to your research project directory and run:

/omp:setup

This command does three things:

  1. Creates the .pipeline/ directory and all of its subdirectories and memory files
  2. Registers the SessionStart hook in .claude/settings.json
  3. Generates default tasks.json and research_brief.json

After initialization, your directory structure will match the “Full Project Directory Tree” shown above.

Verify successful installation

Reopen Claude Code (within the initialized project directory). You should see Claude pop up a role selection menu, asking which role you want to start with today. If you see it, everything has been installed successfully.


Detailed Explanation of the 5-Phase Research Pipeline

Oh My Paper breaks the entire research process into 5 phases. Each phase corresponds to one command and a recommended set of skills.

Phase 1|Survey: Literature Research

Run the command:

/omp:survey

What this phase does: It has Claude search for relevant papers based on your research direction, extract abstracts and key information, and finally compile everything into a literature_bank.md file.

Common skills:

  • paper-finder — Search related work across ArXiv and Semantic Scholar
  • paper-analyzer — Extract the core contributions, methods, and limitations
  • biorxiv-database — If you’re in biomedical research, search BioRxiv

Core output file: survey/literature_bank.md

Typical workflow:

You: /omp:survey
→ Claude asks for research-direction keywords
→ Automatically searches → organizes literature cards → writes to literature_bank.md
→ Shows the literature research summary for you to confirm whether you want to add more

Phase 2|Ideation: Generating Innovation Points

Run the command:

/omp:ideate

Based on the literature research results from Phase 1, Claude generates potential innovation points and evaluates the feasibility of each one.

Common skills:

  • inno-idea-generation — Large-scale innovation brainstorming
  • inno-idea-eval — Scores across three dimensions: novelty, feasibility, and impact
  • research-idea-convergence — Converges to the 2–3 most promising directions

Core output file: evaluation results under the ideation/ directory

TIP

After the Ideation phase ends, remember to have Claude write the finally selected direction into research_brief.json. The subsequent experiments and writing will reference this file.

Phase 3|Experiment: Experiment Design & Execution

Run the command:

/omp:experiment

This phase covers the widest ground: designing experiment plans, writing evaluation code, running locally or remotely, and analyzing results.

Common skills:

  • inno-experiment-dev — Generate experiment code scaffolding
  • research-experiment-driver — Manage the iterative experiment loop
  • remote-experiment — SSH into a remote GPU node to run experiments (see the “Remote Experiments” section)

Core output files: experiment/ directory + experiment_ledger.md (experiment history)

Phase 4|Publication: Writing Paper Sections

Run the command:

/omp:write

Convert experiment results into paper text, generate figures and titles, and manage the LaTeX files.

Common skills:

  • inno-paper-writing — General paper section generation
  • ml-paper-writing — Paper templates for machine learning/AI
  • scientific-writing — Academic writing conventions (tense, wording, structure)
  • inno-figure-gen — Generate figure code (Matplotlib, Plotly)
  • inno-reference-audit — Automatically check whether citation formats are correct

Core output file: the LaTeX files under paper/

Phase 5|Promotion: Sharing & Outreach

Run the command:

/omp:plan
# In the Promotion phase, choose skills related to making demo/presentation materials

Turn your paper results into presentation slides, technical blogs, Grant proposals, and more.

Common skills:

  • making-academic-presentations — Generate PPTs for academic talks
  • inno-grant-proposal — Write funding application proposals
  • inno-rclone-to-overleaf — Automatically sync your local LaTeX to Overleaf

The 5 Big Agent Roles & the Memory Isolation Mechanism

This is the most core design philosophy of Oh My Paper.

Agent Role Overview

RoleResponsibility DescriptionCore Memory File(s)
Conductor (Orchestrator)Global planning, dispatching subtasks, and automatically updating project status after each phaseproject_truth.md · tasks.json · orchestrator_state.md
Literature ScoutSearch papers and organize research notesliterature_bank.md · execution_context.md
Experiment DriverDesign experiments, write evaluation code, run experiments, and record resultsexperiment_ledger.md · research_brief.json
Paper WriterWrite sections, generate figures, and audit citationsresult_summary.md · literature_bank.md
ReviewerPeer review, quality checks, and consistency verificationexecution_context.md · project_truth.md

Memory Isolation Principles

Each role can only read and write the memory files within its own scope of responsibility, and cannot see other roles’ internal states. The core benefit of this design is preventing context contamination—for example, the Paper Writer won’t see the Experiment Driver’s intermediate debugging results, and the Literature Scout won’t let experimental data bias literature evaluation.

Communication between roles happens via two “public areas”:

tasks.json         ← All roles read/write, recording task completion status
project_truth.md   ← All roles append, recording the project’s overall progress

Automatic Status Synchronization

The most important design detail: after each subtask is completed, the Conductor automatically updates these two public files. You don’t need to remind it.

Subtask completed
  → Conductor automatically marks the corresponding task in tasks.json as done
  → Conductor automatically appends a progress record to project_truth.md
    → Next session, Claude reads both files and continues automatically from the breakpoint

TIP

If you want the Conductor to force output the current global progress, run /omp:plan. It will read tasks.json and project_truth.md, and display the full task tree and the current phase.


Quick Reference: 34 Research Skills

Oh My Paper includes 34 research skills covering the entire research lifecycle. The list below is organized by category so you can find what you need quickly:

Literature Skills

  • paper-finder — Paper search across databases
  • paper-analyzer — Extract core contributions from papers
  • paper-image-extractor — Extract figures from PDFs
  • research-literature-trace — Trace the citation chain of a paper
  • biorxiv-database — BioRxiv-focused search
  • dataset-discovery — Find relevant datasets

Research & Ideation Skills

  • inno-deep-research — Deep research mode
  • gemini-deep-research — Gemini deep research integration
  • inno-code-survey — Code implementation research
  • inno-idea-generation — Batch generation of innovation points
  • inno-idea-eval — Multi-dimensional evaluation of innovation points
  • research-idea-convergence — Converge to the best direction

Experiment Skills

  • inno-experiment-dev — Experiment code generation
  • inno-experiment-analysis — Analyze experiment results
  • research-experiment-driver — Iterative experiment management
  • remote-experiment — Remote GPU experiment loops

Writing Skills

  • inno-paper-writing — General paper sections
  • ml-paper-writing — ML/AI papers
  • scientific-writing — Academic writing conventions
  • inno-figure-gen — Generate figures
  • inno-reference-audit — Audit citation format
  • research-paper-handoff — Handoff standards between agents

Planning & Review Skills

  • inno-pipeline-planner — Pipeline planning
  • research-pipeline-planner — Research-phase planning
  • inno-paper-reviewer — Paper quality review
  • inno-prepare-resources — Resource preparation checklist
  • inno-rclone-to-overleaf — Overleaf sync

Presentation & Proposal Skills

  • making-academic-presentations — Academic presentation PPTs
  • inno-grant-proposal — Funding proposals

Agent Dispatch Skills

  • claude-code-dispatch — Dispatch Claude Code subtasks
  • codex-dispatch — Dispatch Codex in parallel

Domain-Specific Skills

  • academic-researcher — General academic research
  • bioinformatics-init-analysis — Bioinformatics analysis
  • research-news — Track the latest developments in a research field

Skills are loaded on demand. When you run /omp:survey, Claude will automatically recommend relevant skills. You can also add custom skills under the skills/ directory.


Full Demo of a Typical Workflow

Let’s take an AI-direction paper as an example and go through the 5-phase pipeline end-to-end.

Step 1: Project Initialization

# Enter the research directory
cd ~/research/my-paper

# In Claude Code:
/omp:setup
# Output: .pipeline/ created, SessionStart hook registered

Step 2: Literature Research

# In Claude Code:
/omp:survey
# → Claude asks: “What is your research direction?”
# → Input: LLM reasoning, chain-of-thought prompting
# → Claude automatically searches ArXiv/Semantic Scholar
# → Organizes 20+ related works into survey/literature_bank.md
# → Outputs the literature research summary so you can confirm whether you need to add more

Step 3: Generating Innovation Points

/omp:ideate
# → Claude reads literature_bank.md
# → Generates 8 potential innovation points
# → Scores each point across novelty / feasibility / impact
# → Converges to 2 directions, writes to research_brief.json

Step 4: Experiment Design & Running

/omp:experiment
# → Claude reads research_brief.json
# → Designs the experiment plan (baselines, comparison methods, evaluation metrics)
# → Generates experiment code into the experiment/ directory
# → Runs local evaluation and parses the metric results
# → Writes results to experiment_ledger.md

If you need remote GPU node execution:

# Configure the remote compute node (create compute-config.json under experiment/)
{
  "host": "gpu-server.example.com",
  "user": "researcher",
  "key_path": "~/.ssh/id_rsa",
  "remote_dir": "/home/researcher/experiments"
}

# In Claude Code:
/omp:experiment
# → Claude detects compute-config.json
# → Uses the remote-experiment skill
# → rsync code to remote → run via SSH → pull back results
# → Automatically parses metrics and writes to experiment_ledger.md

Step 5: Writing Paper Sections

/omp:write
# → Claude reads experiment_ledger.md + literature_bank.md
# → Generates Introduction / Method / Experiment section .tex files
# → Generates figures (Matplotlib scripts), compiles to paper/figures/
# → Citation audit: checks the .bib file format

Step 6: Peer Review

/omp:review
# → Claude reads the paper in the Reviewer role
# → Checks logical coherence, method-description clarity, and adequacy of experiment comparisons
# → Outputs review_log.md listing revision suggestions
# → Modify based on the suggestions, then run /omp:review again until it passes

Step 7: Sync to Overleaf

# Configure Overleaf sync in the skills/ directory
# Use the inno-rclone-to-overleaf skill
# Claude automatically syncs your local paper/ directory to your Overleaf project

Detailed Guide to Remote Experiments

For experiments that need GPU compute, Oh My Paper supports a complete remote experiment loop.

Architecture Flow

Local plan design
  → Generate experiment code
    → rsync sync to the remote server
      → SSH into the remote node
        → Run the experiment on the GPU
          → Pull back metric logs
            → Parse metrics locally
              → Decide whether thresholds are met
                → Iterate optimization / end the experiment

Configure Remote Nodes

Create compute-config.json under experiment/:

{
  "host": "your-gpu-server.com",
  "user": "researcher",
  "ssh_key": "~/.ssh/id_rsa",
  "remote_workspace": "/home/researcher/omp-experiments",
  "max_iterations": 5,
  "success_threshold": {
    "accuracy": 0.92,
    "latency_ms": 200
  }
}

Run Remote Experiments

# In Claude Code:
/omp:experiment
# → Detects compute-config.json
# → Automatically executes: code sync → SSH run → pull back results
# → If metrics don’t meet requirements, automatically adjust hyperparameters and rerun (up to max_iterations times)
# → Finally writes results to experiment_ledger.md

WARNING

Remote experiments will consume server compute resources and incur costs. It’s recommended to first validate the experiment pipeline with a small local dataset, confirm everything is correct, and then switch to remote GPU nodes to run the full experiment.


Codex Task Delegation

If an experiment involves generating a large amount of repetitive code (for example, running 10 groups with different hyperparameter configurations), you can ask the Conductor to delegate tasks to Codex for parallel processing.

/omp:delegate
# → Conductor reads the current task context
# → Generates a Codex prompt with full context
# → Copy it into a new terminal: codex "..."
# → Codex runs in an independent terminal
# → After completion, write a CODEX_DONE signal into agent_handoff.md
# → Conductor detects the signal, automatically reads the results, and updates tasks.json

The benefit of this design: Claude Code and Codex run in different terminals at the same time, so your local Claude Code won’t be occupied—you can simultaneously do other work like literature organization.


Troubleshooting Common Issues

Q1: After running /omp:setup, the role-selection prompt doesn’t show every time I open Claude Code

Cause: The SessionStart hook wasn’t registered correctly.

Troubleshooting steps:

  1. Check whether .claude/settings.json exists in your project directory
  2. Check whether that file contains a hooks configuration section
cat .claude/settings.json
# Confirm there is a "hooks": { "SessionStart": [...] } field

If it’s missing, run /omp:setup again to reinitialize, and make sure Claude Code has been fully restarted.


Q2: The plugin installs successfully, but commands like /omp:survey show “Unrecognized command”

Cause: The plugin didn’t load correctly, or Claude Code needs a restart.

Fix steps:

# 1. Uninstall and reinstall
/plugin uninstall omp
/plugin install omp@oh-my-paper

# 2. Fully restart Claude Code (close all windows)

# 3. Verify plugin status
/plugin

Q3: Literature Scout finds too few papers—want to expand the search scope

Cause: The initial keywords are too specific, limiting the search results.

Solution:

When running /omp:survey, provide multiple synonyms and broader terms:
Input: “LLM reasoning, chain-of-thought, CoT, deliberate reasoning, LLM planning”
instead of only: “LLM reasoning”

At the same time, you can add additional database sources (e.g., the ACL Anthology and the official ICLR pages) in skills/paper-finder.md.


Q4: The experimental description generated by Paper Writer doesn’t match the actual results

Cause: The latest experiment_ledger.md wasn’t synced in time between the Experiment Driver and the Paper Writer.

Solution:

After each experiment iteration is finished, before starting work in Paper Writer, run /omp:plan first so the Conductor syncs the global state. This ensures Paper Writer reads the newest results:

/omp:plan
# → Conductor displays the current tasks.json state
# → Confirm the experiment task is marked done
# → Then run /omp:write

Q5: Remote experiment rsync fails with “permission denied”

Cause: Incorrect SSH key permissions, or the remote directory doesn’t exist.

Troubleshooting steps:

# 1. Check local SSH key permissions
chmod 600 ~/.ssh/id_rsa

# 2. Test SSH connection (passwordless login)
ssh -i ~/.ssh/id_rsa [email protected] "echo ok"

# 3. Ensure the remote directory exists
ssh [email protected] "mkdir -p /home/researcher/omp-experiments"

# 4. Verify that remote_workspace path in compute-config.json is correct

Q6: After Codex delegation, Conductor keeps waiting for the CODEX_DONE signal

Cause: After Codex finishes running, it didn’t correctly write to agent_handoff.md.

Solution:

  1. Check that the terminal running Codex ended normally
  2. Manually append a line to the end of .pipeline/memory/agent_handoff.md:
CODEX_DONE
result: [fill in Codex’s output result]
  1. Then continue the current workflow in Claude Code

Further Reading & Advanced Directions

1. Custom Skill Extensions

Oh My Paper supports adding custom skills under the project-local skills/ directory. Create a format like this:

---
name: my-custom-skill
description: A custom analysis workflow tailored to a specific research area
stage: survey  # Optional: survey | ideation | experiment | write | review
---

# Skill Title

## Steps
1. Read context files ...
2. Execute specific tasks ...

After registering, when you run commands like /omp:survey, Claude will automatically recommend the relevant custom skills.

2. Advanced Multi-Agent Collaboration

If you’re pushing multiple research directions at the same time, you can run /omp:setup in different subdirectories. Each subproject will have its own independent .pipeline/ and Agent team. The Conductor role is responsible for providing an overview and coordination across subprojects.

3. Overleaf Collaboration Workflow

Use the inno-rclone-to-overleaf skill to sync your local papers to Overleaf. Then you can invite your advisor to leave annotations directly on Overleaf. After the edits are done, sync them back to your local machine. The entire process doesn’t require manual upload/download.

4. Connect to Other LLM Backends

Oh My Paper itself only depends on Claude Code, but in the experiment phase you can configure different LLMs to do comparative evaluation. Create a model configuration file under the experiment/ directory:

# experiment/model_configs.py
llm_configs = {
    "claude-sonnet": {"provider": "anthropic", "model": "claude-3-5-sonnet"},
    "gpt-4o": {"provider": "openai", "model": "gpt-4o"},
    "gemini-pro": {"provider": "google", "model": "gemini-1.5-pro"},
}

Then reference these configurations in your experiment code to do cross-comparisons.

5. Track the Latest Research News

Use the research-news skill to periodically scan ArXiv’s newest submissions, filter out new work relevant to your research direction, and automatically update literature_bank.md. You can pair it with a cron scheduled task to automatically update the literature database once per week.

Updated April 4, 2026