TidGi is an privatcy-in-mind, automated, auto-git-backup, freely-deployed Tiddlywiki knowledge management Desktop note app, with local REST API. 「 太记 」是一个基于「 太微 TiddlyWiki 」的知识管理桌面应用,能保护隐私内容、高级自动化、自动Git云备份、部署为博客,且可通过RESTAPI与Anki等应用连接。(迭代开发中欢迎试用,开发进度见下方链接)(Under active development, see website below for details)
Find a file
lin onetwo a712b2ff51
Fix/misc bug (#679)
* Create ErrorDuringRelease.md

* Enforce test timeouts and add root tiddler scenario

Set global and step timeouts to 5s (local) and 10s (CI) across cucumber config and step definitions to standardize test execution times. Add a new scenario to verify root tiddler configuration and content loading after restart. Enhance start-e2e-app script to accept or auto-detect test scenario names and pass them to the app.

* Improve error handling for window and view initialization

Enhanced error reporting and handling when browser windows are not ready or fail to register in windowService. Updated focus logic to dynamically retrieve the current browser window, improving reliability during workspace hibernation and wake-up scenarios.

* Remove AfterAll hook and add --exit to e2e tests

Eliminates the AfterAll hook that forced process exit in cleanup.ts to prevent hanging after tests. Adds the --exit flag to the cucumber-js command in the e2e test script to ensure proper test process termination.

* Add step to restart workspace in wiki tests

Introduces a new step definition 'I restart workspace {string}' to programmatically restart a wiki workspace during tests. Updates the root tiddler scenario to use this step for verifying lazy-load behavior after workspace restart, improving test reliability and clarity.

* Centralize and standardize E2E test timeouts

Extracted timeout values into features/supports/timeouts.ts and replaced hardcoded timeouts in step definitions with named constants. This ensures consistent timeout handling across local and CI environments, reduces duplication, and clarifies intent. Also improved workspace update logic to check watch-fs state before restart and cleaned up related log marker handling.

* Improve i18n coverage and add Windows installer log access

Expanded and unified i18n keys for error messages and UI labels across multiple languages. Refactored code to remove hardcoded default values from translation calls. Added a Developer Tools option to open the Windows installer log folder (SquirrelTemp) when running on Windows. Introduced a placeholder file to preserve dynamic i18n keys for error messages.

* Initialize Tidgi mini window before workspace views

Moved the initialization of the Tidgi mini window to occur before initializing all workspace views in main.ts to ensure correct view creation. Added a clarifying comment in DeveloperTools.tsx regarding the SquirrelSetup.log path.

* Refactor Tidgi mini window initialization logic

Tidgi mini window creation now only creates the window; view creation is deferred to initializeAllWorkspaceView. Updated related comments and logging for clarity. Also fixed formatting in French translations and improved documentation for error handling during release.

* Add model feature chips to model selection UI

Introduces a ModelFeatureChip component to visually display model features in the model selector and new model dialog. Updates defaultProviders to include new models with features, and enhances the UI to show feature chips for each model, improving clarity for users selecting models.

* Add image attachment support to chat messages

This update enables users to attach image files to chat messages, including UI changes for file selection and preview, backend persistence of attachments, and prompt concatenation logic to include images in AI requests. It also adds error handling and i18n for model vision support, updates message rendering to display images, and improves logging and API validation for vision-capable models.

* Improve streaming status handling for agent messages

Adds a failsafe to clear streaming status when an agent reaches a terminal state and refines logic to prevent marking completed messages as streaming. Also updates message stream completion in AgentInstanceService to ensure proper cleanup and delivery of IPC messages. Includes new feature tests for message streaming status and image upload scenarios.

* Add cross-window sync feature and test steps

Introduces a new feature file for cross-window synchronization scenarios. Adds step definitions to open workspaces in new windows and execute TiddlyWiki code programmatically. Removes obsolete wiki.ts.backup file and updates agentActions for related actions.

* feat(sync): fix cross-window synchronization via SSE

- Remove overly aggressive echo prevention in backend that blocked all SSE updates
- Backend now forwards all wiki change events to subscribers
- Add comprehensive cross-window sync tests verifying bidirectional updates
- Test main->new window sync and new->main window sync scenarios
- Version bump to 0.13.0-prerelease19

* Improve file attachment handling in chat and tests

Refactors file input handling in chat tests to use Playwright's setInputFiles, updates message sending types to support optional file attachments, and enhances file metadata persistence and logging. Adjusts test expectations and UI logic to better handle and display image attachments, and clarifies combobox value assertions in ExternalAPI tests.

* Add file input validation and improve i18n messages

Added image type and size validation (10MB limit) to file input in InputContainer. Improved image preview logic. Updated French, Japanese, and Russian translations with new error messages for missing/default model and vision support. Enhanced type safety in promptConcatWithImage tests and messagePersistence logging. Fixed race condition in ExternalAPIService lazy initialization. Updated CommitDetailsPanel to use common cancel translation key.

* review

* Update browserView.ts

* Update timeouts.ts

* Update cucumber.config.js

* Update cucumber.config.js

* Move global timeout config to separate module

Extracted global timeout setup from cucumber.config.js to features/supports/timeout-config.ts using setDefaultTimeout. This ensures the timeout is set via code rather than config, improving clarity and maintainability.

* Update newAgent.feature
2026-01-26 02:43:27 +08:00
.github Fix/misc bug (#677) 2026-01-20 11:11:28 +08:00
.vscode Fix/sync sub wiki (#672) 2025-12-17 22:08:26 +08:00
build-resources Feat/mini window (#642) 2025-10-21 20:07:04 +08:00
docs Fix/misc bug (#679) 2026-01-26 02:43:27 +08:00
features Fix/misc bug (#679) 2026-01-26 02:43:27 +08:00
localization Fix/misc bug (#679) 2026-01-26 02:43:27 +08:00
patches Feat/Native AI Agent (#640) 2025-10-10 17:16:56 +08:00
scripts Fix/misc bug (#679) 2026-01-26 02:43:27 +08:00
src Fix/misc bug (#679) 2026-01-26 02:43:27 +08:00
template Fix/misc bug (#677) 2026-01-20 11:11:28 +08:00
.editorconfig refactor: initial transform to ts 2020-12-19 22:33:59 +08:00
.env feat: add SKIP_PREFLIGHT_CHECK=true to skip silly react check 2020-08-22 19:36:24 +08:00
.gitattributes Create .gitattributes 2021-07-08 23:23:59 +08:00
.gitignore Fix/misc bug (#677) 2026-01-20 11:11:28 +08:00
.gitmodules refactor: make template wiki a git submodule 2021-09-09 00:16:43 +08:00
.npmrc Feat/Native AI Agent (#640) 2025-10-10 17:16:56 +08:00
.nvmrc chore: upgrade deps 2024-11-24 16:59:21 +08:00
.pnpmfile.cjs Feat/Native AI Agent (#640) 2025-10-10 17:16:56 +08:00
dprint.json fix: dprint conflict 2023-05-19 11:06:29 +08:00
eslint.config.mjs Feat/subwiki external attachment (#671) 2025-12-16 17:01:09 +08:00
forge.config.ts Fix/start error (#654) 2025-11-20 17:17:11 +08:00
forge.env.d.ts Feat/Native AI Agent (#640) 2025-10-10 17:16:56 +08:00
index.html Feat/Native AI Agent (#640) 2025-10-10 17:16:56 +08:00
LICENSE Initial 2019-08-30 11:41:23 +07:00
package.json Fix/misc bug (#679) 2026-01-26 02:43:27 +08:00
pnpm-lock.yaml Fix/edit agent and several bugs (#670) 2025-12-15 17:33:59 +08:00
PrivacyPolicy.md refactor: rename tiddlygit to tidgi in code 2021-12-18 13:16:26 +08:00
README.md Feat/Native AI Agent (#640) 2025-10-10 17:16:56 +08:00
reviewpad.yml feat: add reviewpad.yml file 2023-07-04 20:29:50 +08:00
tsconfig.json Feat/allow watch fs change on git sync 2025-10-31 02:00:40 +08:00
tsconfig.test.json Feat/Native AI Agent (#640) 2025-10-10 17:16:56 +08:00
vite.main.config.ts Feat/Native AI Agent (#640) 2025-10-10 17:16:56 +08:00
vite.preload.config.ts Feat/Native AI Agent (#640) 2025-10-10 17:16:56 +08:00
vite.renderer.config.ts Fix/edit agent and several bugs (#670) 2025-12-15 17:33:59 +08:00
vite.worker.config.ts Feat/Native AI Agent (#640) 2025-10-10 17:16:56 +08:00
vitest.config.ts Chore/upgrade (#646) 2025-10-23 23:42:06 +08:00

TidGi

Customizable personal knowledge-base with git as backup manager and blogging platform.

License: MPL 2.0 GitHub Actions Build Status Lin Onetwo! Power by tiddlywiki!


Pronounce: Same as Tai Chi /ˌtaɪ ˈtʃiː/

🇬🇧 English | 🇨🇳 简体中文

ShowCases And Demo

Demo

Screenshot

Screenshot of main-window

Load NodeJS Wiki
Screenshot of main-window
Create Local Wiki Clone Online Wiki
Screenshot of add-workspace Screenshot of clone-workspace
Translation, Preferences
Screenshot of preference
Interactive code
Screen recording of zx-script in tiddlywiki
Community Plugin Library
Screenshot of add-workspace
For mac users, since I haven't buy Apple developer key yet, so you have to entrust App to open it, click here to expand details.◀

First of all, you need to drag this App into Applications folder! Otherwise there will be an error.

Click "Cancel" ↓

step00001

step00002

step00003

Click "Open" ↓

step00004

Click "OK" ↓

step00005

No English posts yet...Please help sharing!

About TidGi-Desktop

TidGi is a cross-platform Note Taking & GTD & Fragment Knowledge Management desktop app powered by nodejs-TiddlyWiki, it ship with a lot of tiddlywiki plugins from the TiddlyWiki community.

You can call it TG-Note, it is totally free and you own all your data. Code by the people, build for the people.

It used to named TiddlyGit, means TiddlyWiki with easy Git backup, short for TidGi now.

Download

Packaging status

For Windows MacOS normal user

Download
GitHub Releases

For arch user

yay tidgi

For MacOS CLI user

brew install TidGi # Not tested

Mobile App

  • TidGi-Mobile is the official pair with TidGi-Desktop, developed by @linonetwo, fast for 100MB+ wiki.
  • See Tiddloid for Android App developed by @donmor. Good for smaller wiki, and you can have access to your HTML wiki.

You can switch between them, and sync data between them and TidGi at any time. All of them are local-first, open-sourced and compatible with TiddlyWiki ecosystem.

Data Privacy Protection

You can choose storage provider for your wiki workspace:

  1. "Github" as unlimited storage and gh-pages blogging platform.
  2. "Local" will create a local git repo for you, you can use GithubDesktop to sync manually.
  3. "Gitlab" and "Gitee" is on the way

Differences

Differences from TiddlyDesktop?

  1. NodeJS version of TiddlyWiki have seamless auto-save experience, which is taking the advantage of SyncAdaptor instead of Saver, TG have better support for NodeJS wiki
  2. Using NodeJS wiki, We can have separated tiddler files, which can be modified by hand, or by other programs (e.g. VSCode with VSCode-TW5-Syntax)
  3. Though TiddlyDesktop can also load wiki folder generated by nodejs-TiddlyWiki, TG can backup that folder to the Github easily
  4. With the Electron technology, we can use fs, git and many other nodejs things within TiddlyWiki, which greatly extend the hackability, which is the reason why I choose TiddlyWiki as my daily KM tool

Why Github?

Because Github is one of the best free civil level BaaS:

  1. Its storage is basically free, allow us to store unlimited images and PDF files, which can have permanent URIs for public download
  2. It has GraphQL API that allow us programmatically update our wiki
  3. It has free CI to automatically deploy our TiddlyWiki blog
  4. It provides unlimited repository, public and private, which enables us to store private content into our TiddlyWiki

Development

Read Dev doc for details.

Credits

The desktop app shell is based on https://github.com/atomery/singlebox and atomery/webcatalog, they provide lots of utils around website-generated-app, much powerful than generating app from website simply using Chrome. Also the independent developer @quanglam2807 behind these great tools helps me a lot when I develop TidGi.

Current Icon is download from iconsdb under Creative Commons Attribution-NoDerivs 3.0 , if you are a designer, please feel free to contribute your ICON if you have a better idea.

Stargazers over time

Please give a star if you like it!

Stargazers over time