
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
CLI tool that creates research-paper connectivity graphs from topics, keywords, or paper titles. Produces SQLite DB + self-contained HTML visualization.
Build interactive research-paper connectivity graphs from any topic.
PaperGraph is a command-line tool that discovers academic papers, traces their citation networks, computes text similarity, runs graph algorithms, and produces explorable visualizations — all from a single command.
Navigating academic literature is hard. A single topic can span thousands of papers across decades, and understanding how they connect — who cites whom, which share methods, which disagree — requires hours of manual work.
PaperGraph automates this:
The result is a navigable knowledge graph that reveals the structure of a research field at a glance.
┌─────────────────────────────────────────────────────────┐
│ CLI (Commander) │
│ build · export · view · inspect · cache │
└───────────────┬─────────────────────────────────────────┘
│
┌───────────────▼─────────────────────────────────────────┐
│ Graph Builder │
│ Orchestrates the full pipeline: │
│ seed → traverse → NLP → algorithms → store │
└──┬───────────┬──────────────┬──────────────┬────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌──────┐ ┌────────┐ ┌──────────┐ ┌──────────┐
│Source │ │ NLP │ │ Graph │ │ SQLite │
│Adapt.│ │Pipeline│ │ Algos │ │ Storage │
├──────┤ ├────────┤ ├──────────┤ ├──────────┤
│OpenAl│ │TF-IDF │ │PageRank │ │10 tables │
│ ex │ │Cosine │ │Louvain │ │WAL mode │
│ S2 │ │Entity │ │Co-cite │ │Migrations│
│ │ │Extract │ │Coupling │ │ │
└──┬───┘ └────────┘ │Scoring │ └──────────┘
│ └──────────┘
▼
┌──────────────────┐
│ HTTP Client │
│ Rate limiting │
│ Retry + backoff │
│ Token bucket │
└──────────────────┘
graph LR
A["Topic / Papers / DOIs"] --> B["Seed Discovery"]
B --> C["BFS Citation Traversal"]
C --> D["TF-IDF Corpus"]
D --> E["Similarity Edges"]
C --> F["Co-Citation / Coupling"]
D --> G["PageRank + Louvain"]
E --> H["SQLite Database"]
F --> H
G --> H
H --> I["Exporters / Viewer"]
Paper-Graph/
├── src/
│ ├── cli/ # CLI entry point (Commander)
│ │ └── index.ts # 5 commands: build, export, view, inspect, cache
│ │
│ ├── builder/ # Graph build orchestrator
│ │ └── graph-builder.ts # Full pipeline: seed → traverse → NLP → rank → store
│ │
│ ├── sources/ # API data source adapters
│ │ ├── openalex.ts # OpenAlex API adapter
│ │ ├── semantic-scholar.ts # Semantic Scholar API adapter
│ │ └── utils.ts # Shared utilities (DOI stripping, title similarity)
│ │
│ ├── nlp/ # Natural language processing
│ │ ├── tokenizer.ts # Deterministic tokenization (no stemming)
│ │ ├── stopwords.ts # 175+ English + academic stopwords
│ │ ├── tfidf.ts # TF-IDF corpus building + topic relevance
│ │ ├── similarity.ts # Cosine similarity + edge generation
│ │ └── entity-extraction.ts # Dictionary-based entity extraction
│ │
│ ├── graph/ # Graph algorithms
│ │ ├── algorithms.ts # PageRank, Louvain, co-citation, coupling
│ │ └── scoring.ts # Composite ranking (PageRank + relevance + recency)
│ │
│ ├── storage/ # Persistence layer
│ │ └── database.ts # SQLite via better-sqlite3 (10 tables, WAL mode)
│ │
│ ├── exporters/ # Output format exporters
│ │ └── export.ts # JSON, GraphML, GEXF, CSV, Mermaid
│ │
│ ├── viewer/ # Interactive visualization
│ │ └── html-viewer.ts # Self-contained Cytoscape.js HTML viewer
│ │
│ ├── cache/ # API response caching
│ │ └── response-cache.ts # File-system cache with SHA-256 keys + TTL
│ │
│ ├── utils/ # Shared infrastructure
│ │ ├── http-client.ts # HTTP client with rate limiting + retries
│ │ ├── logger.ts # Pino-based structured logging
│ │ └── config.ts # Cosmiconfig configuration resolver
│ │
│ ├── types/ # TypeScript type definitions
│ │ ├── index.ts # Paper, Edge, Cluster, Entity, Config interfaces
│ │ └── config.ts # Config types + defaults
│ │
│ └── __tests__/ # Test suites (86 tests)
│
├── dist/ # Built output (82 KB ESM bundle)
├── package.json
├── tsconfig.json
├── tsup.config.ts
└── vitest.config.ts
| Source | API | Rate Limit | Key Required |
|---|---|---|---|
| OpenAlex | REST | 10 req/s (polite pool) | Optional (email for polite pool) |
| Semantic Scholar | REST | 1 req/s (100 with key) | Optional |
| Spine | Description |
|---|---|
citation | Direct citation links (A cites B) |
similarity | TF-IDF cosine similarity between abstracts |
co-citation | Papers frequently cited together |
coupling | Papers that cite the same references |
hybrid | All of the above combined |
| Format | Extension | Use Case |
|---|---|---|
| JSON | .json | Programmatic access, custom visualization |
| GraphML | .graphml | yEd, Gephi, NetworkX |
| GEXF | .gexf | Gephi (with attributes) |
| CSV | .csv | Spreadsheets, pandas |
| Mermaid | .md | GitHub/GitLab rendered diagrams |
| Layer | Technology |
|---|---|
| Language | TypeScript (ESM, NodeNext) |
| Runtime | Node.js 20+ |
| CLI | Commander.js |
| HTTP | undici (Node.js built-in HTTP/1.1 & HTTP/2) |
| Database | better-sqlite3 (WAL mode) |
| Graph | graphology + graphology-communities |
| Logging | pino (JSON + pretty-print) |
| Config | cosmiconfig |
| Bundler | tsup |
| Testing | vitest (86 tests, 6 suites) |
# Install dependencies
npm install
# Build
npm run build
# Run
npx papergraph build -t "transformer attention" -o graph.db
npx papergraph view -i graph.db
See USAGE.md for detailed usage instructions.
MIT
FAQs
CLI tool that creates research-paper connectivity graphs from topics, keywords, or paper titles. Produces SQLite DB + self-contained HTML visualization.
The npm package papergraph receives a total of 3 weekly downloads. As such, papergraph popularity was classified as not popular.
We found that papergraph demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.