Toney is a fast, lightweight, terminal-based note-taking app for the modern developer. Built with Bubbletea, Toney brings a sleek TUI interface with markdown rendering, file navigation, and native Neovim editing – all in your terminal.
showcase.mp4
- ⚡ Fast – Minimal memory usage and snappy performance.
- 📝 Markdown Renderer – Styled previews via
glamour. - 🧠 Neovim Integration – Edit your notes using your favorite editor (
nvim). - 📂 File Management – Easily navigate, open, and manage markdown files.
- 🧩 Component Architecture – Modular codebase using Bubbletea’s
Modelsystem. - 🎨 TUI Styling – Clean, responsive interface using
lipgloss.
You can install Toney directly using go install:
go install github.com/SourcewareLab/Toney@latest
This will download, build, and install the Toney binary into your $GOBIN (typically $HOME/go/bin).
Run this command to ensure Toney is setup perfectly.
Toney init
- Go 1.16 or later
- Git (to fetch the module)
Make sure your GOBIN is in your system's PATH:
export PATH=$PATH:$(go env GOBIN)
Once installed, you can run:
Toney
| Key Combination | Action |
|---|---|
| F / Shift + F | Focus on File Tree |
| V / Shift + V | Focus on File Viewer |
Once the File Tree is focused (F or Shift + F):
| Key | Action |
|---|---|
| c | Create a file/folder |
| d | Delete selected |
| r | Rename selected |
| m | Move selected |
| Enter | Edit selected file |
- Daily Tasks
- Journals
- Config File
- Custom Styles
- Custom Editor
- Custom Notes Directory
- Custom Keybinds
- Search In Notes
- Search for Notes
- Keybind Helper (using Bubbles)
- Overlay support
- Viewer style improvements
- Error popups
- Separate package for messages
- Keybind refactor
- Config file support (
~/.config/toney/config.yaml) - Custom markdown renderer
- Custom components:
- [ ] Task Lists
-
codeblocks - Tables
- File Import/Export
- Configurable external editor support
- Cross-platform mobile app
- Server sync with configuration & cloud storage
toney/
├── cmd/ # Entry point (main.go)
├── internal/
│ ├── models/ # All UI models (Home, Viewer, Popups, etc.)
│ ├── enums/ # Typed enums (pages, popup types)
│ ├── messages/ # Message types for tea.Msg (will be modularized)
│ └── utils/ # Shared utility functions
We welcome contributions! Toney follows Go and Bubbletea conventions.
- Follow idiomatic Go formatting (
go fmt,go vet,golint). - Use
Init,Update, andViewseparation for all models. - Keep component responsibilities well-isolated.
- All exported functions/types should be documented with Go-style comments.
- Prefer
tea.Msgmessages over direct cross-component function calls.
-
Fork the repo and create a feature branch:
git checkout -b feature/my-feature
-
Write your code and make sure it builds:
go build ./...
-
Format your code:
go fmt ./...
-
Commit and push:
git commit -m "feat: add my awesome feature" git push origin feature/my-feature -
Submit a Pull Request 🎉
Please open an issue or discussion for large changes before starting them.
MIT License. See LICENSE.
Toney is inspired by:
- Glow – for markdown rendering
- Lazygit – for terminal UI polish
- Charm ecosystem – for all things delightful in the terminal
Made with 💀 by Nucleo & SourcewareLab