| Crates.io | tnj-tui |
| lib.rs | tnj-tui |
| version | 0.1.16 |
| created_at | 2025-12-30 16:25:18.845119+00 |
| updated_at | 2026-01-11 14:07:30.761847+00 |
| description | TUI Tasks, notes and journals in Notebooks |
| homepage | https://github.com/mikenorusis/tnj |
| repository | https://github.com/mikenorusis/tnj |
| max_upload_size | |
| id | 2012984 |
| size | 1,583,745 |
A lightweight, terminal-based application for managing tasks, notes, and journal entries. Built with Rust and featuring an intuitive TUI (Text User Interface), TNJ helps you stay organized without leaving your terminal.
Installation • Usage • Contributing • License

# Install latest version
curl -L https://github.com/mikenorusis/tnj/releases/latest/download/install.sh | sh
# Install specific version
curl -L https://github.com/mikenorusis/tnj/releases/download/v0.1.0/install.sh | sh
Install using Homebrew (or Linuxbrew):
# Add the tap
brew tap mikenorusis/homebrew-tnj
# Install tnj
brew install tnj
# Update to latest version
brew update
brew upgrade tnj
Download the binary for your platform from the latest release:
| Platform | Command |
|---|---|
| macOS (Intel) | curl -LO https://github.com/mikenorusis/tnj/releases/latest/download/tnj-macos-x86_64 && chmod +x tnj-macos-x86_64 && sudo mv tnj-macos-x86_64 /usr/local/bin/tnj |
| macOS (Apple Silicon) | curl -LO https://github.com/mikenorusis/tnj/releases/latest/download/tnj-macos-aarch64 && chmod +x tnj-macos-aarch64 && sudo mv tnj-macos-aarch64 /usr/local/bin/tnj |
| Windows | Download tnj-windows-x64.exe and add it to your PATH |
cargo install tnj-tui
Note: The package is named tnj-tui on crates.io, but the binary is still called tnj.
If you want to build from source:
# Clone the repository
git clone https://github.com/mikenorusis/tnj.git
cd tnj
# Build the project
cargo build --release
# The binary will be in target/release/tnj
Launch the interactive terminal user interface:
tnj tui
# or simply
tnj
tnj add-task "Complete project documentation" --due 2024-12-31 --tags "work,important"
tnj add-note "Meeting Notes" --content "Discussed project timeline..." --tags "meeting,work"
tnj add-journal "Today I worked on the new feature..." --title "Daily Reflection" --tags "personal"
Use development mode to work with a separate database and configuration:
tnj --dev tui
TNJ uses configuration files stored in your system's configuration directory:
~/.config/tnj/~/Library/Application Support/tnj/%APPDATA%\tnj\The configuration file (config.toml) is automatically created on first run.
q or Esc: Quit/Close?: Show helpTab: Switch between tabs (Tasks, Notes, Journal)Ctrl+S: SaveCtrl+C: Copy to clipboardj / ↓: Move downk / ↑: Move upEnter: Open/Edit itemn: New itemd: Delete itema: Archive/Unarchive itemf: Open filter modalCtrl+F: Toggle filter sidebarNote: Full keyboard shortcuts are available in the help menu (press ? in the TUI)
tnj/
├── src/
│ ├── main.rs # Entry point
│ ├── lib.rs # Library root
│ ├── cli.rs # CLI command handling
│ ├── config.rs # Configuration management
│ ├── database.rs # SQLite database operations
│ ├── models.rs # Data models (Task, Note, JournalEntry, Notebook)
│ ├── utils.rs # Utility functions
│ └── tui/ # TUI components
│ ├── app.rs # Main application state
│ ├── events.rs # Event handling
│ ├── layout.rs # Layout management
│ ├── render.rs # Rendering logic
│ └── widgets/ # UI widgets
├── Cargo.toml # Rust project configuration
└── README.md # This file
# Run with development profile
cargo run -- --dev tui
# Or build and run
cargo build
./target/debug/tnj --dev tui
cargo test
cargo fmt
cargo clippy
Contributions are welcome and greatly appreciated! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)Please make sure your code follows the existing style and passes all tests (cargo test).
This project is licensed under either of
at your option.