For Fish

May 29, 2026 · View on GitHub

Centered image

try-rs.org
A blazing fast, Rust-based workspace manager for your temporary experiments.

Build Status License Rust Nix ready AUR version

try-rs is a CLI tool designed to manage the chaos of temporary projects. Instead of cluttering your Desktop or /tmp with test1, new-test, and final-test, try-rs organizes them into date-prefixed directories, offering a robust TUI (Terminal User Interface) to create, navigate, and clean up your experiments.

try-rs.gif

Features

FeatureDescription
Blazing FastBuilt in Rust, compiled to native binary. No interpreter lag.
Rich TUIBeautiful terminal interface built with Ratatui.
Fuzzy SearchInstantly find old experiments with smart matching.
Auto-DatingCreates directories like rust-test automatically.
Custom Date FormatConfigure date prefix format using chrono strings (e.g., %Y-%m-%d)
Git IntegrationAuto-clones URLs (try-rs <url>) and marks repos with ().
Content PreviewInspect files inside a folder before entering it.
Editor IntegrationOpen experiments directly in your editor (Ctrl+E).
ThemingSwitch themes at runtime (Ctrl+T) or set a default in config.
Safe DeletionDelete old experiments via UI with confirmation (Ctrl+D).
Folder MoveMove experiments to different directories within the TUI (Alt+M)
TabsMultiple workspaces in tabs ( to switch).
ConfigurableSupports XDG Base Directory (view section Configuration).
Multi-Shell SupportSupports Fish, Zsh, Bash, Power Shell and Nushell.
Inline PickerAdds support for a non-fullscreen picker.
Multi-OS SupportSupports Linux, macOS and Windows.
Shell Tab CompletionDynamic tab completion for directory names from your tries path.
Icons IdentificationSupports icons identification projects ( 󰬔     ).

Installation

Prerequisites

  • A shell (Fish, Zsh, Bash, Power Shell or Nushell).
  • A Nerd Font installed (required for icons like  and 🦀).

Building from source

git clone https://github.com/tassiovirginio/try-rs.git
cd try-rs
cargo install --path . --bin try-rs

Cargo install try-rs

cargo install try-rs

Eget

eget tassiovirginio/try-rs

Install in Archlinux

yay -S try-rs-bin

Ubuntu/Debian (APT Repository)

# Add the repository
echo "deb [trusted=yes] https://tassiovirginio.github.io/try-rs stable main" | sudo tee /etc/apt/sources.list.d/try-rs.list

# Update and install
sudo apt update
sudo apt install try-rs

Ubuntu/Debian (.deb manual)

  • Download the latest .deb for your architecture (amd64/arm64) from the Releases page and install it:
# Replace X.Y.Z with the latest version and choose amd64 or arm64
wget https://github.com/tassiovirginio/try-rs/releases/download/vX.Y.Z/try-rs_X.Y.Z-1_amd64.deb
sudo apt install ./try-rs_X.Y.Z-1_amd64.deb

Windows (Releases)

Homebrew

brew install try-rs

Nix Install (flakes)

nix profile install github:tassiovirginio/try-rs

Automatic Setup

On the first run, try-rs will attempt to detect your shell and ask if you want to automatically configure the shell integration.

Configuration

  1. Setup the Shell Integration

Since try-rs needs to change your shell's current directory, it requires a small wrapper function.

  • Fish Shell (Recommended)
try-rs --setup fish

(Optional) Create an alias:

alias try "try-rs"

To bind the inline (non-fullscreen) picker to Ctrl+T, append this to ~/.config/fish/config.fish:

bind \ct try-rs-picker
bind -M insert \ct try-rs-picker
  • Use Ctrl+T at the Fish prompt to open the picker and jump directly into a selected folder.

  • Optional: set TRY_RS_PICKER_HEIGHT to control picker height in rows (default: 18).

    set -Ux TRY_RS_PICKER_HEIGHT 22
    
  • Zsh

try-rs --setup zsh
  • Bash
try-rs --setup bash
  • Power-shell
try-rs --setup power-shell
  • Nushell
try-rs --setup nu-shell

Shell Tab Completion (Optional)

try-rs supports dynamic tab completion for directory names in your tries_path. When you type try-rs <partial-name> and press <Tab>, it will suggest existing directories from your tries folder.

To enable tab completion, run:

# For Bash
try-rs --completions bash >> ~/.bashrc

# For Zsh
try-rs --completions zsh >> ~/.zshrc

# For Fish
try-rs --completions fish > ~/.config/fish/completions/try-rs.fish

# For PowerShell
try-rs --completions power-shell >> $PROFILE

# For Nushell
try-rs --completions nu-shell >> ~/.config/nushell/config.nu

Or generate the completion script to stdout and redirect it manually:

try-rs --completions bash

The completion script automatically detects your tries_path from:

  1. The TRY_PATH environment variable (highest priority)
  2. The tries_path setting in your config file
  3. The default ~/work/tries path

Example usage:

If you have folders like rust-test, go-playground, and python-ml in your tries path:

$ try-rs ru<Tab>
# Completes to: try-rs rust-test

$ try-rs go<Tab>
# Completes to: try-rs go-playground

$ try-rs py<Tab>
# Completes to: try-rs python-ml

You can also use it with the TUI - typing a partial name will fuzzy-match existing directories.

2. Config File

