TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
Local-first, vault-isolated, AI-native knowledge workspace. Markdown, whiteboards, ER diagrams & mind maps in one editor, with Claude Code / Codex / Gemini CLI agents wired in. Built with Tauri 2 + React.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗English | 简体中文 | 日本語 | Français | Deutsch | Español
One app, all your context. Isolate each set of data in a Vault, fit markdown, whiteboards, ER diagrams, and mind maps into one editor, and wire AI agents straight into your workflow — everything stays on your own devices.
The app is not code-signed; the OS will block it on first launch. Dismiss as follows:
xattr -cr /Applications/Folyn.app
Then reopen from Launchpad.Open a separate vault for each project or note set. Each vault is its own data space — notes, attachments, and extension configs are stored independently; switching vaults is like switching a whole workspace. Data stays on the local device; no cloud account required.
View Office documents, audio/video, archives, e-books, presentations and drawings without leaving Folyn — no extra software required.
No vendor lock-in — mainstream CLI agents adapted straight into the editor:
Configure CLI paths in Settings → AI. Switch freely across model vendors by task or preference.
Resident on desktop, pushes schedule reminders and task changes to the foreground; click to bring up the LLM chat window and ask anytime without breaking your flow.
External apps (scripts, cron, CI) can trigger pet notifications via a local HTTP API — default 127.0.0.1:17382, POST /pet/action pushes a bubble, supporting target navigation, launch to open a URL/app, and actions for bubble buttons. See docs/pet-notify-api.en.md.
Open a terminal panel inside the Folyn workspace, side-by-side with the editor, file paths auto-synced. Claude Code / Codex CLI / other agents can modify the current document directly; AI edits appear in the editor immediately. Command output can be pasted back at the cursor — "edit → invoke → paste back" collapses into one pipeline.
Collector extensions from the extension store record what happens on your machine — frontmost window changes, file create/modify/delete, GitHub commits/PRs/issues, and events pushed from external tools via a local webhook — into a database stored inside the vault. Nothing leaves your device.
The Activity tab turns raw events into a day timeline and an entity relations graph (people, meetings, repositories, documents, tasks). Daily, weekly, and monthly reports are written as markdown notes in the vault; with a custom prompt the report body is generated by the LLM instead of a fixed template, and the desktop pet can notify you when a report is ready.
Each collector can be enabled/disabled separately with its own polling interval — or write your own with the extension SDK.
Microkernel + extension SDK architecture; the core stays lean and features load on demand:
Third-party extension extensions supported; see docs/extensions.html.
Speech is transcribed to text in real time and auto-polished — removing filler and pauses — then pasted at the cursor. Currently macOS only; Windows not yet supported.
| Layer | Technology |
|---|---|
| Shell | Tauri 2 (Rust) |
| Frontend | React 18, Vite 6, TypeScript |
| Editor | CodeMirror 6 |
| Markdown | unified / remark / rehype pipeline |
| State | Zustand 5 |
| Styling | Tailwind CSS 3 |
| Monorepo | pnpm workspaces |
folyn/
├── apps/
│ └── desktop/ # Tauri desktop app
│ ├── src/ # React frontend
│ │ ├── components/ # shell, editor, AI, sidebar, file-types, ...
│ │ ├── editor/ # CodeMirror extensions
│ │ ├── hooks/ # React hooks
│ │ ├── store/ # Zustand stores
│ │ └── utils/ # Utility modules
│ └── src-tauri/ # Rust backend (Tauri commands)
├── packages/
│ ├── cli-adapter/ # AI CLI adapter abstraction (Claude / Codex / Gemini / Opencode / Pi / Qoder)
│ ├── container-extensions/ # Markdown container directive extensions
│ ├── extension-host/ # Extension host runtime
│ ├── extension-sdk/ # Extension SDK for third-party authors
│ ├── create-folyn-extension/ # Extension scaffolding CLI
│ └── vault-provider/ # Vault storage provider abstraction
├── package.json
├── pnpm-workspace.yaml
└── tsconfig.base.json
cli-adapter package — Implement the adapter interface to plug in a new CLI Agentcontainer-extensions package — Custom :::directive container extensions, registered to the slash menuvault-provider package — Custom storage backends (beyond local / GitHub / WebDAV / S3)extension-host + extension-sdk — Third-party extensions register capabilities via the SDK (published on npm as folyn-extension-sdk); the microkernel loads them on demandcreate-folyn-extension — Scaffolding CLI to quickly start a new extensionapps/desktop/src/components/file-types/ to extend file typesSee docs/extensions.html for details.
Design diagrams for the extension system and the activity collection pipeline (editable sources live in docs/assets/diagrams/):
Microkernel + extensions — the extension host runtime mediates between feature extensions and the Rust microkernel's capability services; third-party extensions enter through the sandbox isolation layer.
Trusted vs sandbox extensions — trusted packages are TOFU-pinned and run in the host main realm; sandbox packages run inside an opaque-origin iframe with no DOM or Tauri access.
postMessage RPC protocol — request/response, host push, and reverse command invocation across the host/iframe boundary, with per-call permission gating.
Activity collectors — the poll/webhook runtime drives the collect → redact → ingest → cursor-advance loop; the cursor only moves after a successful push.
Activity database schema — per-vault SQLite tables for events, entities, relations, collector cursors, and run history.
SDK surface — the type contracts published as folyn-extension-sdk: the Extension entry, the ExtensionApi capability boundary (vault, editor, AI, network, terminal, export, commands, events, storage, env, registries), contributes declaration points, and dev tools.
# Install dependencies
pnpm install
# Start development (frontend + Tauri dev window)
pnpm dev
# Build the frontend only
pnpm build
# Build the desktop app (platform-specific installer)
pnpm build:app
MIT