desk
brew install desk
v0.6.0
MIT
Lightweight workspace manager for the shell
4
30-day installs · #11129
11
90-day · #11583
40
365-day · #11710
2.6k
★ GitHub stars · updated 4y ago
GitHub topics
bash
desk
shell
shell-script
workspace-manager
zsh
Links
- https://github.com/jamesob/desk
- GitHub: jamesob/desk
- Brew formula source: Formula/d/desk.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [],
"categories": [],
"caveats": null,
"conflicts_with": [],
"dependencies": [],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Lightweight workspace manager for the shell",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:36:54+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "desk",
"github_default_branch": "master",
"github_last_commit_at": "2022-07-07T17:57:09Z",
"github_readme_excerpt": "\n# \u25f2 desk\n\n[](https://travis-ci.org/jamesob/desk) [](https://gitter.im/jamesob/desk?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nLightweight workspace manager for the shell.\n\nDesk makes it easy to flip back and forth between different project contexts in\nyour favorite shell. Change directory, activate a virtualenv or rvm, load\nin domain-specific aliases, environment variables, functions, arbitrary shell files, \nall in a single command.\n\nInstead of relying on `CTRL-R` to execute and recall (\"that command\u0027s gotta\nbe here somewhere...\"), desk helps shorten and document those actions with\nshell aliases and functions, which are then namespaced under a particular\ndesk.\n\nBecause Deskfiles are just enriched shell scripts, the possibilities are \nendless. For example, when doing work on AWS I have desk \nsecurely load AWS API keys into environment variables via \n[`pass`](https://www.passwordstore.org/) -- no effort on my part, and no \nrisk of accidentally persisting that sensitive information to a history file.\n\n\u003cimg src=\u0027screencap.gif\u0027 width=700\u003e\n\nI have a hard time calling this a \"workspace manager\" with a straight\nface -- it\u0027s basically just a shell script that sources another shell script in a new shell.\nBut I often find myself working in multiple different code trees simultaneously:\nthe quick context switches and namespaced commands that desk facilitates\nhave proven useful.\n\nThere are no dependencies other than `bash`. Desk is explicitly tested with `bash`,\n`zsh`, and `fish`.\n\n```sh\n\u25f2 desk 0.6.0\n\nUsage:\n\n desk\n List the current desk and any associated aliases. If no desk\n is being used, display available desks.\n desk init\n Initialize desk configuration.\n desk (list|ls)\n List all desks along with a description.\n desk (.|go) [\u003cdesk-name-or-path\u003e [",
"github_repo": "jamesob/desk",
"github_stars": 2576,
"github_topics": [
"bash",
"desk",
"shell",
"shell-script",
"workspace-manager",
"zsh"
],
"homepage": "https://github.com/jamesob/desk",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 4,
"installs_365d": 40,
"installs_90d": 11,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "MIT",
"llm_generated_at": null,
"llm_model": null,
"name": "desk",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 11129,
"rank_365d": 11710,
"rank_90d": 11583,
"raw_hash": "e9ed1144471bf998",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/d/desk.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": null,
"version_stable": "0.6.0",
"versioned_formulae": [],
"why_use_this": null
}