- Category
- Developer Tools
- Rank
- No. 683Tools index
- Pricing
- Open Source
- Type
- TOOL
- Use case
- Coding
- Interfaces
- CLI
- Builder
- tobi
- GitHub
- 4.0k stars
- Latest release
- v1.9.0
- Date
About
Tobi Lütke's tool for spinning up fresh directories for every vibe — instant scratch environments for prototyping ideas without polluting your workspace.
What it does
Try is a terminal organizer for small coding experiments. It creates dated project folders, searches them with fuzzy matching, favors recently touched work, and changes your shell into the selected location. It can also clone repositories, check out GitHub pull requests, and create detached Git worktrees.
Why it's ranked here
The appeal is unusually focused: creation, retrieval, cloning, and navigation share one quick terminal flow. Recency-aware scoring and highlighted fuzzy matches solve the practical problem of forgotten experiment names. Its documented tests cover matching, terminal rendering, caching, and directory handling, which adds confidence beyond the playful pitch.
What's good
Search quality has concrete thought behind it. Consecutive characters, word boundaries, compact matches, shorter names, recency, and dated folders all affect ordering. Results adapt to terminal height, rendering uses a single buffered frame, and limited searches avoid sorting every candidate. Shell-neutral output keeps most integration logic shared across supported shells.
Tradeoffs
Ruby is required, and normal browsing requires an interactive terminal. The workflow assumes experiments live under one configured root, so existing projects scattered elsewhere gain nothing until reorganized. Worktrees use detached HEAD, which may require an extra Git step before keeping commits. The terminal width logic explicitly simplifies Unicode handling and does not support CJK width.
How to use it well
Use it if you repeatedly start disposable investigations, dependency trials, pull request checks, or small prototypes from a terminal. Keep one experiment root, choose descriptive terms, and let dated names plus recency recover old work. Treat promoted work as a real project elsewhere. It does not replace general file search or broader project management.
Technical notes+
The CLI entry point is try.rb, with terminal rendering in lib/tui.rb and fuzzy scoring in lib/fuzzy.rb. try.rb scans the configured root once, skips hidden entries and non-directories, resolves symlinks, derives a base score from modification time plus a dated-name bonus, caches query results, and limits output using terminal height. lib/fuzzy.rb performs case-insensitive subsequence matching with boundary, proximity, density, length, and caller-supplied base scores; limited results use max_by rather than a full sort. lib/tui.rb writes frames through STDERR while shell commands can remain on stdout, uses the alternate screen, handles resize signals, and provides ANSI-aware truncation with simplified character widths. Tests appear under test/, while Gemfile supplies Minitest, Rake, and ruby-prof as development dependencies. Formula/try.rb defines the Homebrew package.
Observed
- License
- MIT License
- Primary language
- Ruby
- Interface
- Command-line tool with an interactive terminal interface and shell initialization
- Shell support
- Bash, Zsh, and Fish
- Install surfaces
- RubyGems, Homebrew, Nix, Home Manager, and manual script installation
- Runtime requirements
- Ruby is required; Git supports repository cloning and worktree features
- Repository structure
- Core CLI, fuzzy matcher, terminal toolkit, Minitest suite, and rendering profiler are separate repository components
Read from README.md, Gemfile, Makefile, lib/tui.rb, lib/fuzzy.rb, try.rb, Formula/try.rb, test/tui_test.rb, test/fuzzy_test.rb, test/test_helper.rb, test/try_selector_test.rb, test/tui_input_field_test.rb, test/profile/profile_render.rb, LICENSE, VERSION.
What it can do
Create fresh scratch directories
User command or request → New isolated directory environment
Set up instant prototyping environments
Project idea or prototype requirements → Clean workspace ready for development
Isolate experimental code from main workspace
Experimental code or prototype files → Separate directory containing isolated work
Generate temporary workspaces for different projects
Project specifications or context → Dedicated workspace directory for each project
Prevent workspace pollution during experimentation
Multiple concurrent experiments or prototypes → Clean main workspace with experiments contained in separate directories
Intel on try
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
