zoxide alternative

zoxide Alternative for
Full Terminal Workspaces

zoxide makes cd smarter. But changing directories is only the beginning. son goes further — it opens a full workspace with split panes, your editor, and startup commands, all in one keystroke.

A cd tool vs a workspace launcher

The fundamental difference between zoxide and son is their scope. zoxide replaces cd with something smarter. son replaces the entire process of switching context to a new project.

z

zoxide

A smarter cd command that learns your habits and takes you to directories with partial matches.

Changes to a directory
Frecency-based ranking
Does not open panes
Does not launch editors
Does not run startup commands
S

son

A workspace launcher that opens split-pane terminal environments with editors, dev servers, and project-specific commands.

Opens full workspace
Split panes with layout
Launches your editor
Runs startup hooks
Frecency-based ranking

Where zoxide is better

Any directory, not just projects

zoxide tracks every directory you visit — not just project roots. Need to jump to ~/Documents/invoices/2024? zoxide handles that. son focuses specifically on developer project directories.

Shell integration

zoxide replaces cd directly in your shell with the 'z' command. It's seamless — you never think about it. son is a separate command you invoke when you want to open a full workspace.

Minimal and focused

zoxide does one thing: navigate to directories faster. It's tiny, fast, and has essentially zero overhead. If all you need is smarter cd, zoxide is the right tool.

Works in any terminal session

zoxide operates within your current shell session. It doesn't need to create new panes or windows. It just changes your working directory, which works everywhere.

Where son is better

Full workspace creation

son doesn't just navigate to a directory — it creates an entire workspace. Split panes, editor in one pane, dev server in another, test runner in a third. One command, fully productive.

Multi-terminal support

son natively supports iTerm2, WezTerm, and tmux. It uses each terminal's native API to create split-pane layouts. zoxide is terminal-agnostic because it only changes directories.

Project-aware discovery

son understands project structure. It scans for git repos, recognizes project types, and applies appropriate layouts. zoxide tracks raw directory paths without project context.

Startup hooks and automation

With .son.toml, you can define commands that run automatically when you open a workspace — start dev servers, activate virtual environments, set environment variables. zoxide just changes your directory.

Use both together — they're complementary

son and zoxide are not competitors — they solve different problems at different stages of your workflow. The best developer setup uses both.

Workflow StepBest ToolWhy
Starting work on a projectsonOpens full workspace with panes, editor, and dev server
Quick directory jump within a sessionzoxideLightweight cd replacement, stays in current terminal
Switching between active projectssonCreates or switches to the project's workspace layout
Navigating to a non-project directoryzoxideTracks any directory, not limited to project roots
Opening a new project for the first timesonAuto-discovers new repos, no config needed
Returning to a deep subdirectoryzoxideRemembers paths like ~/projects/api/src/handlers

The ideal workflow

Start your day by running son to open a full workspace for your main project. Throughout the day, use z (zoxide) to jump between directories within your terminal panes. When you need to switch to a completely different project, run son again to open a new workspace.

~ $ son # pick project, full workspace opens
~/api $ z handlers # quick jump within the project
~/api/handlers $ z tests # another quick jump
~/api/tests $ son # switch project entirely

Feature comparison

Featuresonzoxide
Frecency sorting
Fuzzy search
Zero-config setup
Single binary
Split-pane workspaces
Editor integration
Startup hooks
Multi-terminal support
Shell cd replacement
Tracks any directory
Sub-shell integration
Project-type detection

Go beyond cd. Launch workspaces.

Keep zoxide for quick directory jumps. Add son for full workspace launching. Install in one command.

$ brew install abdussamet032/tap/son