Go to file
Elian Doran 4e960bf4da
refactor(llm): bring-your-own-binary for the Claude Agent provider
The @anthropic-ai/claude-agent-sdk pulls a ~250 MB per-platform native
binary as an optionalDependency, so the prototype's plain dependency put
that weight into every server install and Docker layer whether or not
anyone uses the subscription provider. This switches to
bring-your-own-binary: keep the ~4 MB SDK JS wrapper, strip the bundled
binary, and drive the user's own installed Claude Code CLI.

- .pnpmfile.cjs readPackage hook removes the
  @anthropic-ai/claude-agent-sdk-<platform> optionalDependencies at
  install time (node_modules/@anthropic-ai/claude-agent-sdk-linux-x64:
  248 MB -> gone; SDK JS retained; lockfile no longer references them).
- claude_binary.ts resolves the CLI (TRILIUM_CLAUDE_CODE_PATH override,
  else `claude` on PATH) and probes `--version` once so a missing/broken
  install fails with a clear, actionable message instead of an opaque
  mid-chat spawn error. The provider passes it via
  pathToClaudeCodeExecutable.
- This also sidesteps the SDK's bundled glibc ELF needing a nix-ld shim:
  the user's platform binary (e.g. the self-contained nixpkgs wrapper)
  is used instead.

