GitHub - shirozuki/claude-cli · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
shirozuki
claude-cli
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
master
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>1 Commit<br>1 Commit
LICENSE
LICENSE
README.md
README.md
claude-cli.sh
claude-cli.sh
View all files
Repository files navigation
claude-cli
A lightweight shell wrapper that runs Claude Code inside a Docker container, keeping your host system clean while persisting your Claude configuration across sessions.
Requirements
Docker with Buildx plugin
dmenu — mode selection prompt
fzf — directory picker
Current user must be a member of the docker group
Installation
git clone https://github.com/shirozuki/claude-cli<br>chmod +x claude-cli/claude-cli.sh<br>ln -s "$PWD/claude-cli/claude-cli.sh" ~/.local/bin/claude-cli
Usage
claude-cli [-b] [-c] [-h]
Option<br>Description
-b<br>Build (or rebuild) the claude-cli:latest Docker image
-c<br>Remove all claude-cli containers; optionally remove the image
-h<br>Show help
Running without any option launches a dmenu prompt to choose a mode.
Modes
no-dir
Launches Claude without mounting any project directories. Useful for general questions, quick tasks, or exploring Claude's capabilities without exposing local files.
single-dir
Opens an fzf picker to select one directory from your home tree (up to 3 levels deep). The selected directory is mounted and set as the working directory inside the container.
multi-dir
Opens fzf in multi-select mode to pick several directories (use Tab to select), then asks you to designate one of them as the working directory. All selected directories are mounted simultaneously — useful when working across multiple repos or sharing common config directories.
Configuration persistence
Claude's configuration (~/.claude/ and ~/.claude.json) is bind-mounted into the container on every run, so your account, settings, and session history survive container restarts.
The mount source is resolved in this order:
$XDG_CONFIG_HOME/claude/ — if $XDG_CONFIG_HOME is set
$HOME/ — fallback
Configuration variables
The following environment variables can be set to override defaults without editing the script:
Variable<br>Default<br>Description
CLAUDE_IMAGE<br>claude-cli:latest<br>Docker image name to use
NOTIFY_ERROR_ICON<br>$XDG_CONFIG_HOME/dunst/critical.png<br>Icon used in desktop error notifications
Example:
CLAUDE_IMAGE=my-claude:dev claude-cli
How it works
On first run (or after -b), the script builds a Docker image based on node:lts with @anthropic-ai/claude-code installed globally. The container user is created with the same UID/GID as the host user to avoid file permission issues on bind-mounted volumes.
The image is tagged claude-cli:latest and reused on subsequent runs until you explicitly rebuild with -b.
About
No description, website, or topics provided.
Resources
Readme
License
BSD-2-Clause license
Uh oh!
There was an error while loading. Please reload this page.
Activity
Stars
stars
Watchers
watching
Forks
forks
Report repository
Releases
No releases published
Packages
Uh oh!
There was an error while loading. Please reload this page.
Contributors
Uh oh!
There was an error while loading. Please reload this page.
Languages
Shell<br>100.0%
You can’t perform that action at this time.