
test npm run test-jasmine && npm run test-es6 postinstall rimraf ./node_modules/canvas available via `npm run-script`: start-server cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 nodemon src/www.js start-server-no-dir cross-env TRILIUM_SAFE_MODE=1 TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 nodemon src/www.js qstart-server npm run qswitch-server && TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 nodemon src/www.js start-electron cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 TRILIUM_ENV=dev electron --inspect=5858 . start-electron-no-dir cross-env TRILIUM_SAFE_MODE=1 TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 electron --inspect=5858 . qstart-electron npm run qswitch-electron && TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 TRILIUM_ENV=dev electron --inspect=5858 . start-test-server npm run qswitch-server; rm -rf ./data-test; cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data-test TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 TRILIUM_ENV=dev TRILIUM_PORT=9999 node src/www.js switch-server rm -rf ./node_modules/better-sqlite3 && npm install switch-electron ./node_modules/.bin/electron-rebuild qswitch-server rm -rf ./node_modules/better-sqlite3/bin ; mkdir -p ./node_modules/better-sqlite3/build ; cp ./bin/better-sqlite3/linux-server-better_sqlite3.node ./node_modules/better-sqlite3/build/better_sqlite3.node qswitch-electron rm -rf ./node_modules/better-sqlite3/bin ; mkdir -p ./node_modules/better-sqlite3/build ; cp ./bin/better-sqlite3/linux-desktop-better_sqlite3.node ./node_modules/better-sqlite3/build/better_sqlite3.node build-backend-docs rm -rf ./docs/backend_api && ./node_modules/.bin/jsdoc -c jsdoc-conf.json -d ./docs/backend_api src/becca/entities/*.js src/services/backend_script_api.js src/services/sql.js build-frontend-docs rm -rf ./docs/frontend_api && ./node_modules/.bin/jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js build-docs npm run build-backend-docs && npm run build-frontend-docs webpack webpack -c webpack.config.js test-jasmine TRILIUM_DATA_DIR=~/trilium/data-test jasmine test-es6 node -r esm spec-es6/attribute_parser.spec.js debug-node cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 nodemon --inspect src/www.js debug-chrome cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 nodemon --inspect-brk src/www.js options for node debugging
Trilium Notes
Trilium is in maintenance mode - see details in https://github.com/zadam/trilium/issues/4620
Preliminary disccusions on the successor organization are taking place in Trilium Next discussions.
English | Chinese | Russian | Japanese | Italian
Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases.
See screenshots for quick overview:
Ukraine is currently defending itself from Russian aggression, please consider donating to Ukrainian Army or humanitarian charities.
🎁 Features
- Notes can be arranged into arbitrarily deep tree. Single note can be placed into multiple places in the tree (see cloning)
- Rich WYSIWYG note editing including e.g. tables, images and math with markdown autoformat
- Support for editing notes with source code, including syntax highlighting
- Fast and easy navigation between notes, full text search and note hoisting
- Seamless note versioning
- Note attributes can be used for note organization, querying and advanced scripting
- Synchronization with self-hosted sync server
- Sharing (publishing) notes to public internet
- Strong note encryption with per-note granularity
- Sketching diagrams with built-in Excalidraw (note type "canvas")
- Relation maps and link maps for visualizing notes and their relations
- Scripting - see Advanced showcases
- REST API for automation
- Scales well in both usability and performance upwards of 100 000 notes
- Touch optimized mobile frontend for smartphones and tablets
- Night theme
- Evernote and Markdown import & export
- Web Clipper for easy saving of web content
Check out awesome-trilium for 3rd party themes, scripts, plugins and more.
🏗 Builds
Trilium is provided as either desktop application (Linux and Windows) or web application hosted on your server (Linux). Mac OS desktop build is available, but it is unsupported.
- If you want to use Trilium on the desktop, download binary release for your platform from latest release, unzip the package and run
trilium
executable. - If you want to install Trilium on server, follow this page.
- Currently only recent Chrome and Firefox are supported (tested) browsers.
Trilium is also provided as a Flatpak:
📝 Documentation
See wiki for complete list of documentation pages.
You can also read Patterns of personal knowledge base to get some inspiration on how you might use Trilium.
💻 Contribute
Use a browser based dev environment
Or clone locally and run
npm install
npm run start-server
📢 Shoutouts
- CKEditor 5 - best WYSIWYG editor on the market, very interactive and listening team
- FancyTree - very feature rich tree library without real competition. Trilium Notes would not be the same without it.
- CodeMirror - code editor with support for huge amount of languages
- jsPlumb - visual connectivity library without competition. Used in relation maps and link maps
🤝 Support
You can support Trilium using GitHub Sponsors, PayPal or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).
🔑 License
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.