# jamesob/desk

A lightweight workspace manager for the shell

Repository: https://github.com/jamesob/desk
Canonical: https://ross.abutalabs.com/products/desk
Language: Shell
License: MIT
License Family: permissive
Topics: zsh, shell, bash, shell-script, workspace-manager, desk
Last push: 2022-07-07T17:57:09+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 3966, "days_push": 1518, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2576, forks 113 (observed 2026-08-28T04:07:02.183075+00:00)

## What it is
Desk is a lightweight shell-based workspace manager that lets you switch between project contexts with a single command, loading directories, virtualenvs, aliases, and environment variables from simple Deskfile shell scripts. It has no dependencies beyond bash and works with bash, zsh, and fish.

## Use cases
- switch between project workspaces in the shell
- load project-specific environment variables and aliases with one command
- activate a virtualenv when entering a project directory
- keep AWS credentials out of shell history when working on cloud projects
- namespace shell functions and aliases per project
- run a command inside a project's environment without activating it

## When to choose
- you juggle multiple code trees and want fast, documented context switches
- you want a dependency-free, pure-shell tool that works across bash, zsh, and fish
- you prefer plain shell scripts over heavyweight project or environment managers

## When to avoid
- you need a full development environment or dependency manager like direnv, tmuxinator, or nix-shell
- your workflow requires per-directory automatic activation rather than explicit desk switching
- you need a tool under active development with frequent updates

## Facets
- artifact type: cli-tool
- maturity: maintenance
- function: cli, developer-tools, configuration-management, workflow-automation
- domain: developer-tools
- platform: cli, cross-platform
- tags: shell, zsh, fish, workspace-manager, deskfile, context-switching, environment-variables, shell-aliases, command-line, automation, linux, macos, bash

## Member repositories
- jamesob/desk (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:02.183075+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:22:43.146584+00:00, confidence not recorded.
  - readme: https://github.com/jamesob/desk (fetched 2026-08-28T04:07:02.183075+00:00, sha 7468b3bffa90)
- Data as of 2026-08-30T08:39:29.467469+00:00.
