
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.
npm install -g papergraph
Then run:
papergraph build -t "transformer attention" -o graph.db
papergraph view -i graph.db -o graph.html
open graph.html
No API keys required — works out of the box with OpenAlex (free, open academic data).
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) |
npm install -g papergraph
papergraph build -t "neural speech enhancement" -d 2 -m 100 -o graph.db
papergraph view -i graph.db -o graph.html
git clone https://github.com/DashankaNadeeshanDeSilva/Paper-Graph.git
cd Paper-Graph
npm install
npm run build
node dist/index.js build -t "transformer attention" -o graph.db
See USAGE.md for full CLI reference, configuration options, and workflow examples.
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.