Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

try

Interactive ephemeral workspace manager.

Create and navigate to temporary project directories with fuzzy finding, automatic date-prefixing, and recency scoring. Automatically spawns a new shell in the selected workspace.

Inspired by tobi/try.

Features

  • Interactive selection: Use fzf for fuzzy finding workspaces
  • Auto-select on single match: When a search term returns exactly one match, automatically select it without opening fzf
  • Date-prefixed directories: Automatically prefix with YYYY-MM-DD format
  • Recency scoring: Most recently accessed workspaces appear first
  • Quick creation: Create new workspaces on the fly
  • Customizable path: Use --path option or TRY_PATH environment variable

Usage

try                    # Open interactive selector
try react              # Open matching workspace (or create if no match)
try +myproject         # Create workspace named myproject
try +                  # Create workspace with random name
try -myproject         # Delete workspace matching myproject
try --delete react     # Delete workspace matching react
try -                  # Delete the workspace you're currently inside
try -p ~/projects      # Use custom workspace path
try -l                 # List all workspaces

Prerequisites

  • fzf - Fuzzy finder for interactive selection

Configuration

Default path is ~/workspace/tries. Set a custom path:

export TRY_PATH="$HOME/my-workspaces"

Examples

# Select from existing workspaces
try

# Open matching workspace or create if no match
try feature

# Create a new workspace with specific name
try +my-project

# Create a new workspace with random name
try +

# Delete a workspace (uses trash if available, else prompts to confirm)
try -myproject

# Delete via explicit long form (handy when name collides with flags)
try --delete myproject

# Delete the workspace you're currently inside
try -

# Use custom base directory
try -p /tmp/experiments

# List all workspaces without interactive selection
try --list

# List workspaces in custom directory
try --list -p /tmp/experiments

Behavior

When a search term is provided, the script checks for matches:

  • Single match: Automatically enters that workspace without user interaction
  • Multiple matches: Opens fzf with the search term pre-filled for further filtering
  • No matches: Creates a new workspace with the search term as the name (equivalent to try +search_term)
  • No search term: Opens fzf with all workspaces sorted by recency

Deletion

try -NAME (or try --delete NAME) removes a workspace:

  • Single match: Selected automatically
  • Multiple matches: Opens fzf to pick one
  • No matches: Exits with an error (never silently no-ops)
  • If trash is on $PATH, the workspace is moved to trash; otherwise you get a [y/N] prompt before rm -rf