Priorify is a priority-based task manager built in C++, focused on performance, simplicity, and productivity.
What started as a basic console app has evolved into a modern, keyboard-driven Terminal User Interface (TUI) tailored for terminal-heavy workflows.
Important
Project Status: v2.0.0 Released; Active Development and Maintenance Phase
Priorify is a personal learning, recreational, and portfolio project developed independently by me.
The application is fully functional and actively used, and will continue to receive new features, improvements, and bug fixes over time.
Feedback and discussions are always welcome, but the repository is not intended for external contributions.
This project is designed to be:
- Fast: Minimal overhead with in-memory caching and instant operations.
- Keyboard-First: No mouse needed, fully optimised for Vim-style (h/j/k/l) and standard navigation.
- Focused: Prioritisation over clutter.
- Native to Programmers: Created for programmers who enjoy being in the terminal.
Through this project, I intend to improve the way I track my tasks, solving a personal productivity problem, and I hope it helps others too.
- Modern TUI
- Vim-like Navigation:
h/j/k/l - Custom pill toggles for selecting task status and priority.
- Task Management: Add, update, complete, and delete (and clear all) tasks instantly.
- Calendar Picker: For date selection (due date) while adding/editing a task.
- Visual Feedback: Colour-coded priority bars and active-state highlights.
- Persistent Storage: SQLite database safely stores all task data.
- Performance Optimised: In-memory caching minimises database polling.
- About Screen: Press
?on the dashboard to see what the app is about.
- Language: C++
- Database: SQLite3
- TUI Framework: FTXUI
- Build System: CMake
- Build Automation: Bash Scripting
- CMake
- A C++ compiler supporting C++20 or higher
This application is Linux-native and developed and tested on Arch Linux.
It is expected to work on other Unix-like systems too, including macOS (tested).
git clone https://github.com/schak04/priorify.git
cd priorifyRun the install script:
chmod +x scripts/install.sh
./scripts/install.shOnce done, you can launch the app from anywhere in your terminal:
priorify(Note: Ensure ~/.local/bin is in your system's PATH)
Click here if you need help with it
To add ~/.local/bin to your PATH, open your shell config file (like ~/.bashrc or ~/.zshrc) and add this line at the bottom:
export PATH="$HOME/.local/bin:$PATH"Then, reload your shell (or just restart your terminal):
source ~/.bashrc # or ~/.zshrcIf you prefer not to install it globally, you can build and run it manually:
chmod +x scripts/build.sh
./scripts/build.shAlways run the executable from the project root to ensure the database path (data/tasks.db) resolves correctly:
./bin/priorifyIf you ever wish to remove this app from your system, you can run the uninstall script from the cloned repository. It will safely remove the app (and also ask if you want to keep or delete your tasks database):
chmod +x scripts/uninstall.sh
./scripts/uninstall.sha: Add a new taske: Edit selected taskd: Delete selected task (requires confirmation)D: Clear all tasks (requires confirmation)c: Toggle completion statusj/korUp/Down: Navigate lists and form fieldsh/lorLeft/Right: Cycle through radio options or should I say... pills (Status/Priority)Enter: Save / Confirmq/Esc: Quit the app when in the dashboard?: Open the About screenSpacebar(when on the Due Date field in the add/edit-task screens): Open the calendar pickerEsc: Return to the dashboard when inside the add/edit-task screens or delete/clear-all confirmation screens
Note
The app is not available for Windows yet.
However, Windows users can use WSL (Windows Subsystem for Linux) to run the app.
- C++: cppreference
- SQLite: documentation
- FTXUI: documentation
- CMake: documentation and tutorial
- Chrono: GfG and cppreference
- StackOverflow - difference between include guards and #pragma once
- Choosing between $0 and BASH_SOURCE
I tried using different sites (such as: https://patorjk.com/software/taag, https://coddy.tech/tools/ascii-art-generator, etc.) to create ASCII art from typed text, but they were all too gigantic, and even when small, they didn't match the image I had in mind. The sites are great though, no complaints. I just wanted the logo to fit within 2 lines, so I used Unicode block elements to manually create the ASCII art myself for the app's name (visible on the dashboard). Characters Used:
- █ (Full Block: U+2588)
- ▀ (Upper Half Block: U+2580)
- ▄ (Lower Half Block: U+2584)
Reference: WikiPedia - Block Elements
© 2025-2026 Saptaparno Chakraborty.
All rights reserved.









