| Crates.io | orgflow-tui |
| lib.rs | orgflow-tui |
| version | 0.2.0 |
| created_at | 2025-06-09 21:16:52.028427+00 |
| updated_at | 2025-06-20 15:39:38.266993+00 |
| description | A terminal user interface for orgflow - manage notes and tasks with a smooth workflow |
| homepage | https://github.com/ucyo/orgflow |
| repository | https://github.com/ucyo/orgflow |
| max_upload_size | |
| id | 1706401 |
| size | 96,013 |
A modern Rust ecosystem for managing notes and tasks with a smooth, efficient workflow.
Orgflow consists of two main components:
orgflow - Core library for document management with support for tasks and notesorgflow-tui - Terminal user interface for intuitive note and task management# Install from crates.io
cargo install orgflow-tui
# Run the application
orgflow-tui
Add to your Cargo.toml:
[dependencies]
orgflow = "0.1.0"
orgflow)orgflow-tui)orgflowThe foundational library that provides:
use orgflow::{OrgDocument, Task, Note, Configuration};
// Load a document
let doc = OrgDocument::from("path/to/file.org")?;
// Create a task
let task = Task::with_today("Complete project documentation");
// Create a note
let note = Note::with("Meeting Notes".to_string(), vec![
"Discussed project timeline".to_string(),
"Next steps identified".to_string(),
]);
// Add to document and save
doc.push_task(task);
doc.push_note(note);
doc.to("path/to/file.org")?;
orgflowA beautiful, responsive terminal interface featuring:
Ctrl+TCtrl+S# Install the TUI application
cargo install orgflow-tui
# Use the library in your project
cargo add orgflow
git clone https://github.com/ucyo/orgflow
cd orgflow
# Build everything
cargo build --release
# Build just the library
cargo build -p orgflow --release
# Build just the TUI
cargo build -p orgflow-tui --release
Set your preferred storage location:
export ORGFLOW_BASEFOLDER=/path/to/your/notes
Default location: /home/sweet/home
Orgflow TUI automatically manages your session state:
session.json in your base folderSession includes:
The session file is automatically created and managed - no manual intervention required.
Orgflow uses a structured text format:
## Tasks
[ ] Implement new feature
[x] 2024-01-15 Write documentation
(A) 2024-01-10 High priority task @work +project
## Notes
### Meeting Notes
> cre:2024-01-15 mod:2024-01-15 guid:abc123... @meeting +work
Discussed quarterly objectives and timeline.
Next steps:
- Review current progress
- Set new milestones
- Schedule follow-up meeting
### Project Ideas
> cre:2024-01-10 mod:2024-01-12 guid:def456... @ideas +innovation
Ideas for improving the user experience:
1. Better navigation
2. Faster search
3. Mobile support
# Start the application
orgflow
# Keyboard shortcuts:
# Ctrl+R - Cycle through tabs (Editor → Viewer → Tasks → Editor)
# Ctrl+T - Quick task entry Ctrl+S - Save note
# Esc - Exit (session auto-saved) Tab - Navigate fields
# Session state automatically preserved on every keystroke
use orgflow::{Configuration, OrgDocument, Task, Note};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Get base folder from environment or use default
let base_folder = Configuration::basefolder();
let file_path = format!("{}/refile.org", base_folder);
// Load existing document or create new
let mut doc = OrgDocument::from(&file_path)
.unwrap_or_else(|_| OrgDocument::default());
// Add a new task
let task = Task::with_today("Review pull requests");
doc.push_task(task);
// Add a new note
let note = Note::with(
"Daily Standup".to_string(),
vec![
"Team discussed current sprint progress".to_string(),
"Identified blockers and solutions".to_string(),
"Planned next steps for the week".to_string(),
]
);
doc.push_note(note);
// Save the document
doc.to(&file_path)?;
println!("Document saved with {} tasks and {} notes",
doc.len().0, doc.len().1);
Ok(())
}
# Clone the repository
git clone https://github.com/ucyo/orgflow
cd orgflow
# Build the workspace
cargo build
# Run tests
cargo test
# Run the TUI in development
cargo run -p orgflow-tui
# Run the CLI tool
cargo run -p orgflow
orgflow/
├── orgflow/ # Core library
│ ├── src/
│ │ ├── lib/ # Library modules
│ │ └── main.rs # CLI binary
│ └── tests/ # Integration tests
├── orgflow-tui/ # Terminal interface
│ └── src/
│ ├── main.rs # TUI application
│ └── session.rs # Session management
├── Cargo.toml # Workspace configuration
└── README.md # This file
# Run all tests
cargo test
# Test specific package
cargo test -p orgflow
cargo test -p orgflow-tui
# Run with output
cargo test -- --nocapture
# Format code
cargo fmt
# Run clippy lints
cargo clippy
# Check for issues
cargo check
┌─────────────────────────────────────────────────────────────┐
│ Orgflow - Editor | Viewer | Tasks (Ctrl+R to switch) │
├─────────────────────────────────────────────────────────────┤
│ Title │
│ Weekly Planning Session │
├─────────────────────────────────────────────────────────────┤
│ Content │
│ ## Agenda │
│ 1. Review last week's accomplishments │
│ 2. Set priorities for upcoming week │
│ 3. Identify potential blockers │
│ │
│ ## Action Items │
│ - Schedule team review meeting │
│ - Update project documentation │
│ │
│ Quit <ESC> Switch <SHIFT>+<TAB> Save <CTRL>+<S> Cycle <CTRL>+<R> │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Orgflow - Editor | Viewer | Tasks (Ctrl+R to switch) │
├──────────────────────────────────────┬──────────────────────┤
│ Tasks (5 total) │ Task Details │
│ ► [ ] Review pull request #123 │ Status: Pending │
│ [x] Update documentation │ Priority: High │
│ [ ] Fix login bug │ Created: 2024-01-15 │
│ [ ] Plan next sprint │ Completed: N/A │
│ [x] Team standup meeting │ Tags: @dev +urgent │
│ │ │
│ │ Description: │
│ │ Review pull request │
│ │ #123 for the new │
│ │ authentication... │
│ Navigate <↑↓> Quit <ESC> Switch <CTRL>+<R> │
└──────────────────────────────────────┴──────────────────────┘
Session Management: All UI state and draft content is automatically preserved in session.json. Exit anytime with ESC and resume exactly where you left off!
We welcome contributions! Here's how to get started:
git checkout -b feature/amazing-featurecargo testThis project is licensed under the MIT License - see the LICENSE file for details.
Start organizing your workflow with Orgflow today! 🚀
Made with ❤️ in Rust