https://github.com/dzfrias/projectable Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. {{ message }} dzfrias / projectable Public * Notifications * Fork 1 * Star 14 A highly configurable TUI project manager dzfrias.dev/blog/projectable License MIT license 14 stars 1 fork Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights dzfrias/projectable This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 1 branch 4 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/d] Use Git or checkout with SVN using the web URL. [gh repo clone dzfria] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @dzfrias dzfrias style(clippy): resolve ... 0630324 Jun 24, 2023 style(clippy): resolve 0630324 Git stats * 328 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github/workflows ci(release): add publish to cargo June 20, 2023 08:56 benches chore(listing): benchmark selections June 22, 2023 11:41 extras docs(CONFIG): add pager configuration June 23, 2023 09:37 src style(clippy): resolve June 24, 2023 17:55 .gitignore feat: initial commit March 11, 2023 14:26 Cargo.lock chore: update version in Cargo.lock June 23, 2023 20:01 Cargo.toml chore(cargo): bump to 1.0.0 June 23, 2023 19:58 LICENSE docs(README): add Command Syntax section June 17, 2023 09:35 README.md docs(REAMDE): fix links June 20, 2023 15:13 View code projectable Getting Started [?][?] Keybinds Command Syntax [?] License README.md projectable screenshot [Preview done with bat] projectable is a highly configurable TUI project manager. You can do everything your project needs from a comfortable and smooth interface. Instead of exploring the depths of your most nested directory, open a file simply from the projectable file listing! Here are just a few builtin things projectable can do: * Preview files * Run commands, foreground or background * Fuzzy search files * Create files or directories * Delete files or directories * Ignore files based on glob patterns * Toggle hidden files * Mark files to quick and easy access * Respect gitignore * Live update to new files/changes * View your project as a hierarchy * Automatically recognize project root, with customizability * Run special commands that change on a per-file basis * View git changes * [?] Easily write custom commands * Fully configurable with a dead-simple toml file Getting Started To get started, you can use one of the following installation methods: cargo $ cargo install projectable Homebrew $ brew install dzfrias/formulae/projectable Releases Go to the releases page, and binaries for every major platform should be there. Build from source Requires Rust to be installed on your computer. $ git clone https://github.com/dzfrias/projectable $ cd projectable $ cargo build --release $ ./target/release/prj To verify installation worked correctly, run prj --version. After you've installed, run prj to start it up! The default keybinds are vim-like (k for up, j for down), but you can change them in CONFIG.md. [?][?] Keybinds Here a list of the available actions and their default bindings. For customization, see CONFIG.md. Key Description j Go down k Go up enter Open file or directory q/esc Quit o Expand all O Collapse all g Go to first G Go to last l Expand all under directory h Collapse all under directory n New file N New directory d Delete file/directory r Rename/move file e Execute command (see syntax) ctrl-c Cancel command(s) v File-specific command ctrl-n Go down by three ctrl-p Go up by three / Search ctrl-d Move preview down ctrl-u Move preview up t Toggle git diff view T Filter for modified files . Toggle hidden files m Mark file M Open marks You can make your own keybinds, too! This is of course done in the configuration file, the details of which can be found in CONFIG.md. Command Syntax The execute command action has some extra features that allow for easy and dynamic command execution. By default commands are run in the background, but this behavior can be changed, so interactive programs like fzf work. In the command execution window, prepend !! to execute in the foreground. For example, !!fzf will execute fzf. Additionally, use {} to interpolate the currently selected file into your command. echo {} would log the file you are currently selecting. Lastly, {...} will prompt you for input. This is only available in custom commands defined in the config file. So, if you've defined a custom command bound to ctrl-b that executes cargo add {...}, pressing ctrl-b will prompt you for something to cargo add. There are also keybinds that integrate with tmux. When entering input to run a command, press ctrl-v to open a vertical split. ctrl-x will open a horizontal one, ctrl-n a new window, and ctrl-f a floating one. In short: Item Description !! Execute in foreground {} Interpolate selected file {...} Prompt for input ctrl-v Vertical split ctrl-x Horizontal split ctrl-n New window ctrl-f Floating window [?] License This project is licensed under the MIT License. About A highly configurable TUI project manager dzfrias.dev/blog/projectable Topics rust tmux cli productivity terminal dashboard command-line project tui configurable Resources Readme License MIT license Stars 14 stars Watchers 2 watching Forks 1 fork Report repository Releases 4 1.0.0 Latest Jun 24, 2023 + 3 releases Packages 0 No packages published Used by 1 * @dzfrias @dzfrias / projectable Languages * Rust 100.0% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.