1
0
Fork
You've already forked app
0
forked from InkyCap/app
InkyCap Notes is a personal knowledge management (PKM) tool that uses Typst markup. It focuses on academics, writers, and anyone wanting both conventional PKM functionality and advanced features for publishing, knowledge discovery, recall, and ideation, as well as agenda-keeping, project creation, and more.
  • TypeScript 49%
  • Rust 41.4%
  • CSS 6.3%
  • JavaScript 1.3%
  • Typst 0.8%
  • Other 1.2%
2026年06月10日 12:55:42 -04:00
.claude chore(docs): add documentation-generation workflow scripts 2026年06月06日 22:22:38 -04:00
.forgejo fix(release): don't require a signing key for unsigned Linux builds 2026年06月09日 18:36:20 -04:00
.githooks build: enforce cargo fmt via local hook, CI workflow, blame-ignore 2026年06月03日 14:25:57 -04:00
design-assets icon fixes, deb 2026年06月08日 21:40:26 -04:00
documentation docs: record v26.6.2 first public release 2026年06月09日 18:53:08 -04:00
flatpak new documentation for developers 2026年06月08日 23:01:54 -04:00
inkycap-notebox fixed highlighting text colour, dark mode 2026年06月08日 00:20:32 -04:00
patches refactor: split SettingsPanel into per-tab modules; fix nanoid build 2026年06月03日 17:18:58 -04:00
scripts fix(release): don't require a signing key for unsigned Linux builds 2026年06月09日 18:36:20 -04:00
src fix(windows): load visual-editor images via blob URLs, not the asset protocol 2026年06月09日 11:54:26 -04:00
src-tauri release: prep v26.6.2 (first stable) — drop AppImage, wire updater key 2026年06月09日 17:59:33 -04:00
.dockerignore packaging work and icons improvements for .deb 2026年06月08日 18:34:24 -04:00
.git-blame-ignore-revs build: enforce cargo fmt via local hook, CI workflow, blame-ignore 2026年06月03日 14:25:57 -04:00
.gitignore fix(release): don't require a signing key for unsigned Linux builds 2026年06月09日 18:36:20 -04:00
CHANGELOG.md docs: record v26.6.2 first public release 2026年06月09日 18:53:08 -04:00
CLAUDE.md feat: in-app updates + release pipeline; version scheme; Sources tab; move to InkyCap/app 2026年06月04日 14:35:20 -04:00
CODE_OF_CONDUCT.md docs: add Code of Conduct, changelog, and issue/PR templates 2026年06月08日 23:53:06 -04:00
CONTRIBUTING.md docs: add Code of Conduct, changelog, and issue/PR templates 2026年06月08日 23:53:06 -04:00
Dockerfile.build packaging work and icons improvements for .deb 2026年06月08日 18:34:24 -04:00
index.html distraction-free mode and some minor UI adjustments 2026年05月28日 01:38:29 -04:00
LICENSE chore: license InkyCap under LiLiQ-P 1.1 (English + French) 2026年06月04日 14:35:01 -04:00
LICENSE.fr chore: license InkyCap under LiLiQ-P 1.1 (English + French) 2026年06月04日 14:35:01 -04:00
package-lock.json release: prep v26.6.2 (first stable) — drop AppImage, wire updater key 2026年06月09日 17:59:33 -04:00
package.json release: prep v26.6.2 (first stable) — drop AppImage, wire updater key 2026年06月09日 17:59:33 -04:00
README.md minor update to readme.md 2026年06月10日 12:55:42 -04:00
rust-toolchain.toml packaging work and icons improvements for .deb 2026年06月08日 18:34:24 -04:00
SECURITY.md new documentation for developers 2026年06月08日 23:01:54 -04:00
tsconfig.json collection export as merged book PDF with user customization settings 2026年05月07日 18:51:02 -04:00
vite.config.ts Make the full test suite green: fix book-export tests + jsdom flake 2026年06月01日 14:58:29 -04:00

InkyCap

InkyCap

A personal knowledge management (PKM) application for writing, academic, and research note-taking. InkyCap builds upon Typst markup, principles of reciprocal linking, portable metadata, and long-term, local-first ownership of your work. More at https://inkycap.org


InkyCap is a new project from a person that cares about knowledge management. In spite of making my best efforts to continue it, I am not a professional developer and there are no guarantees here. Human developers: if you are interested in this project, especially if you have expertise in the open technologies underpinning it, please contact me, I would be happy to explore collaboration!.

InkyCap is a desktop knowledge-management and writing tool whose documents are plain text Typst files. It provides organizational flexibility, discoverability, and advanced recall functionality for notes. Notes are not trapped in a proprietary format; they are real Typst source, which compiles anywhere, and their metadata is queryable with the typst command-line tool, with or without InkyCap. InkyCap is currently available in English / Français.

