Use when adding configuration for a new application to the dotfiles, setting up a new tool's config, or when user says "add config for X"
Add a new application's configuration to Juliet dotfiles with proper stow symlinks.
Juliet manages dotfiles as three stow "packages" under symlinked/, each with its own target:
| Package | Stow command target | Files land in |
|---------|--------------------|---------------|
| symlinked/home/ | ~ | ~/.gitconfig, etc. |
| symlinked/config/ | ~/.config | ~/.config/<app>/ |
| symlinked/local-state/ | ~/.local/state | ~/.local/state/<app>/ |
juliet-bootstrap runs all three stow invocations in symlink-dotfiles on every run — so a new app config added under symlinked/config/ is picked up automatically on other machines; no bootstrap changes are needed.
Folding: stow symlinks at the highest level it can:
~/.config/niri → Juliet/symlinked/config/niri). Files the app later creates inside land in the repo automatically.Prefer folder symlinks: get stow to run before the app first launches, or adopt the app's dir (below).
Create config directory
mkdir -p ~/.config/Juliet/symlinked/config/<app-name>/
Add configuration files
symlinked/config/<app-name>/config, config.toml, settings.json)Run stow to create symlinks
stow --target=$HOME/.config --dir=$HOME/.config/Juliet/symlinked config
Apply Bamboo theme (if applicable)
.claude/rules/theming.mdBefore creating, verify the target doesn't already exist:
ls -la ~/.config/<app-name>
If it exists and is NOT a symlink, back it up first:
mv ~/.config/<app-name> ~/.config/<app-name>.backup
If the app ran before stow (e.g. noctalia on first launch), ~/.config/<app> is a real dir and stow can't fold it into a folder symlink. To adopt it into Juliet:
# 1. Stop the app first — running apps rewrite their config on exit/startup
# and will clobber files moved out from under them
systemctl --user stop <app> # or pkill
# 2. Move its files into the repo
mkdir -p ~/.config/Juliet/symlinked/config/<app>/
mv ~/.config/<app>/* ~/.config/Juliet/symlinked/config/<app>/
# 3. Remove the now-empty real dir and restow (creates the folder symlink)
rmdir ~/.config/<app>
stow --target=$HOME/.config --dir=$HOME/.config/Juliet/symlinked config
# 4. Restart the app and verify it reads/writes through the symlink
Runtime-rewritten files (e.g. noctalia's settings.json): only edit these while the app is stopped, or through the app's own UI — external edits made while it runs get overwritten when it next saves.
# Create directory
mkdir -p ~/.config/Juliet/symlinked/config/fuzzel/
# Create config file
# (write fuzzel.ini content)
# Stow it
stow --target=$HOME/.config --dir=$HOME/.config/Juliet/symlinked config
# Verify
ls -la ~/.config/fuzzel # Should show symlink to Juliet
~/.config/ instead of symlinked/config/stow after adding filesSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer