3.4 KiB
Agent Instructions
Screenshots
When the user provides a screenshot path (e.g., /tmp/pi-clipboard-xxx.png), ALWAYS use the read tool to read the image file. Do NOT assume you can see the screenshot contents without reading it first.
Sigil usage (for agents)
This repo is managed by Sigil, a minimal symlink-based dotfile tool.
Repo layout
~/.dotfiles/
<package>/
config.lua
files/ # common files (all OSes)
files.linux/ # Linux-specific overrides
files.macos/ # macOS-specific overrides
files.windows/ # Windows-specific overrides
Each package has a config.lua that defines its target path per OS.
Per-OS file variants
Create files.<os>/ directories alongside files/ for OS-specific overlays:
pi-agent/
files/
settings.json # shared config
files.linux/
agent.json # Linux-specific
files.macos/
agent.json # macOS-specific
On Linux, agent.json links to files.linux/agent.json. On macOS, it links to files.macos/agent.json. Files in files/ are applied first, then OS-specific variants overlay on top.
Common commands
sigil apply— apply symlinks (prompts for stale links)sigil apply --prune— prune stale links without promptingsigil add <path>— add a file/dir to the repo and symlink itsigil status— show stale linkssigil unlink <spec>— restore file(s) to target and remove from reposigil remove <spec>— same as unlink, plus remove package/subpath from repo
Spec formats
unlink/remove accept these:
package(entire package)package:relative/path- repo path:
~/.dotfiles/<pkg>/files/... - target path: e.g.
~/.config/<app>/...
Examples:
sigil unlink wezterm
sigil unlink wezterm:lua
sigil unlink ~/.dotfiles/wezterm/files/wezterm.lua
sigil unlink ~/.config/wezterm/wezterm.lua
Notes
- If a repo file is missing, stale links should be pruned.
- Prefer
sigil addover manual moves intofiles/.
Editing dotfiles
When editing dotfiles, it is preferred to add/edit the files in this project directly, instead of going to the source. this way we can then use sigil apply --prune, and everything will be synced, even when there are new files.
Important: Whenever you add new files to the repo (e.g., create new scripts or configs), you must run sigil apply afterwards to create the symlinks. New files in files/ directories are not automatically linked until sigil apply is run.
IMPORTANT: Update AGENTS.md files when Sigil changes
Whenever Sigil is modified (new features, behavior changes, new commands), you MUST update the AGENTS.md documentation in BOTH locations:
- Sigil repo:
/home/thomasgl/programming/sigil/AGENTS.md - This dotfiles repo:
/home/thomasgl/.dotfiles/AGENTS.md
Keep them in sync so agents have correct instructions regardless of which directory they're working in.
pi extensions
Extensions live in pi/files/agent/extensions/.
Discovery quirk: If package.json has a pi.extensions field, pi only loads those listed extensions and skips auto-discovery of *.ts files. To enable auto-discovery (load all .ts files including symlinks), either:
- Remove the
extensionsfield entirely:"pi": {} - Or delete
package.jsonif you don't need npm dependencies
Multi-file extensions (directories) need an index.ts entry point (or package.json with pi.extensions pointing to the entry file).