Personal dev container features for configuring development environments.
Installs Fish shell and Starship prompt.
| Option | Type | Default |
|---|---|---|
fishGreeting |
string | Glub glub! 🐟 🐠 |
Configures git to use SSH commit signing when an agent is available. Detects keys automatically at container start.
| Option | Type | Default |
|---|---|---|
gitUserName |
string | "" |
gitUserEmail |
string | "" |
gitAliases |
boolean | true |
Includes git aliases (st, co, br), pull.rebase=true, autocrlf=input, and init.defaultBranch=main.
Installs direnv and configures shell hooks for bash, zsh, and fish. Enables load_dotenv by default so .env files are automatically loaded.
| Option | Type | Default |
|---|---|---|
version |
string | "latest" |
The version option accepts "latest", "system", or a specific version like "2.34.0".
Persists Claude Code configuration across container rebuilds using Docker named volumes.
| Option | Type | Default | Description |
|---|---|---|---|
persistClaudeDir |
boolean | true |
Persist ~/.claude/ directory (history, projects, settings) |
persistClaudeJson |
boolean | false |
Persist ~/.claude.json file (auth/config) |
sharedAcrossContainers |
boolean | false |
Reserved for future use |
Use alongside a Claude Code installation feature (e.g., ghcr.io/anthropics/devcontainer-features/claude-code).
Add features to your devcontainer.json:
{
"features": {
"ghcr.io/esimkowitz/devcontainer-features/fish-starship:1": {},
"ghcr.io/esimkowitz/devcontainer-features/ssh-signing:1": {},
"ghcr.io/esimkowitz/devcontainer-features/direnv:1": {},
"ghcr.io/esimkowitz/devcontainer-features/claude-code-persistence:1": {}
}
}VS Code automatically forwards your SSH agent into dev containers. The ssh-signing feature detects this at shell login and configures git commit signing automatically — no additional configuration needed.