This is my dotfiles repo. There are many like it, but this one is mine.
Aggregated instructions and skills shared by all agents.
Run the installation script:
./agents/install.shIt copies AGENTS.md and skills/ into ~/.agents/, links Claude's instructions and skills to them, and links Pi's AGENTS.md to the shared instructions.
Pi discovers ~/.agents/skills/ directly. Re-running the script picks up every skill directory in that location.
- AGENTS.md: Global instructions defining my coding preferences.
- skills/find-skills: Finds and installs skills from the open skill ecosystem, from vercel-labs/skills.
- skills/my-servers: My registry of remote servers and how to reach them over SSH.
Pi is my currently preferred harness because CC is driving me insane since Opus 5.
-
Install Pi:
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
-
Install the shared instructions and skills (see Agents).
-
Install the Pi-specific settings and resources:
./pi/install.sh
-
Install or update the configured Pi packages:
pi update --extensions
- settings.json: Theme, default model and thinking level, and package declarations.
- extensions/statusline.ts: Custom footer showing model, context usage, diff statistics, token counts, cost, and Pi version.
- themes/sukiboo.json: Custom theme based on my terminal palette.
- package.json and tsconfig.json: Local TypeScript diagnostics for the extension.
- Authentication, sessions, generated images, package caches, and other machine-local state are intentionally excluded.
Install the development dependencies before editing or checking the extension:
npm install --prefix pi
npm run check --prefix piClaude is love, Claude is life.
-
Install the shared instructions and skills (see Agents).
-
Copy the Claude-specific files from
claude/to~/.claude/:mkdir -p ~/.claude && cp claude/settings.json claude/statusline-command.sh ~/.claude/
-
Ensure
bash,bc, andjqare installed for the custom status line.
- settings.json: Permission rules, enabled plugins, and model, theme, and effort preferences.
- statusline-command.sh: Custom status line showing model, context usage, token counts, and cost.
- Global instructions and skills are symlinked from
~/.agents/, not stored here.
VSCode is my IDE of choice nowadays (again!), mainly because of seamless Claude Code integration. When every "Agentic IDE" is a "VSCode fork", why not use the original?
- Copy files from
code/User/to~/.config/Code/User/:cp -r code/User/* ~/.config/Code/User/
Editor settings, Python/Lua/Jupyter config, Claude Code integration, and UI preferences.
Cursor is where the work happens nowadays because AI (well, maybe not anymore...). My preferred configuration -- minimal UI, no AI suggestions, format on save.
To use this Cursor configuration:
-
Install Cursor (if not already installed):
- Download from cursor.sh
-
Copy files from
cursor/User/to~/.config/Cursor/User/:cp -r cursor/User/* ~/.config/Cursor/User/
Editor settings, keybindings (F5 for Python), Python config, and UI preferences.
My GNOME Terminal color scheme. Nothing fancy, just a dark theme with a custom color palette that I find a bit more pleasant to look at -- and I do have to look at terminals a lot.
To use this terminal color configuration:
-
Navigate to the
terminal/directory:cd terminal/ -
Run the installation script:
./install.sh
The script will automatically generate a new profile UUID and set it as default.
-
Restart your terminal for changes to take effect.
Custom 16-color dark palette, bold-is-bright, and profile settings.
My Geany configuration. It's a nice lightweight IDE that was my go-to prior to Cursor, and I still choose it for non-AI workflows (even though those are becoming excessively rare).
To use this Geany configuration:
-
Install Geany, the Auto-mark plugin, and built-in terminal support:
sudo apt install geany geany-plugin-automark libvte9
-
Copy files from
geany/to~/.config/geany/:cp -r geany/* ~/.config/geany/
-
Enable the Auto-mark plugin:
- Tools → Plugin Manager → Enable Auto-mark
-
Change colorscheme (optional):
- View → Change Color Scheme... → Select desired scheme
-
Configure build commands (optional):
- Build → Set Build Commands
- Execute commands:
- Run:
python3 %f - Run in Python:
python3 -i %f
- Run:
Colorschemes, keybindings, filetype definitions, and editor settings.
Pre-commit configuration (.pre-commit-config.yaml) that I use in my Python projects so that my code doesn't look like shit.
To use this pre-commit configuration in a repository:
- Copy the
.pre-commit-config.yamlfile fromprecommit/to the project root - Install pre-commit (if not already installed):
pip install pre-commit
- Install the git hooks:
pre-commit install
- Pre-commit hooks will automatically run on
git commit - To run hooks manually on all files:
pre-commit run --all-files
- To update hooks to latest versions:
pre-commit autoupdate
File validation, code quality, security (bandit), Python tools (mypy, isort, flake8, black), and Jupyter support via nbQA.
My Texmaker configuration. An open source LaTeX editor with syntax highlighting and integrated PDF viewer from the good old PhD days.
To use this Texmaker configuration:
-
Install Texmaker:
sudo apt install texmaker
-
Copy the Texmaker configuration to
~/.config/xm1/:mkdir -p ~/.config/xm1 cp -r texmaker/xm1/. ~/.config/xm1/
Editor settings, build commands, spell checker dictionary, and view preferences.