Newshot

Show HN: Gamma PDF – AI-native PDF reader, self-hosted

Original text(via HN AI)

Open source · self-hosted · for people who read papers

Read papers.Keep what you learn.

A PDF annotator with outliner notes, live math and an AI that reads along — on your own machine.

Windows · macOS · Linux · iPad · Android · Docker · Latest release

Gamma with a Nature paper open on its first figure: a highlighted sentence and its note in the notes on the right, and under them an AI chat that answers what the paper's key idea is
Gamma with a Nature paper open on its first figure: a highlighted sentence and its note in the notes on the right, and under them an AI chat that answers what the paper's key idea is

Highlight, annotate & draw

Every mark becomes a note.

Highlight, draw or type on the page. Each mark lands in your notes, and a click jumps back to the passage.

A paper with pencil marks made on the iPad and their ink cards in the notes: Gamma's pen circles a phrase and draws an arrow to a margin note, and a new card lands in the notes
A paper with pencil marks made on the iPad and their ink cards in the notes: Gamma's pen circles a phrase and draws an arrow to a margin note, and a new card lands in the notes

Notes with live math.

An outliner right next to the paper, with live Markdown and LaTeX, links between pages, and handwriting on a sheet.

A live LaTeX equation renders in a note next to a page link, then /note drops a sheet of paper into the notes and a pen sketches the result on it
A live LaTeX equation renders in a note next to a page link, then /note drops a sheet of paper into the notes and a pen sketches the result on it

Ask an AI about your papers

Ask the paper.

Get cited answers that jump to the passage, with your own Anthropic or OpenAI key or a paid ChatGPT plan.

Ctrl+dragging a figure into the chat and asking what it shows, following the answer's page citation to the marked passage, then asking about a highlighted sentence's references: the assistant searches for the three papers, reads them and compares them in a cited table
Ctrl+dragging a figure into the chat and asking what it shows, following the answer's page citation to the marked passage, then asking about a highlighted sentence's references: the assistant searches for the three papers, reads them and compares them in a cited table

Everything around the paper.

Every device

Browser, desktop, iPad and Android. Offline copies sync themselves.

Find anything

Search notes, highlights and every PDF at once.

Metadata and citations

Title, authors and venue fill in on open. Copy BibTeX in one click.

One-click saving

The browser extension saves the paper you're reading, with its metadata, to the folder you pick.

Work together

Shared workspaces, live cursors, and comments on any note or highlight.

Your tools

Import from Zotero, Obsidian, Logseq and Notion. Connect Codex, Claude Code and any MCP client.

Read the user guide

Yours, either way.

SQLite and files in one folder. No account with us, no telemetry. Export everything at any time.

Privacy policy

Desktop app

Free. Your library on your own disk.

Your own server

Free. One Docker image for your whole lab.

Gamma Cloud Coming soon

A library we keep running for you, if you'd rather not run a server.

Free, on every desk.

A self-contained app: no Docker, Python or Node. Latest release.

Windows

Or the standalone installer (SmartScreen: More info → Run anyway).

macOS

First launch: System Settings → Privacy & Security → Open Anyway.

Linux

Debian / Ubuntu, x64.

Server


        docker run -d --name gamma -p 9001:9001 -v gamma-data:/data ghcr.io/tim4431/gamma:latest
      

Open localhost:9001 as admin; the password is in docker logs gamma. More ↓

iPad

Install Apple's TestFlight app, then open the link on the iPad. Keeps a workspace on the iPad for the Pencil with no connection.

Android

Android 10 or later on 64-bit ARM, phones and tablets. Open the APK on the device and allow your browser to install it. Keeps a workspace on the device for the stylus with no connection.

Browser extension

Gamma Connector, for Chrome, Edge and other Chromium browsers. Or the .zip.

Codex, Claude Code & MCP

Codex, Claude Code and any MCP client can search and read your papers, notes and highlights, read-only, for one workspace you approve.


        claude mcp add --transport http --scope user gamma <your Gamma>/mcp
      

        codex mcp add gamma --url <your Gamma>/mcp
      

One-command setup in Settings → AI → Integrations. Connection guide

One container. Your whole lab.

One Docker image for amd64 and arm64, with all your data in one /data volume.

Users and shared workspaces are managed in the app. Put Caddy or nginx in front for your own domain. The Watchtower service in the compose file keeps it upgraded.

Full install notes on GitHubUpgrading

docker-compose.yml.example


        services:
  gamma:
    container_name: gamma
    image: ghcr.io/tim4431/gamma:latest
    build: .
    ports:
      - "9001:9001"
    volumes:
      # Named volume: Docker manages the storage location. To keep the data in
      # a real folder next to this file instead, use a bind mount:
      #   - ./data:/data
      - gamma-data:/data
    # environment:
      # With a bind mount, set these to your host user's ids (`id -u` / `id -g`)
      # so the files Gamma creates belong to you instead of root:
      # PUID: 1000
      # PGID: 1000
      # Behind a reverse proxy (Caddy, nginx for a domain with TLS), the
      # proxy's address, so Gamma believes its X-Forwarded-For and rate
      # limits count each visitor instead of the proxy. For a proxy container
      # in this file, the subnet of the network below (pinned, so it is
      # known). Leave it unset when nothing sits in front of the port. The
      # proxy needs no compression of its own for the app's files: Gamma
      # sends the Brotli or gzip copies its build made.
      # FORWARDED_ALLOW_IPS: 10.203.0.0/24
      # Off-site copies of the databases and uploaded files to an S3-compatible
      # bucket are set up by an admin in Settings -> Backups; a container can
      # set them with GAMMA_S3_BUCKET and the other GAMMA_S3_* / GAMMA_OFFSITE*
      # variables instead (docs/dev/debugging.md "Off-site copies in a bucket").
    restart: unless-stopped

  # Keeps the gamma container on the newest image: Watchtower polls the
  # registry every six hours, pulls a new image and restarts gamma, which
  # runs an upgrade's global steps as it starts and each workspace's own as
  # the workspace is first opened (a snapshot of the databases is taken
  # first; see docs/dev/migrations.md). Scoped to this container, so it
  # never touches others on the host. The image is the maintained fork of
  # Watchtower (github.com/nicholas-fedor/watchtower), pinned to its major
  # version; it holds the Docker socket, which is root on the host. Remove
  # the service to update by hand with
  # `docker compose pull && docker compose up -d`.
  watchtower:
    container_name: gamma-watchtower
    image: nickfedor/watchtower:1
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --cleanup --interval 21600 gamma
    restart: unless-stopped

volumes:
  gamma-data:

# With a proxy container next to gamma, pin the compose network's subnet and
# name it in FORWARDED_ALLOW_IPS above:
# networks:
#   default:
#     ipam:
#       config:
#         - subnet: 10.203.0.0/24
      

Questions

Draw with a stylus or the mouse anywhere. On an iPad, the Pencil writes with pressure: in the iPad app (a TestFlight beta, which also works with no connection) or after Add to Home Screen from Safari. On Android, the Android app captures an S Pen, USI or Wacom stylus natively and works with no connection too. See Install as an app.

Windows, macOS and Debian/Ubuntu on the desktop; the iPad through TestFlight; Android 10 or later on 64-bit ARM through the APK on each release, and Google Play once it is listed; Docker (amd64, arm64) or Python 3.11+ and Node 18+ on a server.

The text above was extracted automatically from the source page and may miss images, tables or code blocks. The original is authoritative.

Published by HN AI
This site only summarises and aggregates; copyright stays with the original author. Headlines and summaries follow the source — where they differ, the original wins.
Read the original ↗