{"id":13478027,"url":"https://github.com/dzfrias/projectable","last_synced_at":"2025-12-27T11:58:08.560Z","repository":{"id":176402238,"uuid":"613432363","full_name":"dzfrias/projectable","owner":"dzfrias","description":":dizzy: A TUI file manager built for projects","archived":false,"fork":false,"pushed_at":"2025-01-13T04:10:28.000Z","size":880,"stargazers_count":409,"open_issues_count":11,"forks_count":14,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-02-28T13:33:56.431Z","etag":null,"topics":["cli","command-line","configurable","dashboard","productivity","project","rust","terminal","tmux","tui"],"latest_commit_sha":null,"homepage":"https://dzfrias.dev/blog/projectable","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dzfrias.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-03-13T15:00:05.000Z","updated_at":"2025-02-28T04:23:23.000Z","dependencies_parsed_at":"2023-06-28T14:45:27.701Z","dependency_job_id":"785e3be4-2b87-40d5-9ec3-b2a5dc9ba378","html_url":"https://github.com/dzfrias/projectable","commit_stats":null,"previous_names":["dzfrias/projectable"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzfrias%2Fprojectable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzfrias%2Fprojectable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzfrias%2Fprojectable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzfrias%2Fprojectable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dzfrias","download_url":"https://codeload.github.com/dzfrias/projectable/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245802190,"owners_count":20674604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","command-line","configurable","dashboard","productivity","project","rust","terminal","tmux","tui"],"created_at":"2024-07-31T16:01:51.480Z","updated_at":"2025-12-27T11:58:08.507Z","avatar_url":"https://github.com/dzfrias.png","language":"Rust","readme":"# 💫 projectable\n\n![screenshot](./extras/screenshot.png)\n\n\u003cp\u003e\u003csub\u003ePreview done with \u003ca href=\"https://github.com/sharkdp/bat\"\u003ebat\u003c/a\u003e\u003c/sub\u003e\u003c/p\u003e\n\n**projectable** is a highly configurable TUI file manager built for projects.\nYou can do handle all your project's file-based needs from a comfortable and\nsmooth interface.\n\nInstead of exploring the depths of your most nested directory, open a file simply\nfrom the projectable file listing!\n\nHere are just a few builtin things projectable can do:\n\n- 🔍 Preview files\n- 💥 Run commands, foreground or background\n- 👀 Fuzzy search files\n- 📁 Create files or directories\n- ❌ Delete files or directories\n- 🙈 Ignore files based on glob patterns\n- 🔳 Toggle hidden files\n- 🎯 Mark files to quick and easy access\n- 🙉 Respect gitignore\n- 🔔 Live update to new files/changes\n- 🌲 View your project as a hierarchy\n- 🔦 Automatically recognize project root, with customizability\n- 💼 Run special commands that change on a per-file basis\n- 👓 View git changes\n- ✏️ Easily write custom commands\n- 📖 Fully configurable with a dead-simple `toml` file\n\n## 🚀 Getting Started\n\nTo get started, you can use one of the following installation methods:\n\n### Minimum Supported Rust Version (MSRV)\n\nWhen installing from Cargo or building from source, the MSRV for `projectable` is currently 1.70.x\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ca href=\"https://crates.io\"\u003ecargo\u003c/a\u003e\u003c/summary\u003e\n\n```bash\n$ cargo install projectable\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ca href=\"https://brew.sh\"\u003eHomebrew\u003c/a\u003e\u003c/summary\u003e\n\n```bash\n$ brew install dzfrias/formulae/projectable\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ca href=\"https://aur.archlinux.org\"\u003eArch User Repository\u003c/a\u003e\u003c/summary\u003e\n\nprojectable is available from the Arch User Repository though\n[this package](https://aur.archlinux.org/packages/projectable). Thanks to\n@Absobel for creating this!\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ca href=\"https://pkgsrc.se/misc/projectable\"\u003eNetBSD official Repositories\u003c/a\u003e\u003c/summary\u003e\n\nprojectable is available from the NetBSD official repositories though\n[this package](https://pkgsrc.se/misc/projectable).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eReleases\u003c/summary\u003e\n\nGo to the [releases](https://github.com/dzfrias/projectable/releases) page,\nand binaries for every major platform should be there.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eBuild from source\u003c/summary\u003e\n\nRequires [Rust](https://github.com/rust-lang/rust) to be installed on your\ncomputer.\n\n```bash\n$ git clone https://github.com/dzfrias/projectable\n$ cd projectable\n$ cargo build --release\n$ ./target/release/prj\n```\n\n\u003c/details\u003e\n\nTo verify installation worked correctly, run `prj --version`.\n\nAfter you've installed, run `prj` to start it up! The default keybinds are\nvim-like (k for up, j for down), but you can change them in\n[CONFIG.md](./extras/CONFIG.md).\n\n## ⌨️ Keybinds\n\nHere a list of the available actions and their default bindings. For\ncustomization, see [CONFIG.md](./extras/CONFIG.md).\n\n| Key       | Description                                     |\n| --------- | ----------------------------------------------- |\n| `j`       | Go down                                         |\n| `k`       | Go up                                           |\n| `enter`   | Open file or directory                          |\n| `q`/`esc` | Quit                                            |\n| `o`       | Expand all                                      |\n| `O`       | Collapse all                                    |\n| `g`       | Go to first                                     |\n| `G`       | Go to last                                      |\n| `l`       | Expand all under directory                      |\n| `h`       | Collapse all under directory                    |\n| `f`       | Focus directory                                 |\n| `n`       | New file                                        |\n| `N`       | New directory                                   |\n| `d`       | Delete file/directory                           |\n| `r`       | Rename file                                     |\n| `R`       | Move file                                       |\n| `e`       | Execute command (see [syntax](#command-syntax)) |\n| `ctrl-c`  | Cancel command(s)                               |\n| `v`       | File-specific command                           |\n| `ctrl-n`  | Go down by three                                |\n| `ctrl-p`  | Go up by three                                  |\n| `/`       | Search                                          |\n| `ctrl-d`  | Move preview down                               |\n| `ctrl-u`  | Move preview up                                 |\n| `t`       | Toggle git diff view                            |\n| `T`       | Toggle filter for modified files                |\n| `.`       | Toggle hidden files                             |\n| `m`       | Toggle mark on file                             |\n| `M`       | Open marks                                      |\n| `\\`       | Clear filters (focus, git)                      |\n| `?`       | Open help window                                |\n\nYou can make your own keybinds, too! This is of course done in the configuration\nfile, the details of which can be found in [CONFIG.md](./extras/CONFIG.md).\n\n### Command Syntax\n\nThe execute command action has some extra features that allow for easy and\ndynamic command execution.\n\nBy default commands are run in the background, but this behavior can be changed,\nso interactive programs like [fzf](https://github.com/junegunn/fzf) work. In the\ncommand execution window, prepend `!!` to execute in the foreground. For example,\n`!!fzf` will execute `fzf`.\n\nAdditionally, use `{}` to interpolate the currently selected file into your\ncommand. `echo {}` would log the file you are currently selecting.\n\nLastly, `{...}` will prompt you for input. This is only available in custom\ncommands defined in the config file. So, if you've defined a custom command\nbound to `ctrl-b` that executes `cargo add {...}`, pressing `ctrl-b` will prompt\nyou for something to `cargo add`.\n\nThere are also keybinds that integrate with [tmux](https://github.com/tmux/tmux).\nWhen entering input to run a command, press `ctrl-v` to open a vertical split.\n`ctrl-x` will open a horizontal one, `ctrl-n` a new window, and `ctrl-f` a\nfloating one.\n\nIn short:\n\n| Item     | Description               |\n| -------- | ------------------------- |\n| `!!`     | Execute in foreground     |\n| `{}`     | Interpolate selected file |\n| `{...}`  | Prompt for input          |\n| `ctrl-v` | Vertical split            |\n| `ctrl-x` | Horizontal split          |\n| `ctrl-n` | New window                |\n| `ctrl-f` | Floating window           |\n\n## ✍️ License\n\nThis project is licensed under the [MIT License](./LICENSE).\n","funding_links":[],"categories":["Rust","\u003ca name=\"file-manager\"\u003e\u003c/a\u003eFile manager"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdzfrias%2Fprojectable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdzfrias%2Fprojectable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdzfrias%2Fprojectable/lists"}