A place, a search, a next step.
Open ~/, ./ or another path with Tab. Ctrl-F searches beneath the displayed folder. Select a file, then choose Open, Reveal in Finder, Copy or Insert. Option-Tab brings your recent folders into the same workspace.
A composable, native Zsh environment
Useful context. Effortless discovery. A place for everything, including the way you work.
Native Zsh 5.9+ macOS-first Open source
~ · child directories · hidden off
↑↓ move↵ previewEsc clear1–5 with empty input
0 staged · 3 unstaged · 0 conflicts · snapshot
FILES3
DIFFFOCUSED · 3 CONTEXT
↑↓ files→ read→ full fileCtrl-R refresh
Where you areA readable path, even in a narrow window.
What changedBranch state and Git operation warnings.
What you’re buildingRelevant runtimes and project context.
Type a path and press Tab. Browse children, use Ctrl-O for a shallow preview, or Ctrl-F to search below the displayed folder.
Feature guideTRY IT ↑ Browser demo · sample data · previews only.
01 / The everyday, considered
One familiar interaction, wherever the next step takes you.
Open ~/, ./ or another path with Tab. Ctrl-F searches beneath the displayed folder. Select a file, then choose Open, Reveal in Finder, Copy or Insert. Option-Tab brings your recent folders into the same workspace.
Find a command by the fragments you remember, in any order. History search returns it to your editable prompt, ready for you to review and run.
Open a read-only, two-pane Git workspace. Move through changed files on the left and read focused, syntax-aware diffs on the right. Refresh the captured snapshot as AI or editor work evolves.
git-discard-all previews repository-wide changes and asks before discarding them.One shared interaction
Files, branches, history, help and Git review share a full-screen grammar: a clear title, one primary task, visible focus and quiet secondary context. The layout adapts to your terminal, and transitions preserve your place.
Arrows follow spatial disclosure. Enter applies the action shown. Escape goes back. Ctrl-K reveals the available keys. Closing restores your terminal; inserted paths stay visible for review.
Explore the shared controls02 / A place for your way of working
Keep the shared configuration clean. Keep your machine setup private. Compose the rest from small, focused files.
Build your first add-on~/.zshrcFinds and loads your configuration~/.zsh.addons/local/init.zshOptional. Loads first. Sets up PATH and early tool hooks.
.zsh.prompt
.zsh.editor
.zsh.find
….zsh.work
.zsh.postgres
.zsh.your-idea
…One naming convention. Shared and private files load as peers.
A file is the feature. Name it .zsh.something inside your add-on directory. Rename it to break that prefix, or remove it, to disable it.
03 / Make yourself at home
The installer shows its plan, backs up what it replaces, and leaves your private configuration intact.
Clone once into a stable location. Already cloned? Set repo_dir to that folder instead.
repo_dir="$HOME/Projects/compozsh"
git clone https://github.com/bitbemol/compozsh.git "$repo_dir"A dry run previews the plan and leaves your files unchanged.
zsh "$repo_dir/install.zsh" --symlink --dry-runRun the installer, review the plan, and confirm. After it succeeds, start a fresh shell.
zsh "$repo_dir/install.zsh" --symlinkexec zshKeep it as it is. The installer archives the active file before replacing it. Move your personal setup into the private initializer or focused add-ons.
Full installation and recovery guideIn Terminal → Settings → Profiles → your profile → Keyboard, enable Use Option as Meta key. This lets Option-Tab open Recents. Primary in-view actions use Control keys.
Keyboard setupPath + Tab and Option-Tab replace f and d. Reload with exec zsh after updating. Personal add-ons remain in your private configuration space.
Replace --symlink with --copy in the preview and install commands. Copy mode keeps a managed snapshot; rerun the copy installer after updates. In symlink mode, shared changes arrive with a Git pull. Your private files stay separate in either mode.
Small pieces. One coherent experience.