Zen
Selfhosted notes app. Single golang binary, notes stored as markdown within SQLite, full-text search, very low resource usage
Install / Use
/learn @sheshbabu/ZenAbout this skill
Quality Score
0/100
Category
Development & EngineeringSupported Platforms
Claude Code
Cursor
README
<p align="center">
<img width="256" src="assets/android-chrome-512x512.png">
<h1 align="center">Zen</h1>
<p align="center">
<a href="https://zendemo.fly.dev">Live Demo</a> •
<a href="http://sheshbabu.com/zen/">Features</a> •
<a href="https://x.com/sheshbabu">Updates</a>
</p>
</p>
<p align="center"><img src="https://github.com/sheshbabu/zen/blob/master/docs/screenshot.png?raw=true"/></p>
Features
- Single Go binary or Docker Compose
- Low resource usage
- Standard Markdown files, local SQLite database
- Organize with flexible tags, not rigid folders
- Markdown features like tables, code blocks, task lists, highlights, and more
- Full-text search with BM25 ranking
- Import and export data with full portability
- Templates
- Pinned notes
- Archive and soft delete notes
- Minimal dependency footprint
- Automated backups (via Zen Backup)
Experimental Features
- Canvas for spatial organization of notes and images (stored as JSON Canvas)
- Semantic search for notes and images (via Zen Intelligence)
- Similar images (via Zen Intelligence)
- MCP for searching, listing and reading notes
Installation
Build from source
$ make build
Local Development
Run the application using default configuration
$ make dev
Run the application in watch mode
$ go install github.com/air-verse/air@latest
$ go install github.com/evanw/esbuild/cmd/esbuild@latest
$ make watch
Schema Migrations
- Create new migration file under
./migrations - Use the format
<version>_<title>.sql
Image Versioning
$ git tag x.y.z
$ git push origin x.y.z
Contributions
This is a personal project built for my own use. The codebase is available for forking and modifications. Note that I may not actively review pull requests or respond to issues due to time constraints.
