TagSpaces is a free, non-locking, open source application for organizing and managing your local files with the help of tags.
It features note taking and some to-do app capabilities.
The application is available for Windows, Linux, Mac OS and Android.
We provide a web clipper extension for Firefox and Chrome for easy collecting of online content as local files.
TagSpaces is an open-source application designed for organizing and managing local files with tags. It allows users to efficiently categorize, search, and retrieve files while maintaining complete control over their data.
Key Features:
Note Taking & To-Do Management: Create and edit notes in multiple formats, including TXT, Markdown, and HTML, with support for task lists.
Cross-platform Compatibility: Available on Windows, Linux, macOS, and Android, ensuring seamless file management across devices.
Web Clipper Extension: Capture online content directly as local files using the browser extension for Firefox, Chrome, and Edge.
Offline-first Design: Runs entirely offline with no reliance on internet or cloud services, prioritizing privacy and data control.
Tagging System: Organize files by adding tags to filenames or using sidecar files for metadata storage.
Audience & Benefit:
Ideal for individuals and teams who prioritize privacy and seek a flexible tool for managing digital content. TagSpaces empowers users to stay organized without vendor lock-in, ensuring full ownership of their data.
Installable via winget on Windows, TagSpaces provides an intuitive and privacy-focused solution for file management, note taking, and content organization.
README
TagSpaces
TagSpaces is a free and open-source platform for organizing, tagging, and managing your local files. It runs completely offline, with no need for cloud services, internet connection, or vendor lock-in. Available for Windows, Linux, and macOS, it also includes a browser extension (Web Clipper) for Firefox, Edge, and Chrome to capture online content as local files.
src/
renderer/ # Core application logic
main/ # Electron main process
locales/ # Language translation files
node_modules/ # TagSpaces extension modules
cordova/ # Deprecated Android build
dll/ # Live reload support for development
docker/ # Docker container setup
internals/ # Flow and ESLint configurations
resources/ # Images and build resources
scripts/ # NPM task-related scripts
test/ # Unit and E2E tests
web/ # Assets for web version
git clone https://github.com/tagspaces/tagspaces.git
cd tagspaces
git checkout develop # or 'master' for stable release
npm install
Set Up Local Web Service
Create a .env file in release/app/ with a custom key to avoid conflicts:
The desktop version of the application uses a web service which is running locally as a separate process. The web service is responsible for the search index creation and the generation of the thumbnails for most of the images formats. A key is required in order for the main application to communicate with the web server. It should be generated from webpack script in the .env file located in release/app folder. This is an example for an .env file.
KEY=a_custom_key
> Having a custom key, ensures that another instance of TagSpaces will not communicate with the web service of the initial instance, since it is always running on the same port.
Build & Start
npm run build
npm run start
Start in Development Mode
npm run dev
This will start a development server in background, which watches for changes in background and refreshes the application automatically once you have done some changes in the source code.
π§ͺ Testing
Run unit and integration tests:
npm run test-unit
npm run test-playwright
npm run test-playwright-web
π» Packaging the Desktop App
Build native apps for each platform:
npm run package-win
npm run package-linux
npm run package-mac
npm run package-mac-arm64
The commands will create packages for Windows, Linux, Mac OS and Mac OS with the M1 processor respectively.
> β οΈ Run npm run build before packaging.
π± Android Build (Deprecated)
npm run version-meta
npm run prepare-cordova
npm run package-android
π Web Version
Start the web version locally:
npm run run-web
π Extend with Custom Viewers & Editors
TagSpaces supports extension modules for opening and editing different file types. Learn more on our Extensions Page.
TagSpaces is dual-licensed under the AGPL (GNU Affero General Public License) v3 for open-source projects and a commercial license for vendors or resellers. Contact us if you're interested in using TagSpaces under different terms.