Without cc-picker
- Open a terminal
- Remember where the project lives
- Type the path to get there
- Start Claude Code – and hope it's the right folder
$ cd ~/code/clients/acme/webapp # or was it ~/dev? $ claude # …or forget the cd and start in ~
A project launcher for Claude Code on Linux
Pick a folder from a list, and Claude Code starts right inside it – with that project as its working folder, instead of wherever your terminal happened to be.
Lists ~/claude-projects, recent first, opens a terminal in the chosen folder and starts claude there. Pure Bash; zenity, kdialog or yad for the window.
← pull out a folder to try it
(demo – nothing is launched)
Claude Code treats the folder it starts in as your project. Starting it in the right one should take one click.
claude operates on its working directory. cc-picker turns that directory into a deliberate choice.
$ cd ~/code/clients/acme/webapp # or was it ~/dev? $ claude # …or forget the cd and start in ~
$ cc-picker # pick → terminal opens in ~/claude-projects/<name> # → exec claude
Three things, done well.
One Bash script. No background service, no network code, no dependencies beyond a dialog tool and a terminal.
A list of your projects. The ones you used lately sit on top, with “2 h ago” or “yesterday” next to them.
Recent list in ~/.local/state/cc-picker/recent (max. 50). Deleted folders are skipped, hidden ones aren't listed.
Starting fresh? Type a name. Code already online? Paste its address and it's downloaded for you.
Name validation (no /, no leading ./-). Optional git clone with a progress dialog; failures show git's reason and leave no empty folder.
A terminal opens in that folder with Claude Code already running. Quit Claude, and you're still in the right place.
Commands are %q-quoted; works with gnome-terminal, konsole, xfce4-terminal, alacritty, kitty and xterm.
Click through a window, or type a number – whatever feels natural.
The window is the default; --shell-mode or CC_PICKER_MODE=shell for the menu. No dialog tool installed? It falls back to the menu automatically.
$ cc-picker --shell-mode cc-picker — choose a project: 1) my-webapp 3) notes-app 2) api-server 4) + Create new project #? 1
select; Ctrl+D quits with exit code 0.Open a terminal, paste these two lines one after the other and press Enter each time. Done.
Installs into ~/.local – no root needed.
git clone https://github.com/bruneler/cc-picker.gitcd cc-picker && ./install.sh~/.local/share/applications/cc-picker.desktop + iconcc-picker command work in any terminalAdds ~/.local/bin to PATH for bash, zsh, fish or ~/.profile – oncesudo pacman -S --needed zenity, only after confirmationNo. cc-picker is an independent community project. It simply starts the official claude program in a folder you choose.
The launcher keeps settings and recent projects locally. Optional Git cloning, package installation and Claude Code itself can use the network. See our privacy notice below.
No – and that's worth knowing. The start folder is where Claude Code works by default, not a security boundary: depending on its permissions it can still read, change or run things elsewhere. What Claude Code may do is set by its own permission settings, and cc-picker doesn't change them.
Only for the two install lines. After that, cc-picker lives in your app menu and works with clicks.
In ~/claude-projects by default. To use another folder, write CC_PICKER_BASE=~/somewhere/else into ~/.config/cc-picker/config.
Not at the moment – cc-picker is made for Linux with Bash. It's tested on GNOME; KDE and other desktops work through kdialog or yad.
Delete three files: rm ~/.local/bin/cc-picker ~/.local/share/applications/cc-picker.desktop ~/.local/share/icons/cc-picker.svg. Your projects stay where they are.