OCLI - Terminal Outliner
A terminal-based outliner and task manager, built with Go and the Charm TUI stack.

Features
- π Hierarchical bullet points with unlimited nesting
- β
Task management with checkboxes and completion tracking
- π¨ Color coding for bullets (5 color options)
- π Zoom functionality to focus on specific branches
- βοΈ Settings system with visual hierarchy lines toggle
- πΎ Persistent storage with JSON-based save/load
- π― Vim-style navigation with keyboard shortcuts
- π³ Visual hierarchy with optional tree-style connectors
Installation
Method 1: Install from source (recommended)
Requirements: Go 1.19+ installed on your system
go install github.com/vladzima/ocli@latest
Make sure your $GOPATH/bin is in your $PATH. Add this to your shell profile if needed:
export PATH=$PATH:$(go env GOPATH)/bin
Method 2: Download pre-built binaries
Download the latest release for your platform from the releases page.
Method 3: Build from source
git clone https://github.com/vladzima/ocli.git
cd ocli
make build
# Or simply: go build -o ocli .
Verify installation
ocli --version
Usage
Simply run the command in your terminal:
ocli
On first run, OCLI creates a config directory at ~/.config/ocli/ with default tutorial content.
Keyboard Shortcuts
Navigation
ββ or j/k - Navigate up/down
β - Zoom out
β - Zoom in
Editing
Enter - Create new bullet
e - Edit selected bullet
d - Delete selected bullet
Organization
Tab - Indent (move right)
Shift+Tab - Outdent (move left)
Shift+ββ - Move bullet up/down
Space - Collapse/expand
c - Cycle bullet color
t - Toggle task mode
x - Mark task complete/incomplete
Other
h - Show help screen
s - Open settings
q - Quit (auto-saves)
Data Storage
OCLI automatically saves your data to ~/.config/ocli/data.json. All changes are auto-saved when you:
- Add/edit/delete bullets
- Change settings
- Quit the application
Update Safety: Your data is always preserved when updating OCLI. Tutorial content only appears for new installations - existing users keep all their data intact.
Configuration
Settings are stored in the same JSON file and include:
- Hierarchy lines display toggle
- Future customization options
Technical Details
Built with:
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature)
- Commit your changes (
git commit -m 'Add amazing feature')
- Push to the branch (
git push origin feature/amazing-feature)
- Open a Pull Request
License
MIT License - see LICENSE file for details
Author
Created by Vlad Arbatov