The configuration file is stored in a platform-specific directory:

PlatformValueExample
Linux$XDG_CONFIG_HOME or $HOME/.config/home/tassio/.config/try-rs
macOS$HOME/Library/Application Support/Users/tassio/Library/Application Support/try-rs
Windows{FOLDERID_RoamingAppData}C:\Users\tassio\AppData\Roaming\try-rs

By default, experiments are stored in ~/work/tries. You can customize the path, choose a theme, and configure the editor. To change this, create config.toml in the directory shown above:

# config.toml

# Single path (works as before, no tabs)
tries_path = "~/Development/playground"

# Multiple paths separated by comma (tabs will appear at the bottom)
tries_path = "~/Development/playground, ~/Experiments"

editor = "code" # Optional: code, nvim, hx, etc.
apply_date_prefix = true # optional, default is false
date_prefix_format = "%Y-%m-%d" # optional, default is %Y-%m-%d (chrono format string)
transparent_background = true # optional, default is true (uses terminal background)

Background Transparency:

By default, try-rs uses a transparent background (inherits from your terminal). Each theme includes its own background color that will be used when transparent_background = false. You can control this with:

# Use theme's background color (solid background)
transparent_background = false

# Use terminal's background (transparent/inherit) - default
transparent_background = true

You can also resize the right panel area (disk/preview/legend):

right_panel_width = 25

Panel visibility can be configured in config.toml:

show_right_panel = true
show_disk = true
show_preview = true
show_legend = true

Behavior notes:

  • If show_disk, show_preview, and show_legend are all false, the right panel is effectively hidden.
  • If show_right_panel = false, individual panel sections are ignored.

Available Themes:

You can use any of these theme names in your configuration:

  • "Default"
  • "Catppuccin Mocha"
  • "Catppuccin Macchiato"
  • "Dracula"
  • "JetBrains Darcula"
  • "Gruvbox Dark"
  • "Nord"
  • "Tokyo Night"
  • "One Dark Pro"
  • "Everforest"
  • "SynthWave '84"
  • "OLED True Black"
  • "Silver Gray"
  • "Black & White"
  • "Matrix"
  • "Tron"

3. Environment Variables

You can also configure try-rs using environment variables:

VariableDescription
TRY_PATHOverrides the path where experiments are stored.
TRY_CONFIG_DIROverrides the default configuration directory.
TRY_CONFIGOverrides the config filename (defaults to config.toml).
VISUAL / EDITORDefault editor to use if not specified in config.toml.

Usage

Simply type try-rs (or your alias) in your terminal.

Key Bindings

KeyAction
TypeFilter the list (Fuzzy Search)
/ / Ctrl+K / Ctrl+J / Ctrl+P / Ctrl+NNavigate the list
Ctrl+UClear the search box
/ Switch tabs (when multiple workspaces configured)
EnterSelect directory (or create new if text doesn't match)
Ctrl+DDelete the selected directory (triggers popup)
Ctrl+EOpen in editor (configured in config.toml)
Ctrl+TOpen theme selector
Ctrl+AOpen about popup
Alt+PToggle right panel (disk/preview/etc)
Alt+MMove selected folder to another directory
Esc/Ctrl+CCancel / Close Popup / Exit

Theme Selector Key Bindings

KeyAction
/ / j / k / n / pNavigate themes
EnterSelect theme
Esc/Ctrl+CClose theme selector

Themes

You can switch between themes at runtime by pressing Ctrl+T. The following themes are available:

  • Default
  • Catppuccin Mocha
  • Catppuccin Macchiato
  • Dracula
  • JetBrains Darcula
  • Gruvbox Dark
  • Nord
  • Tokyo Night
  • One Dark Pro
  • Everforest
  • SynthWave '84
  • OLED True Black
  • Silver Gray
  • Black & White
  • Matrix
  • Tron

CLI Commands

You can also bypass the UI:

CommandDescription
try-rsOpens the TUI
try-rs <name>Create (or jump to) a named experiment
try-rs <https://github.com/user/repo>Clones a repository into a dated folder
try-rs <https://github.com/user/repo> <name>Clones a repository into a specific folder name (destination)
try-rs -f <url> / try-rs --full-cloneFull clone (omit --depth 1) when cloning repositories
try-rs -w <name> / try-rs --worktreeCreate a git worktree from current repository (must be inside repo)
try-rs --setup <shell>Setup shell integration (fish, zsh, bash, nu-shell, power-shell)
try-rs --setup-stdout <shell>Print shell integration script to stdout (for manual setup)
try-rs --completions <shell>Generate shell completion script for tab completion
try-rs --inline-picker [--inline-height <n>]Open the picker inline (non-fullscreen) in the current terminal
try-rs --show-preview --show-legendExplicitly show panel sections
try-rs --hide-preview --hide-diskExplicitly hide panel sections
try-rs --versionShow application version
try-rs --helpShow help message

Note: each --show-* flag can be overridden by its --hide-* counterpart.

Contribution

Thank you to all the people who already contributed to try-rs!

Inspiration

This project is a Rust port and re-imagination of the excellent try tool by Tobi Lütke.

While the original is a lightweight Ruby script, try-rs aims to bring the same philosophy, "Your experiments deserve a home", but with the performance, type safety, and modern TUI capabilities (using Ratatui) of the Rust ecosystem.

Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.

📄 License MIT