Verified: binary stripped from node_modules + lockfile, SDK JS still
imports, resolver finds and probes the host `claude`. Provider suite 24
tests; full LLM suite 235.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 22:37:40 +03:00
.claude/skills chore(skills): update an example 2026-06-26 17:36:25 +03:00
.github fix(pdf): commit in-progress annotation edits when saving 2026-07-12 16:30:01 +03:00
.vscode make browser reference platform-agnostic and reliant on defaults 2026-02-23 12:29:29 +01:00
apps refactor(llm): bring-your-own-binary for the Claude Agent provider 2026-07-13 22:37:40 +03:00
docs Translated using Weblate (Chinese (Simplified Han script)) 2026-07-11 05:02:13 +02:00
packages feat(llm): show subscription models with a clean name and cost label 2026-07-13 21:53:36 +03:00
patches fix(canvas): stop flowchart/zoom-to-fit collapsing zoom to 10% (#10493) 2026-07-13 09:52:50 +03:00
scripts Merge remote-tracking branch 'origin/main' into standalone-ios 2026-06-08 08:35:56 +03:00
test-results/desktop-e2e-example-First-setup Fix #6929: Resolve merge conflict 2026-04-23 23:47:14 +01:00
.editorconfig chore: formatting for CJS files 2026-03-01 20:00:23 +02:00
.envrc chore: use direnv built-in has command 2025-12-23 20:52:07 +02:00
.gitattributes chore(git): diff TypeScript sources as text 2026-06-23 15:12:35 +03:00
.gitignore Merge remote-tracking branch 'origin/main' into standalone-ios 2026-07-04 23:38:34 +03:00
.mailmap chore(scripts): tweak criteria for contributors 2026-04-19 15:34:14 +03:00
.mcp.json chore(mcp): add MCP config for localhost 2026-04-01 11:29:29 +03:00
.npmrc build(npm): use specific overrides instead of legacy-peer-deps 2025-01-27 07:54:48 +01:00
.nvmrc chore(deps): update node.js to v24.18.0 2026-06-26 00:28:23 +00:00
.nxignore chore(nx): remove dist & node_modules from .nxignore 2025-06-15 14:52:27 +03:00
.pnpmfile.cjs refactor(llm): bring-your-own-binary for the Claude Agent provider 2026-07-13 22:37:40 +03:00
CLAUDE.md docs(mobile): document the iOS capacitor:// request-routing gotcha 2026-07-05 18:52:52 +03:00
CODE_OF_CONDUCT Create CODE_OF_CONDUCT 2022-02-12 13:17:49 +01:00
codecov.yml ci(ckeditor5): upload aggregate package coverage to Codecov 2026-06-13 14:54:37 +03:00
contributors.json contributor list: update display name 2026-04-27 20:52:18 +03:00
docker-compose.rootless.yml feat(ci): add rootless dockerfiles 2025-05-13 18:51:18 +00:00
docker-compose.yml Update docker-compose.yml with new container image 2025-07-08 16:51:10 +01:00
edit-docs-config.yaml Refactor edit-docs to use edit-docs-config.yaml 2026-01-12 22:08:27 -08:00
eslint.config.mjs fix(server): missing await for some checks 2026-05-31 10:36:09 +03:00
eslint.format.config.mjs chore(eslint): integrate formatter config 2025-12-06 14:43:08 +02:00
flake.lock chore(nix): adapt to pnpm 11 2026-05-19 18:10:40 +03:00
flake.nix chore(nix): remove dead ELECTRON_SKIP_BINARY_DOWNLOAD env 2026-06-19 09:55:20 +03:00
LICENSE revert unintended license changes 2024-01-28 23:09:57 +01:00
package.json Merge remote-tracking branch 'origin/main' into 2026-07-13 20:38:00 +03:00
pnpm-lock.yaml refactor(llm): bring-your-own-binary for the Claude Agent provider 2026-07-13 22:37:40 +03:00
pnpm-workspace.yaml fix(canvas): stop flowchart/zoom-to-fit collapsing zoom to 10% (#10493) 2026-07-13 09:52:50 +03:00
README.md chore(docs): sync README 2026-06-29 19:35:28 +03:00
renovate.json fix(mobile): pin Android Gradle Plugin to 9.1.1 and stop Renovate bumping it 2026-07-03 17:28:50 +03:00
SECURITY.md docs: update security architecture references after nodeIntegration removal 2026-06-09 21:25:00 +03:00
tsconfig.base.json fix: resolve TypeScript 6 typecheck issues 2026-03-31 19:22:16 +00:00
tsconfig.json Merge remote-tracking branch 'origin/main' into standalone 2026-04-26 16:10:09 +03:00
vitest.config.ts chore(vitest): get rid of warning about number of projects 2026-01-01 23:56:26 +02:00

Trilium Notes

GitHub Sponsors LiberaPay patrons
Docker Pulls GitHub Downloads (all assets, all releases)
Translation status

Arabic | Chinese (Simplified Han script) | Chinese (Traditional Han script) | Czech | English (United Kingdom) | English | French | German | Greek | Indonesian | Irish | Italian | Japanese | Korean | Polish | Romanian | Russian | Spanish | Ukrainian | Urdu | Uyghur

Trilium Notes is a free and open-source, cross-platform hierarchical note taking application with focus on building large personal knowledge bases.

Trilium Screenshot

Download

  • Latest release stable version, recommended for most users.
  • Nightly build unstable development version, updated daily with the latest features and fixes.

📚 Documentation

Visit our comprehensive documentation at docs.triliumnotes.org

Our documentation is available in multiple formats:

  • Online Documentation: Browse the full documentation at docs.triliumnotes.org
  • In-App Help: Press F1 within Trilium to access the same documentation directly in the application
  • GitHub: Navigate through the User Guide in this repository

🎁 Features

Check out the following third-party resources/communities for more TriliumNext related goodies:

Why TriliumNext?

The original Trilium developer (Zadam) has graciously given the Trilium repository to the community project which resides at https://github.com/TriliumNext

⬆️Migrating from Zadam/Trilium?

There are no special migration steps to migrate from a zadam/Trilium instance to a TriliumNext/Trilium instance. Simply install TriliumNext/Trilium as usual and it will use your existing database.

Versions up to and including v0.90.4 are compatible with the latest zadam/trilium version of v0.63.7. Any later versions of TriliumNext/Trilium have their sync versions incremented which prevents direct migration.

💬 Discuss with us

Feel free to join our official conversations. We would love to hear what features, suggestions, or issues you may have!

🏗 Installation

Windows / MacOS

Download the binary release for your platform from the latest release page, unzip the package and run the trilium executable.

Linux

If your distribution is listed in the table below, use your distribution's package.

Packaging status

You may also download the binary release for your platform from the latest release page, unzip the package and run the trilium executable.

TriliumNext is also provided as a Flatpak, but not yet published on FlatHub.

Browser (any OS)

If you use a server installation (see below), you can directly access the web interface (which is almost identical to the desktop app).

Currently only the latest versions of Chrome & Firefox are supported (and tested).

Mobile

To use TriliumNext on a mobile device, you can use a mobile web browser to access the mobile interface of a server installation (see below).

See issue https://github.com/TriliumNext/Trilium/issues/4962 for more information on mobile app support.

TriliumDroid

If you prefer a native Android app, you can use TriliumDroid. Report bugs and missing features at their repository. Note: It is best to disable automatic updates on your server installation (see below) when using TriliumDroid since the sync version must match between Trilium and TriliumDroid.

Pocket Trilium

If you want a full-featured native Android app, check out Pocket Trilium. It runs a complete Trilium instance on your phone, supports full offline use, and allows you to sync with your server.

Trinote

If you want a native iOS app, you can use Trinote, an open-source client for your self-hosted Trilium / TriliumNext server. It lets you browse and organize your note tree, search for notes on the server, read and edit all note types (text, code, mindmap, spreadsheet, geomap, canvas, etc.), and keeps notes available and editable offline. Here's the repo if you're interested in contributing and here's the discord server if you have any feedback or suggestions you want to discuss.

Server

To install TriliumNext on your own server (including via Docker from Dockerhub) follow the server installation docs.

💻 Contribute

Translations

If you are a native speaker, help us translate Trilium by heading over to our Weblate page.

Here's the language coverage we have so far:

Translation status

Code

Download the repository, install dependencies using pnpm and then run the server (available at http://localhost:8080):

git clone https://github.com/TriliumNext/Trilium.git
cd Trilium
pnpm install
pnpm run server:start

Documentation

Download the repository, install dependencies using pnpm and then run the environment required to edit the documentation:

git clone https://github.com/TriliumNext/Trilium.git
cd Trilium
pnpm install
pnpm edit-docs:edit-docs

Alternatively, if you have Nix installed:

# Run directly
nix run .#edit-docs

# Or install to your profile
nix profile install .#edit-docs
trilium-edit-docs

Building the Executable

Download the repository, install dependencies using pnpm and then build the desktop app for Windows:

git clone https://github.com/TriliumNext/Trilium.git
cd Trilium
pnpm install
pnpm run --filter desktop electron-forge:make --arch=x64 --platform=win32

For more details, see the development docs.

Developer Documentation

Please view the documentation guide for details. If you have more questions, feel free to reach out via the links described in the "Discuss with us" section above.

💖 Sponsors

NetPerfect logo
NetPerfect

EV certificate & Windows CI
CKEditor logo
CKEditor

Premium editor features
Dosu logo
Dosu

Automated GitHub support

👏 Shoutouts

  • zadam for the original concept and implementation of the application.
  • Sarah Hussein for designing the application icon.
  • nriver for his work on internationalization.
  • Thomas Frei for his original work on the Canvas.
  • antoniotejada for the original syntax highlight widget.
  • Tabler Icons for the system tray icons.

Trilium would not be possible without the technologies behind it:

🤝 Support

Trilium is built and maintained with hundreds of hours of work. Your support keeps it open-source, improves features, and covers costs such as hosting.

Consider supporting the main developer (eliandoran) of the application via:

🔑 License

Copyright 2017-2025 zadam, Elian Doran, and other contributors

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.