Generate plain-language narratives and technical summaries from arxiv papers.
| # | Method | Best for | API key needed? | Cached? |
|---|---|---|---|---|
| 1 | CLI + OpenAI | Regular use, any OpenAI-compatible API (OpenAI, OpenRouter, Ollama, local models) | Yes | Yes |
| 2 | CLI + Claude | Already have a Claude Code subscription, don't want another API key | No | Yes |
| 3 | Claude Code Plugin | Already inside Claude Code, want one-command summaries | No | No |
Install once, use anywhere from your terminal. Works with any OpenAI-compatible API — OpenAI, OpenRouter, Ollama, or any local model server.
uv tool install git+https://github.com/dipta007/skim # or pipx, or pip, see the Install section below
skim init # select "openai", enter API key
skim -p 2509.16538 -t story # generate summarySame CLI, but uses your existing Claude Code subscription — no API key needed. Requires the claude CLI to be installed and logged in.
uv tool install git+https://github.com/dipta007/skim # or pipx, or pip, see the Install section below
skim init # select "claude"
skim -p 2509.16538 -t story # generate summaryAlready inside Claude Code? Install the plugin and use slash commands — no setup, no API key.
/plugin marketplace add dipta007/skim
/plugin install skim@dipta007-skim
Then, inside your claude-code:
/story 2509.16538
/deep 2509.16538
Claude reads the paper and generates the summary directly.
| Type | What you get |
|---|---|
story |
A plain-language, analogy-driven narrative — no jargon, no equations |
deep |
A structured technical summary with methodology, results, and key contributions |
Open summaries in the browser with proper LaTeX math rendering, dark/light theme toggle, and a readable serif font:
skim -p 2509.16538 -t deep --openSummaries are cached locally so repeated lookups are instant. To clear the cache:
skim clean # remove all cached summaries
skim clean -p 2509.16538 # remove cache for a specific paperConfig lives at ~/.config/skim/config.toml. Re-run skim init to change settings.
Example configs
OpenAI backend:
[api]
backend = "openai"
key = "sk-your-key"
base_url = "https://api.openai.com/v1"
model = "gpt-5.4-nano"
[output]
dir = "~/papers/skim"Claude backend:
[api]
backend = "claude"
key = ""
base_url = ""
model = "sonnet"
[output]
dir = "~/papers/skim"With uv (recommended):
uv tool install git+https://github.com/dipta007/skimWith pipx:
pipx install git+https://github.com/dipta007/skimWith pip:
pip install git+https://github.com/dipta007/skimFrom source:
git clone https://github.com/dipta007/skim.git
cd skim
make installgit clone https://github.com/dipta007/skim.git
cd skim
make install # Install dependencies + set up git hooks
make test # Run tests
make lint # Check code style
make format # Auto-format codemake install also configures git hooks that run the formatter/linter on commit and tests on push.
- Support
hf papers readcli to fetch papers from Hugging Face and summarize them (less tokens) - Support local PDF files (not just arxiv IDs)
-
skim list— show all previously summarized papers -
skim history— recently read papers - Export to PDF (from browser viewer / CLI flag when
--openis not used) - Custom prompt types — let users add their own
.mdprompts beyond story/deep (interactive) -
skim search— semantic search over local summaries or global database - Global database with public summary gallery
See RELATED.md for a curated list of similar tools, Claude Code skills, plugins, agents, and MCP servers for AI-powered research workflows.
See CONTRIBUTING.md for development setup, code style, and PR guidelines.
MIT
