slax-lab/slax-reader
slax-lab/slax-reader has 85 GitHub stars and 5 forks. GitHot measured 0 stars in 24 hours and +1 in 7 days. Last checked 2026-11-15 08:50 UTC. Last push 2026-11-03.
Measured star growth
- in 24h
- 0
- in 7 days
- +1
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
Open-source, AI-powered read-it-later — save web pages, highlight, and discuss
ProductivityREADME.md
OriginalSlax Reader
Open-source, AI-powered read-it-later — save web pages, highlight, and discuss.

Get Slax Reader
- Website: slax.com/reader
- Web: r.slax.com
- iOS: App Store
- Android: Google Play
- Chrome Extension: Chrome Web Store (works on Edge too)
Follow @SlaxReader on X for updates.
What it does
- Permanent snapshots — saved pages stay readable even after the original link dies.
- AI reading aids — outlines, summaries, and in-context answers while you read.
- Highlight and discuss — annotate any passage, then share the page; anyone with the link can join the discussion.
Repository structure
This monorepo hosts all Slax Reader code:
| Path | Description |
|---|---|
apps/web |
Web frontend (r.slax.com) |
apps/extension |
Browser extension (Chrome/Edge) |
apps/mobile |
Expo / React Native Android and iOS app |
apps/api |
API server (Cloudflare Workers: Core, Edge, AI and Browser) |
apps/cli |
Command-line client |
packages/contracts |
Shared API, domain and event contracts (@slax-reader/contracts) |
packages/frontend-types |
Shared Web/Extension implementation types |
packages/frontend-utils |
Shared frontend utilities |
packages/reader-embed |
Portable reader assets and PDF runtime for mobile hosts |
packages/selection |
Shared highlighting and annotation engine |
deploy/ |
Public API template and local app infrastructure |
docs/ |
Web, Extension, API, CLI and mobile development docs |
tests/e2e |
End-to-end tests |
tooling/ |
Command dispatchers and repository tooling |
Shared libraries belong in packages when at least two apps use them. See the
Web architecture for the current application and package boundaries.
Development and self-hosting
Install dependencies once from the repository root:
pnpm install --frozen-lockfile
The root exposes one dispatcher per application while each app keeps its concrete command list:
pnpm preflight
pnpm setup:all
pnpm api -- dev
pnpm web -- dev
pnpm extension -- dev
pnpm preflight checks the Node.js/pnpm runtime and the API, Web, and Extension module states without changing local files or services. After configuration is prepared, pnpm setup:all runs API setup, Web setup, and Extension setup in order. Run the three dev commands separately; setup never starts application servers.
The API's setup command prepares local dependencies and exits; dev starts Workers separately. Use pnpm api -- setup when only the API needs to be initialized again. Remote deployment and migrations remain explicit operations with their safety checks. See the API development guide (中文, 日本語).
Preflight distinguishes startup blockers (当前无法启动) from missing functionality (可启动,但无法正常运行), such as unavailable Docker or missing login settings. Both return exit code 1; optional features do not. See Reading preflight results for status meanings and recovery steps.
Web and Extension configuration lives alongside the API's under deploy/local/, distinguished by filename: .env.web/.env.web.example for Web, .env.extension/.env.extension.example for Extension. The API uses the public template deploy/cloudflare/api.toml.example and ignored local configuration under deploy/local/. Secrets belong in ignored local environment files or platform secret stores; do not put them in tracked templates or browser bundles.
API commands and API-specific configuration belong to apps/api/, including Prisma configs under prisma/ and deployment code under script/deploy/. The root api command forwards to the scripts declared by apps/api/package.json. Validation commands include:
pnpm api -- gen:all
pnpm api -- lint
pnpm api -- typecheck
pnpm api -- test
pnpm api -- build
Shared HTTP types live in packages/contracts. Web, Extension, API and CLI code import the contract package and do not import application internals.
CLI
The CLI is published as @slax-lab/reader-cli with the reader-cli executable. It needs no local deployment configuration to build or test:
pnpm cli -- typecheck
pnpm cli -- build
pnpm cli -- start --help
pnpm cli -- test
pnpm cli -- test:package
pnpm test:cli-tooling
See CLI development and automated npm/GitHub releases. Merges that change the CLI and increase its package version automatically create cli-v<version>-dev and cli-v<version>-beta GitHub Pre-Releases on dev and beta. Promotion to main creates cli-v<version> and publishes the same tested stable archive through npm OIDC and GitHub Release; no user-added Actions secret is required.
Contributing
Bug reports, features, and docs are all welcome. You can contribute without a development environment through Web 开发与参与指南 or Extension development. Please follow our Code of Conduct.
License
Apache License 2.0. Copyright is held by The Slax Reader Contributors — see NOTICE for details.