Kiorg is a performance focused cross-platform file manager with Vim-inspired key bindings. It is built using the egui framework.
- Lightingly fast rendering and navigation
- Multi-tab support
- Vim-inspired keyboard shortcuts
- Built-in zoxide like fuzzy directory teleport
- Content preview for various file formats including code syntax highlight, image, video,pdf, epub, etc.
- Customizable shortcuts and color themes through TOML config files
- Cross-platform support (Linux, macOS, Windows)
- Bookmarks for quick access to frequently used directories
- Single self-contained binary with battery included
- Builtin terminal emulator
- App state persistence
- Language agnostic plugin system
- Undo/redo file operations
Built-in help menu with keyboard shortcuts
Pre-built binaries for all platforms are available on the releases page.
Alternatively, you can build and install from source using cargo:
cargo install --locked --git https://github.com/houqp/kiorg.git kiorgKiorg reads the config.toml TOML configuration file stored in the following locations:
- Linux:
~/.config/kiorg/ - macOS:
~/.config/kiorg/(if it exists) or~/Library/Application Support/kiorg/ - Windows:
%APPDATA%\kiorg\
# Sort preference configuration (optional)
[sort_preference]
column = "Name" # Sort column: "Name", "Modified", "Size", or "None"
order = "Ascending" # Sort order: "Ascending" or "Descending"
[layout]
preview = 0.5 # Increase preview default width ratio to 50%
# Override default shortcuts (optional)
[shortcuts]
MoveDown = [
{ key = "j" },
{ key = "down" }
]
MoveUp = [
{ key = "k" },
{ key = "up" }
]
DeleteEntry = [
{ key = "d" }
]
ActivateSearch = [
{ key = "/" },
{ key = "f", ctrl = true }
]To define a custom theme:
# Select your custom theme
theme = "my_cool_theme"
# Define the custom theme colors
[[custom_themes]]
name = "my_cool_theme"
display_name = "My Cool Theme"
[custom_themes.colors]
fg = "#FAF7F0" # Main text color
bg = "#000000" # Main background color
bg_light = "#080808" # Lighter background (panels, separators)
bg_extreme = "#050505" # Darkest background (scrollbars, inputs)
bg_selected = "#1A1A1A" # Selected item background
bg_fill = "#1A1A1A" # UI element background
bg_interactive_fill = "#262626" # Interactive element background
bg_active = "#333333" # Active element background
fg_selected = "#FAF7F0" # Selected text color
fg_light = "#4E5A6A" # Dimmed/secondary text
fg_folder = "#87CEEB" # Folder icon color
highlight = "#FFA247" # Highlight color
link_text = "#7FA5CC" # Link text color
link_underscore = "#58B8FD" # Link underline color
warn = "#FFA247" # Warning color
error = "#D06666" # Error color
success = "#6BBF59" # Success colorYou can try asking LLM to generate these custom theme configs for you based on themes from other apps, it typically works one shot.
- To run static analysis:
cargo clippy --workspace --all-targets -- -D warnings - To execute tests, run:
cargo testorcargo nextest run- Recommend nextest since it's 2-3x faster.
- To regenerate screenshots in readme:
UPDATE_SNAPSHOTS=1 cargo test --features=snapshot
- Composition over inheritance.
- Simple modular design and avoid unnecessary abstractions.
- Leverage async operations for long-running tasks to prevent blockign UI rendering.
- Implementing user preference persistence for improved user experience.
- Clean layout with compact spacing and alignment, functionality over flashy visuals.

