TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
An online workspace for small dev teams: Markdown notes, tasks, projects and meetings with live sync. The AI runs on your own computer with Ollama, so prompts never reach our servers. Data hosted in C
翻譯準備中
生產力TypeScript · PLpgSQLGitHub @SamuelRosengarten上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A private, single-user second brain for notes, tasks, projects, and meetings. A local AI (Ollama) suggests completed tasks from your own GitHub commits and pull requests, and you approve each one.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Modern productivity tools have backed knowledge workers into a corner: your thoughts, journals, plans, and confidential projects are stored in remote cloud databases, monetized through subscriptions, held hostage behind proprietary sync protocols, and ingested to train third-party AI models. When the server goes down, your network drops, or a SaaS vendor pivots, your second brain vanishes.
Synapse OS is the antidote.
Synapse OS is an open, private, local-first personal knowledge operating system designed to manage your notes, tasks, projects, meetings, and ideas with uncompromising performance and complete autonomy.
.md) files that remain readable in any text editor for the next 50 years. Metadata and relationships are indexed in an open SQLite database you can inspect with standard SQL tools.127.0.0.1, keeping your thoughts, questions, and embeddings strictly confined to your hardware.Engage in deep, contextual conversations with your knowledge base without transmitting a single byte over the Internet.
Your ideas should outlive any application.
[[Note Title]] syntax and explore your interconnected web of ideas through an interactive force-directed graph.Instantaneous recall across your entire repository.
better-sqlite3) with WAL (Write-Ahead Logging) enabled.Synapse OS is architected for extreme responsiveness, simplicity, and rock-solid reliability. We deliberately favor plain SQL, explicit data flows, and minimal abstractions over heavy ORMs.
┌────────────────────────────────────────────────────────┐
│ Next.js UI │
│ (React 19, Server Components, Tailwind CSS) │
└───────────────┬────────────────────────┬───────────────┘
│ │
Server Actions / APIs Local REST / Chat
│ │
▼ ▼
┌──────────────────────────────┐ ┌──────────────┐
│ Core Lib Engine │ │ Ollama LLM │
│ (TypeScript + Zod) │ │ (127.0.0.1) │
└───────┬──────────────┬───────┘ └──────────────┘
│ │
▼ ▼
┌───────────────┐ ┌───────────────┐
│ SQLite (WAL) │ │ Markdown │
│ better-sqlite3│ │ Vault Folder │
└───────────────┘ └───────────────┘
| Layer | Technology | Rationale |
|---|---|---|
| Framework | Next.js (App Router, React 19) | Modern server components, instantaneous Server Actions, and strict zero-bundle-overhead rendering. |
| Language | TypeScript | End-to-end type safety across domain logic, database records, and UI components. |
| Styling | Tailwind CSS | Cohesive dark-neutral design system crafted for deep focus and long reading sessions. |
| Database | SQLite via better-sqlite3 | Synchronous, ultra-low-latency embedded database in WAL mode with plain SQL queries—no ORM overhead. |
| Schema Migrations | Plain SQL Migrations (migrations/*.sql) | Numbered, transactional, append-only migration pipeline executed safely on boot. |
| Local AI | Ollama | Standardized REST API for on-device, GPU-accelerated open-weights model inference. |
| Validation | Zod | Strict runtime validation for forms, API endpoints, and configuration schemas. |
| Testing |
Synapse is one Next.js app for synapse-os.ca: the public website (src/app/(public)), login (src/app/(auth)) and the app (src/app/(app)). In production the app and login run on app.synapse-os.ca (set by NEXT_PUBLIC_APP_URL); src/proxy.ts maps app.synapse-os.ca/notes to the /app/notes route. Without that variable (local development, previews) the app stays under /app. To try the subdomain locally, set NEXT_PUBLIC_APP_URL=http://app.localhost:3000 and NEXT_PUBLIC_SITE_URL=http://localhost:3000, then open http://app.localhost:3000. Data lives in Supabase; the AI runs in each user's own Ollama, called from the browser.
ollama pull qwen3:8bgit clone https://github.com/SamuelRosengarten/Synapse-OS.git
cd Synapse-OS
npm install
npm run db:start # local Supabase in Docker (first run downloads a few GB)
npx supabase status -o env
Copy .env.example to .env.local and fill in NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY and SUPABASE_SECRET_KEY from the API_URL, PUBLISHABLE_KEY and SECRET_KEY lines of supabase status.
Public sign-up is off. npm run db:reset loads two local test users from supabase/seed.sql: [email protected] and [email protected], both with the password dev-password. They exist only in the local database. Emails sent by the local stack (password resets) appear at http://127.0.0.1:54324.
SYNAPSE_LEGACY=1 keeps the not-yet-ported SQLite pages (meetings, ...) under /app on your machine. Leave it out to see exactly what Vercel serves.
Docker Desktop must be running, and .env.local must point at the local stack (http://127.0.0.1:54321; the script refuses anything else).
git switch S2-8-notes-ui # the branch to try
npm run db:start # once per boot
npm run dev:fresh # resets the LOCAL database (applies the branch's migrations), then starts the app
Open http://127.0.0.1:3000/login and sign in as [email protected] / dev-password. Use a private window with [email protected] to check that two users do not see each other's data.
npm run dev:app starts the app without resetting the database. Both show the Supabase pages only, like the live site. Add -- --legacy to also see the old SQLite pages. npm run dev:fresh erases the local data each time, never the cloud project's.
npm run dev # http://127.0.0.1:3000
npm test # unit tests (no database needed)
npm run test:int # integration tests against the local Supabase (db:start first)
npm run db:test # pgTAP tests: row-level security, triggers, beta requests
npm run typecheck
npm run build
| Variable | Production | Preview | Notes |
|---|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | https://<project-ref>.supabase.co | same | Supabase > Project Settings > API Keys |
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | sb_publishable_... | same | Safe in the browser; RLS applies |
SUPABASE_SECRET_KEY | sb_secret_... | same | Server only. Never add a NEXT_PUBLIC_ prefix. Mark it "Sensitive" |
NEXT_PUBLIC_SITE_URL | https://synapse-os.ca | (leave unset) | Previews use their own VERCEL_URL |
NEXT_PUBLIC_APP_URL | https://app.synapse-os.ca | (leave unset) | The app's own host; previews keep the app under /app. Add the domain in Vercel > Project Settings > Domains |
BETA_IP_SALT | a long random string | same | Hashes visitor IPs for the beta form rate limit |
Do not set SYNAPSE_LEGACY on Vercel: SQLite cannot run there, and without it the unported pages answer 404.
https://synapse-os.cahttps://app.synapse-os.ca/** (production: login and email links run on the app's host)https://synapse-os.ca/**https://*-<your-vercel-team>.vercel.app/** (preview deployments)supabase/templates/invite.html ("Invite user") and supabase/templates/recovery.html ("Reset password"). Their links go to /auth/confirm, which the app needs to start the session on the server.npx supabase login, npx supabase link --project-ref <project-ref>, then npx supabase db push.beta_requests.Each user's Ollama must allow the site. Set the environment variable OLLAMA_ORIGINS=https://app.synapse-os.ca and restart Ollama. Chrome and Edge then ask once to let the site reach apps on this device. Safari does not allow it. The Local AI page (app.synapse-os.ca/ai) checks all of this and explains what to fix.
Synapse OS is designed to fit naturally into your daily thinking and working routine. Here is the recommended workflow to get the most out of it:
{SYNAPSE_DATA_DIR}/notes as plain .md files.Synapse-OS/
├── migrations/ # Append-only, numbered SQL migrations
├── public/ # Static branding and assets
├── src/
│ ├── app/ # Next.js App Router (pages, layouts, and server actions)
│ │ ├── ask/ # Local AI Chat interface
│ │ ├── notes/ # Markdown notes & vault view
│ │ ├── tasks/ # Task manager & dependency graph
│ │ ├── projects/ # Project dashboards
│ │ ├── search/ # Full-text SQLite search
│ │ └── settings/ # Local AI & user preferences
│ └── lib/ # Core business logic (plain SQL, pure functions)
│ ├── ai/ # Ollama client and prompt routines
│ ├── db.ts # SQLite database connection & WAL management
│ ├── migrate.ts # Transactional migration runner
│ ├── notes.ts # Note CRUD & frontmatter extraction
│ ├── reindex.ts # File-system vault scanner & reconciler
│ └── search.ts # Keyword & full-text search matching
└── tasks/ # Structured project milestones and roadmap
127.0.0.1. It does not listen on public interfaces unless explicitly configured behind a trusted reverse proxy (such as Tailscale).Synapse OS is open-source software built for those who value privacy, control, and craft.
| 400+ lightning-fast in-memory database and domain unit tests. |