Code of Paper CLI
Discover GitHub implementations of research papers — from the terminal.
Search 181k+ arXiv papers and find their code on GitHub. Works for humans and AI agents alike.

Install
Or with pipx for isolated installs:
Requires Python 3.10+. No API key needed — works anonymously at 60 requests/minute.
Quick Start
codeofpaper search "vision transformers"
codeofpaper paper 2010.11929
codeofpaper paper https://arxiv.org/abs/2010.11929
codeofpaper code 1706.03762
codeofpaper trending --has-code
codeofpaper -o json trending | jq '.trending[] | {title, stars: .max_stars}'
codeofpaper -o json paper 2010.11929 | jq '{title, repos: [.repos[] | {full_name, tier}], forks: [.fork_graph[] | .full_name]}'
codeofpaper research "reinforcement learning" --depth deep
Use -o / --output before the subcommand:
codeofpaper -o json paper 2010.11929
codeofpaper -o quiet search "attention" | head -5
codeofpaper -o csv trending --has-code > papers.csv
| Format | Flag | Use case |
|---|
| Table | -o table | Human reading (default) |
| JSON | -o json | Scripts, jq pipelines, full response data |
| Quiet | -o quiet | IDs only, one per line — pipe into other commands |
| JSONL | -o jsonl | Streaming, append to files, batch processing |
| BibTeX | -o bibtex | Citation managers, LaTeX bibliographies |
| CSV | -o csv | Spreadsheets, pandas, data analysis |
The shorthand -q is equivalent to -o quiet:
codeofpaper -q search "transformers" | head -3
You can set a default format via config so you don't need -o every time:
Commands
Discovery
| Command | Description | Example |
|---|
search | Full-text paper search | codeofpaper search "vision transformers" --has-code |
paper | Paper details by arXiv ID or URL | codeofpaper paper 2010.11929 |
code | GitHub repos implementing a paper | codeofpaper code 1706.03762 |
similar | Semantically similar papers | codeofpaper similar 2010.11929 |
suggest | Autocomplete / quick lookup | codeofpaper suggest "attention" |
random | Random interesting paper | codeofpaper random --quality high |
Browsing
| Command | Description | Example |
|---|
trending | Trending papers by category | codeofpaper trending --category cs.CV --sort hot |
categories | List categories or get details | codeofpaper categories cs.AI |
conferences | List all conference series | codeofpaper conferences |
conference | Papers from a specific conference | codeofpaper conference neurips_2024 --has-code |
code-drops | Recent conference papers with new code | codeofpaper code-drops --days 7 |
repo | Reverse lookup: repo → paper | codeofpaper repo google-research/vision_transformer |
open | Open paper or repo in browser | codeofpaper open 2010.11929 --code |
Bulk Operations
| Command | Description | Example |
|---|
research | Structured research overview | codeofpaper research "RL" --depth deep |
batch | Process multiple IDs from stdin/file | cat ids.txt | codeofpaper batch paper |
export | Paginated bulk export | codeofpaper export trending -o csv > out.csv |
Configuration
| Command | Description | Example |
|---|
auth | Manage API key (setup/status/clear) | codeofpaper auth status |
status | Check API health and stats | codeofpaper status |
Command Details
search
codeofpaper search "reinforcement learning" --sort has_code --has-code
codeofpaper search "GAN" --limit 20 --offset 10
Options: --limit, --offset, --sort (relevant, recent, has_code), --has-code, --category.
research
Multi-step orchestrated overview of a research topic:
codeofpaper research "vision transformers" --depth deep
| Depth | Steps | API calls |
|---|
shallow | Search only + landscape statistics | 1 |
medium | Search + repos for top papers (default) | ~6 |
deep | Search + repos + similar papers from #1 | ~8 |
batch
Process multiple queries or IDs from a file or stdin. Always outputs JSONL regardless of -o:
codeofpaper batch paper ids.txt
echo -e "2010.11929\n1706.03762" | codeofpaper batch paper
codeofpaper -q similar 2010.11929 | codeofpaper batch code
Supported commands: paper, search, code, similar, suggest.
Each line produces one JSON object:
{"input": "2010.11929", "status": "ok", "data": {...}}
{"input": "9999.99999", "status": "error", "error": "Not found"}
Options: --delay (seconds between calls, default 0.5).
export
Paginated bulk export from trending, conference, or search:
codeofpaper export trending --category cs.CV --has-code -o csv > cv.csv
codeofpaper export conference neurips_2024 --has-code -o bibtex > neurips.bib
codeofpaper export search "transformers" --max 500 -o jsonl > data.jsonl
Auto-paginates through results (100 per page, 0.5s delay). Options: --max (default 200), --has-code, --category, --days.
Agent Integration
The CLI is designed for AI agent consumption. Key features:
Stable Exit Codes
Agents can branch on exit codes without parsing error messages:
| Exit Code | Meaning | Agent Action |
|---|
| 0 | Success | Parse stdout |
| 1 | General error | Log and report |
| 2 | Connection error | Retry with backoff |
| 3 | Not found (404) | Skip or try different ID |
| 4 | Rate limited (429) | Wait and retry |
| 5 | Auth required (401/403) | Run codeofpaper auth setup |
Machine-Readable Output
codeofpaper -o json paper 2010.11929 | jq '.title'
codeofpaper -q search "attention" | head -5
codeofpaper -o jsonl trending --has-code | while read -r line; do
echo "$line" | jq -r '.arxiv_id'
done
HTTP Cache
Responses are cached on disk for 30 minutes (~/.cache/codeofpaper/http/), so repeated calls are instant and free.
MCP Server (optional)
Code of Paper ships an optional Model Context Protocol server that exposes paper / code lookup as tools to any MCP-compatible agent — Claude Desktop, Cursor, Continue, Cline, Zed, etc.
Install with the mcp extra:
pip install 'codeofpaper[mcp]'
uv tool install 'codeofpaper[mcp]'
This adds a codeofpaper-mcp entry point that speaks MCP over stdio.
Wire into Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS), %APPDATA%\Claude\claude_desktop_config.json (Windows), or ~/.config/Claude/claude_desktop_config.json (Linux):
{
"mcpServers": {
"codeofpaper": {
"command": "uvx",
"args": ["--from", "codeofpaper[mcp]", "codeofpaper-mcp"]
}
}
}
This pulls + runs the server on demand — no global install needed. If you've already pip install'd the package, you can replace the command with just "codeofpaper-mcp" and drop args.
Wire into Cursor / Continue / Cline
Most MCP clients accept the same shape:
{
"mcpServers": {
"codeofpaper": {
"command": "codeofpaper-mcp",
"env": {
"CODEOFPAPER_API_URL": "https://api.codeofpaper.com"
}
}
}
}
| Tool | Purpose |
|---|
paper_lookup(paper_id_or_url) | Paper metadata + confident-tier repos |
code_for_paper(paper_id_or_url, limit, include_possible) | Ranked GitHub repos implementing a paper |
search_papers(query, limit, year, venue, has_code) | Free-text paper search with filters |
All tools are read-only, return plain JSON, and surface API errors as {"error": "...", "status": N} rather than throwing — agents get structured output either way.
Common Workflows
Core Discovery
codeofpaper search "reinforcement learning" --sort has_code --has-code
codeofpaper code 1706.03762
codeofpaper paper https://arxiv.org/abs/2010.11929
codeofpaper repo google-research/vision_transformer
codeofpaper open 2010.11929
codeofpaper open 2010.11929 --code
Browsing & Monitoring
codeofpaper trending --category cs.CV --sort hot
codeofpaper code-drops --days 7
codeofpaper conference neurips_2024 --track oral --has-code
codeofpaper trending --category cs.CV --days 1 -o json >> ~/research/daily_cv.jsonl
Composable Pipelines
codeofpaper similar 2010.11929 -o quiet | codeofpaper batch code
cat reading_list.txt | codeofpaper batch paper > enriched.jsonl
codeofpaper code 1706.03762 -o quiet | head -1 | xargs gh repo view
codeofpaper export conference neurips_2024 --has-code -o bibtex > neurips2024_code.bib
codeofpaper export trending --category cs.CV --has-code --days 365 -o csv > cv_with_code.csv
Multi-Step Scripts
REPO=$(codeofpaper search "attention is all you need" -o quiet | head -1 | \
xargs codeofpaper code -o json | jq -r '.top_repos[0].full_name')
gh repo clone "$REPO"
ID=$(codeofpaper random --quality high -o quiet)
codeofpaper paper "$ID"
codeofpaper similar "$ID"
codeofpaper code "$ID"
ARXIV_ID="2010.11929"
TITLE=$(codeofpaper -o json paper "$ARXIV_ID" | jq -r '.title')
echo "Paper: $TITLE"
Configuration
Config is stored as JSON via platformdirs:
| OS | Path |
|---|
| Linux | ~/.config/codeofpaper/config.json |
| macOS | ~/Library/Application Support/codeofpaper/config.json |
| Windows | %APPDATA%\codeofpaper\config.json |
Fields:
{
"api_url": "https://api.codeofpaper.com",
"api_key": null,
"default_format": "table",
"ca_bundle": null
}
No config file needed — everything works out of the box with sensible defaults.
Priority Chain
Options are resolved in this order (first wins):
- CLI flag (
--api-url, --api-key, --ca-bundle, -o)
- Environment variable (
CODEOFPAPER_API_URL, CODEOFPAPER_API_KEY, CODEOFPAPER_CA_BUNDLE, CODEOFPAPER_OUTPUT, CODEOFPAPER_TIMEOUT)
- Config file
- Built-in defaults
Corporate Proxies / Custom TLS Certificates
If you're behind a corporate proxy that performs TLS inspection (man-in-the-middle), you'll see an SSL error like:
Cannot reach API: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain
To fix this, point the CLI at your corporate CA certificate bundle (PEM file). Three equivalent ways, in priority order:
codeofpaper --ca-bundle /path/to/corporate-ca.pem search "transformers"
export CODEOFPAPER_CA_BUNDLE=/path/to/corporate-ca.pem
Ask your IT department for the CA certificate file if you don't have it.
Tip: If you've already set SSL_CERT_FILE for other tools (pip, curl, etc.), httpx respects that variable automatically — no extra configuration needed.
Alias: cop
Both codeofpaper and cop are installed as entry points:
cop search "transformers"
cop -o json trending | jq '.'
Note: If cop conflicts with another tool on your system, use codeofpaper instead.
Shell Completion
Install tab completion for your shell:
codeofpaper --install-completion
Supports bash, zsh, fish, and PowerShell. After installing, restart your shell or source the completion file.
Help
codeofpaper --help
codeofpaper search --help
codeofpaper -v
Links
License
MIT