Omarchy Shell Productivity with fzf, Tmux, Worktrees, Sync, and Port Forwarding
Use Omarchy's fzf, Zoxide, ripgrep, fd, bat, Tmux layouts, Git worktree helpers, rsync watchers, and SSH port forwarding safely.
AMZDIR Editorial · Published · Updated
Omarchy ships modern Shell tools and short functions for multi-pane development, Git worktrees, file synchronization, and SSH forwarding. Understand what each helper changes before putting it into an important project. A short command does not replace checks for Git state, target paths, and permissions.
Confirm where a command comes from
Shell functions, aliases, and executables behave differently. Before following a short command from a tutorial, run:
type ff
type tdl
type ga
type rsw
type fiptype tells you whether the name resolves to an alias, function, or executable. If the command is absent, update through the official path and open a fresh terminal instead of overlaying a same-named script from an old post.
Replace long operations with modern tools
| Goal | Common Omarchy entry point | Key detail |
|---|---|---|
| Fuzzy-find files | ff | Search and preview the current tree |
| Search command history | Ctrl + R | Filter history interactively with fzf |
| Jump to a familiar directory | cd oma | Zoxide matches previously visited paths |
| Search file contents | rg Controller app/ | Fast recursive search by default |
| Find a filename | fd person.rb | Add -H only when hidden paths are needed |
| Read with highlighting | bat file.rb | Includes line numbers and paging |
| See command examples | tldr tar | Start with common uses, then read man when needed |
| Create a temporary experiment | try | Keeps experiments under ~/Work/tries |
fd ... / -H traverses the complete filesystem and hidden directories. It can be slow and reveal paths that should not be published, so start from the project directory.
Create a Tmux development layout in one step
Open a Tmux terminal with Super + Alt + Return, then run these functions inside the Tmux session:
| Function | Result |
|---|---|
tdl [agent] | Editor, AI agent, and terminal layout |
tds | Editor, live diff, terminal, and agent square |
tdlm [agent] | One development layout per child directory |
tsl [count] [command] | Tile the same command across several panes |
For example:
cd ~/Work/example
tdl cxThis puts the Claude Code alias cx into the layout. An agent may write files, so verify the working directory, permission mode, and Git diff in a non-critical repository first. With tsl, avoid running several panes that mutate the same file, database, or deployment target.
Herdr has matching hdl, hds, hdlm, and hsl helpers. Do not assume every optional agent is installed or enabled on another machine.
Isolate parallel branches with worktrees
Omarchy provides:
ga [branch]: create a branch and neighbouring worktree, then enter it;gd: remove the current worktree and its branch after confirmation.
A cautious start is:
git status --short
ga feature/search
git status --shortConfirm that the source repository does not depend on ignored local assets or an uncommitted baseline. Before gd, commit and push anything that must survive. Removing a worktree and branch is a material action; a generic “merged” indicator does not prove every local change is disposable.
Synchronize a development tree with an rsync watcher
rsw [source] [destination] watches a source and synchronizes changes in the background. The destination can be an SSH host:
rsw ~/Work/app nyc-dev:Work/app
lsw
dswlswlists active watchers;dswstops all watchers.
Prove direction, exclusions, and deletion behavior with a temporary directory first. Synchronization is not a backup: a bad source, destination, or deletion rule can spread damage quickly. Prefer a reviewed, auditable deployment pipeline for production.
Map a remote development port to localhost
If a development server runs on port 3000 of SSH host nyc-dev:
fip nyc-dev 3000
lip
dipfip creates one or more forwards, lip lists active forwards, and dip disconnects them. The browser can then reach the remote development service at localhost:3000, including secure-context treatment that browsers give localhost.
A port forward does not secure the remote application. Verify the SSH host, listening address, and application authentication. Do not expose an unauthenticated database or administration panel to an untrusted user.
Omarchy's interactive ssh wrapper also cleans up terminal state after a dropped connection and attempts to reconnect. Press Ctrl + C to stop retrying. Keep long-running work in a remote Tmux or Herdr session rather than assuming the network will remain connected.
Treat archive and disk helpers differently
compress [file/dir] and decompress [file.tar.gz] cover normal tar.gz archives. List an untrusted archive before extraction to catch path traversal or name collisions.
These helpers overwrite storage devices:
iso2sd image.iso
format-drive /dev/device NAMEiso2sd creates bootable media. format-drive replaces the entire disk with one exFAT partition. Verify capacity, model, mounts, and the exact device path before proceeding. Never turn /dev/device from a web example into a guessed value.
Turn shortcuts into a recoverable workflow
- Confirm the current command with
typeand--help. - Run it once in a test directory.
- Record Git state, sync direction, and the remote target.
- Isolate worktrees, ports, and data for parallel jobs.
- Stop watchers and forwards when work ends.
- Verify with tests, Git diff, and an actual connection or rendered result.
See Omarchy 4 hidden tips for desktop workflows and Terminal, Tmux, and LazyVim for the foundations.
Sources: Omarchy Shell Tools, Shell Functions, and Terminal.
Omarchy Workflow with Foot, Ghostty, Tmux, and LazyVim
Learn Omarchy terminal entry points, persistent Tmux sessions, development layouts, and LazyVim shortcuts, or safely switch to Ghostty, Alacritty, or Kitty.
Omarchy Themes and Safe Desktop Customization
Switch Omarchy themes, wallpapers, fonts, and interface styling while keeping official and custom configuration maintainable.