AI-powered academic literature research.
Search 7 sources. Summarize in 6 sentences. Synthesize with evidence. Export to LaTeX.
Enter a research query. Get a structured literature review — with citations, gaps, and a reading guide.
sixsentences automates the tedious parts of literature review so you can focus on what matters: understanding the research landscape and finding your contribution.
Your Query
│
▼
┌─────────┐ ┌──────────┐ ┌──────────┐ ┌───────────┐ ┌──────────┐
│ Search 7 │───▶│ Dedup & │───▶│ Download │───▶│ Summarize │───▶│Synthesize│
│ Sources │ │ Score │ │ PDFs │ │ 6S each │ │ & Export │
└──────────┘ └──────────┘ └──────────┘ └───────────┘ └──────────┘
S2 · OpenAlex Fuzzy match Full text CONTEXT Literature
arXiv · DBLP + LLM filter extraction GOAL review with
CrossRef · METHOD [N] citations
PubMed · GS RESULT + .bib file
LIMITATION
RELEVANCE
Every paper gets a structured summary with exactly 6 labeled sentences:
| Label | What it captures |
|---|---|
| CONTEXT | Research area and problem space |
| GOAL | Specific objective or research question |
| METHOD | Approach, technique, or methodology used |
| RESULT | Key findings with specific numbers and metrics |
| LIMITATION | What was not addressed or could be improved |
| RELEVANCE | How this paper connects to your query |
Not a wall of text — a structured analysis with evidence:
- Executive Summary — 3-5 sentences with
[N]citations linking to papers - Thematic Sections — Papers grouped by research direction, with cross-paper analysis
- Methodology Landscape — Dominant approaches, emerging methods, evaluation patterns
- Research Gaps — Prioritized (high/medium/low) with evidence from the papers
- Reading Guide — Three tiers: Must-Read, State-of-the-Art, Deep-Dive
- Critical Assessment — Common limitations, biases, reproducibility concerns
Every [N] reference is clickable and shows the paper title on hover.
| # | Phase | Description |
|---|---|---|
| 1 | Query Understanding | Expand into sub-topics, keywords, target venues |
| 2 | Multi-Source Search | Parallel search across 7 academic databases |
| 3 | Deduplication | Exact ID + fuzzy title matching (85% threshold) |
| 4 | Scoring | Quality scoring with keyword relevance and stemming |
| 5 | Relevance Filter | LLM-based relevance assessment per paper |
| 6 | PDF Download | Batch retrieval with anti-detection delays |
| 7 | Summarization | 6-sentence structured + full summaries |
| 8 | Citation Snowball | Forward/backward citation traversal |
| 9 | Reference Mining | Extract cited papers from full text |
| 10 | Recommendations | Semantic Scholar recommendations |
| 11 | Refinement | Gap analysis and iterative search expansion |
| 12 | Enrichment | CrossRef metadata enrichment |
| 13 | Synthesis | Parallel: report, clusters, comparison, authors, trends |
| 14 | Report Assembly | Persist to database |
Route different tasks to different providers with automatic fallback:
# Claude for synthesis, MiniMax for bulk scoring
SYNTHESIS_PROVIDERS=anthropic,minimax
SCORING_PROVIDERS=minimax,openai| Provider | Example Models |
|---|---|
| MiniMax | MiniMax-M2.7 (default — fast & cheap) |
| Anthropic | Claude Sonnet, Claude Opus |
| OpenAI | GPT-4o, GPT-4o-mini |
| Gemini 2.0 Flash | |
| Ollama | Any local model (Llama, Mistral, ...) |
One click → .zip with publication-ready files:
main.tex—\section{Related Work}with\subsection{}per theme and\cite{key}referencesreferences.bib— Complete BibTeX entries for all papers
Also exports to: BibTeX, RIS, CSV, JSON
- Real-time progress with SSE and phase-aware status messages
- Chat with your research (streaming, conversation history)
- Citation graph with PageRank and community detection
- Reading list — To Read / Reading / Done
- Annotations with tags and highlights
- Watch queries for monitoring topics over time
- Auth with JWT, refresh token rotation, TOTP 2FA
Requirements: Docker + one LLM API key
git clone https://github.com/yourusername/sixsentences.git
cd sixsentences
cp .env.example .env
# Edit .env: set an LLM API key + JWT_SECRET (openssl rand -base64 48)
make upOpen http://localhost:3000 — register, enter a query, watch the pipeline work.
┌───────────────────────────────────────────────────────────────────┐
│ Frontend — Next.js 16 · React 19 · TypeScript · Tailwind CSS 4 │
└───────────────────────────────┬───────────────────────────────────┘
│
┌───────────────────────────────▼───────────────────────────────────┐
│ Gateway — Go · JWT Auth · SSE Progress · Rate Limiting │
└──┬────────┬────────┬────────┬────────┬────────┬──────────────────┘
│ │ │ │ │ │
Session Orch. Source Dedup AI PDF
Store ───▶ Proxy Score Pipeline Proc.
(Go) 14-phase (Go) (Go) (Python) (Py)
│ engine │ │
│ (Go) │ │
▼ ▼ ▼
Postgres 7 Academic 5 LLM Providers
+ Redis Sources + Cost Tracking
+ MinIO
| Service | Lang | Port | What it does |
|---|---|---|---|
| gateway | Go | 8080 | API entry point, auth, SSE, rate limiting |
| orchestrator | Go | 50052 | 14-phase pipeline execution engine |
| session | Go | 50051 | Papers, sessions, synthesis persistence |
| source-proxy | Go | 50053 | 7 academic source adapters |
| dedup | Go | 50054 | Deduplication, scoring, enrichment |
| ai-pipeline | Python | 50055 | 13 LLM-powered analysis services |
| pdf-processor | Python | 50056 | PDF download + text extraction |
| citation-graph | Go | 50057 | Snowball, PageRank, communities |
| scraper | Python | 50058 | Google Scholar, PubMed, DBLP |
| notifier | Go | 50059 | Watch queries, webhooks, email |
| frontend | TS | 3000 | Next.js web application |
| Layer | Technologies |
|---|---|
| Backend | Go 1.25 · Python 3.12 · gRPC/Protobuf · Chi Router |
| Frontend | Next.js 16 · React 19 · TypeScript 5 · Tailwind 4 · React Query · Zustand |
| Infra | PostgreSQL 16 · Redis 7 · MinIO (S3) · Prometheus |
| AI | Custom multi-provider LLM router (no LiteLLM) |
| Variable | How to set |
|---|---|
JWT_SECRET |
openssl rand -base64 48 |
DB_PASSWORD |
Any strong password |
| LLM API key | At least one of: MINIMAX_API_KEY, ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, OLLAMA_HOST |
| Variable | Default | Description |
|---|---|---|
DEV_MODE |
false |
Dev auth bypass — never in production |
COOKIE_SECURE |
false |
true when serving over HTTPS |
S2_API_KEY |
— | Semantic Scholar (better rate limits) |
CROSSREF_EMAIL |
— | CrossRef polite pool |
*_PROVIDERS |
minimax |
Per-task LLM routing (see above) |
Full list in .env.example.
make up # Start all services (docker compose up -d --build)
make down # Stop everything
make up-infra # Only postgres + redis + minio
make build # Build Go binaries
make test # Go + Python tests
make proto-gen # Regenerate gRPC stubs
make lint # Lint everything
make migrate # Run DB migrationsPrerequisites: Go 1.25+ · Python 3.12+ · Node.js 20+ · Docker · buf
sixsentences/
├── proto/ Protobuf service definitions
├── gen/ Generated gRPC code
├── migrations/ PostgreSQL migrations (001-009)
├── services/
│ ├── gateway/ HTTP API gateway (Go)
│ ├── orchestrator/ Pipeline engine (Go)
│ ├── session/ Persistence (Go)
│ ├── source-proxy/ 7 academic sources (Go)
│ ├── dedup/ Dedup & scoring (Go)
│ ├── ai-pipeline/ 13 LLM services (Python)
│ ├── pdf-processor/ PDF extraction (Python)
│ ├── citation-graph/ Citation analysis (Go)
│ ├── scraper/ Web scraping (Python)
│ ├── notifier/ Notifications (Go)
│ └── frontend/ Next.js app (TypeScript)
├── docker-compose.yml Full stack orchestration
├── Makefile Build & dev commands
└── go.work Go workspace (7 modules)
- bcrypt password hashing (cost 12)
- JWT with HMAC-SHA256, refresh token rotation, family-based theft detection
- Tokens stored as SHA-256 hashes
- TOTP 2FA support
- Per-user rate limiting
- Email enumeration prevention
- Non-root Docker containers
- Multi-stage builds
- Custom LLM router — no third-party proxy dependencies
Found a vulnerability? Please open a private security advisory rather than a public issue.
Contributions are welcome! Whether it's a bug fix, new feature, or documentation improvement — all PRs are appreciated.
Looking for a place to start? Check out issues labeled good first issue. Here are some areas where help is needed:
- New academic sources — Add adapters for PubMed Central, IEEE Xplore, or CORE
- Citation graph visualization — Replace the current list view with an interactive D3/force-directed graph
- Better comparison tables — Heatmap coloring, column pinning, numeric sorting
- Internationalization — The UI is English-only, translations welcome
- Test coverage — Unit and integration tests for Go services and Python AI pipeline
- Documentation — API docs, deployment guides, architecture deep-dives
- Fork the repo and create a branch (
feat/my-featureorfix/my-bug) - Make your changes — keep diffs small and focused
- Run
make testandmake lint - Open a PR with a clear description of what and why
- Go:
gofmt, conventional commits - Python: PEP 8, type hints, f-strings
- TypeScript: ESLint config from Next.js
- Commits:
feat:,fix:,docs:,refactor:,test:
MIT — use it, fork it, build on it.
Built on the shoulders of great open data and APIs:
Semantic Scholar · OpenAlex · CrossRef · arXiv · PubMed · DBLP