Why InkyCap

  • Reciprocal note-linking. Wikilinks and automatic backlinks are the centre of the navigation model, not an add-on.
  • Portable, typed metadata. Note properties are typed arguments to a Typst #note(...) call, queryable by any Typst tool through the bundled inkycap-notebox package. Your structure travels with your files.
  • Three editor modes. Source (full Typst), visual (write-what-you-mean convenience over live Typst markup), and reading (the rendered document).
  • First-class bibliography. Native Typst BibTeX/Hayagriva citations and a dedicated References sidebar, with Zotero integration.
  • The Mycelial View. A graph that surfaces emergent concepts (recurring ideas you have not yet named a page for) and latent links (notes you mention but never linked), using corpus statistics.
  • Local-first and private. No telemetry, no analytics, no remote logging, no built-in gen AI consumption. Your notebox never leaves your device unless you opt into sync or manually share your files.
  • Collaboration when you want it. Optional whole-notebox git sync with a calm, merge-first model that does not block writing on a conflict.
  • Open formats in and out. Import from regular Markdown or an Obsidian-flavoured vault; export to PDF (including PDF/A and PDF/UA), HTML, Markdown, and ODT/DOCX/LaTeX via Pandoc.

Status

InkyCap is new (June 2026) and in active development. The feature set is broad and fairly stable but expect some rough edges. It is not a commercial project, rather a labour-of-love. Issues and contributions are welcome, especially from human developers with expertise in the open technologies underpinning InkyCap.

Mostly developed on a Linux system (Ubuntu), it has also been partially tested and seems to work reasonably well on Windows. In theory, it should work on a Mac but I have not tried.

Installing

Pre-built packages are published on the releases page. Pick the artifact for your platform:

  • Linux: .deb / .rpm / Flatpak (download and install from the Flatpak file, not currently available on FlatHub).
  • Windows: the *-setup.exe installer.
  • macOS: the .app bundle. (macOS builds would be nice to include but I don't have access to a Mac so need help from someone else. Feel free to build from the source yourself).

The app has an in-app updater (Settings, Overview). See documentation/developer/releasing.md for how releases and the updater work.

Building from source

Prerequisites

  • Rust (the version is pinned in rust-toolchain.toml; rustup reads it automatically).
  • Node.js 20+ and npm.
  • Tauri v2 system dependencies for your platform. Follow the Tauri prerequisites guide (on Linux this is WebKitGTK and related -dev packages).

Setup

git clone https://codeberg.org/InkyCap/app.git inkycap
cd inkycap
npm install # frontend deps (also runs patch-package)
./scripts/download-tinymist.sh # fetch the Tinymist LSP sidecar (verified by pinned SHA-256)

The Tinymist sidecar powers code-mode autocomplete and is bundled as a Tauri externalBin. It is downloaded into src-tauri/binaries/ (gitignored), so this step is required before the first build.

Run and test

npm run tauri:dev # launch the app with hot reload
 # (plain `npm run tauri dev` works too; tauri:dev unsets a
 # few VS Code/snap env vars that confuse WebKitGTK on Linux)
cargo test --manifest-path src-tauri/Cargo.toml # Rust unit + integration tests
npm test # Vitest frontend tests
npm run i18n:check # locale key/placeholder parity

Enable the formatting pre-commit hook once per clone:

git config core.hooksPath .githooks

Repository layout

inkycap/
├── src/ Frontend: Solid.js UI + CodeMirror 6 editor
├── src-tauri/ Backend: Rust + Tauri v2
├── inkycap-notebox/ The Typst package bundled into every notebox (lib.typ)
├── scripts/ Build/setup scripts (Tinymist, icons, versioning, i18n)
├── documentation/ Developer and user documentation
├── CLAUDE.md Engineering principles and normative coding standards
└── .forgejo/workflows/ CI and release pipelines (Codeberg/Forgejo Actions)

Documentation

Contributing

Contributions are welcome! Please read CONTRIBUTING.md and the Code of Conduct. Translations have their own short guide: CONTRIBUTING-translations.md.

Technology

Rust + Tauri v2 (backend), TypeScript + Solid.js + CodeMirror 6 (frontend), the typst crate for compilation and typst query for metadata, and a Tinymist sidecar for language-server features.

Security and privacy

InkyCap is local-first and does not transmit information about your use, setup, or your data itself to me (the sole person working on it at the moment). I am aiming to maintain and improve InkyCap on a best-effort, voluntary basis. To report a vulnerability, see SECURITY.md.

Licence

InkyCap is released under the Québec Free and Open-Source Licence, Permissive (LiLiQ-P 1.1). See LICENSE (English) and LICENSE.fr (French). This is similar to many other open source licences and is approved by both the Open Source Initiative and Free Software Foundation. It essentially gives you rights to see, copy, modify, redistribute the code.