Shared procedures and slash commands from dotfiles knowledge base
You can install this plugin from any of these themed marketplaces. Choose one, add it as a marketplace, then install the plugin.
Choose your preferred installation method below
A marketplace is a collection of plugins. Every plugin gets an auto-generated marketplace JSON for individual installation, plus inclusion in category and themed collections. Add a marketplace once (step 1), then install any plugin from it (step 2).
One-time setup for access to all plugins
When to use: If you plan to install multiple plugins now or later
Step 1: Add the marketplace (one-time)
/plugin marketplace add https://claudepluginhub.com/marketplaces/all.json
Run this once to access all plugins
Step 2: Install this plugin
/plugin install dotfiles-commands-2@all
Use this plugin's auto-generated marketplace JSON for individual installation
When to use: If you only want to try this specific plugin
Step 1: Add this plugin's marketplace
/plugin marketplace add https://claudepluginhub.com/marketplaces/plugins/dotfiles-commands-2.json
Step 2: Install the plugin
/plugin install dotfiles-commands-2@dotfiles-commands-2
A collection of configuration files for a consistent development environment across different machines.
Our dotfiles repository follows three core principles that guide our approach to configuration management:
The "spilled coffee principle" states that anyone should be able to destroy their machine and be fully operational again that afternoon. This principle emphasizes:
❌ Common Violations - Manual Terminal Heroics:
Like Brent from The Phoenix Project, we often become the constraint by being the "go-to hero" who fixes things manually. These commands are perfectly valid IN SCRIPTS, but become anti-patterns when typed directly in terminal:
# IN TERMINAL (BAD - Makes you Brent, the bottleneck hero):
dotfiles (main) $ ln -s mcp/mcp.json .mcp.json # Works today, forgotten tomorrow
dotfiles (main) $ mv .bashrc .bashrc.backup # Your knowledge, lost when you leave
dotfiles (main) $ chmod 600 ~/.bash_secrets # New teammate: "Why doesn't this work?"
dotfiles (main) $ mkdir -p ~/ppv/pillars # "It worked on my machine..."
dotfiles (main) $ echo "alias q='q'" >> ~/.bashrc # Snowflake environment alert!
dotfiles (main) $ curl -o tool.tar.gz https://... # Downloaded where? What version?
# The exact violation that inspired this documentation:
dotfiles (feature/vendor-agnostic-mcp-692) $ ln -s mcp/mcp.json .mcp.json
# ↑ I actually did this! Then immediately undid it and wrote a script instead.
The Brent Test: If you get hit by a bus (or take vacation), can someone else recreate what you did? If it's only in your terminal history, you're being Brent.
✅ The Same Commands in Scripts (GOOD - No More Brent!):
# IN SCRIPTS (GOOD - Knowledge is codified, not tribal):
# setup-vendor-agnostic-mcp.sh
ln -s mcp/mcp.json "$REPO_ROOT/.mcp.json" # Reproducible by anyone
# setup.sh
mkdir -p "$HOME/ppv/pillars" # Self-documenting
chmod 600 ~/.bash_secrets # Security automated
# install-tool.sh
download_and_install_tool() {
curl -o "$TEMP_DIR/tool.tar.gz" https://... # Version controlled
}
The Phoenix Principle: Move from "Brent did it" to "The system does it". Every terminal command that changes state should become code, removing key person dependencies.
The Litmus Test: Can you destroy your laptop, get a new one, run git clone && ./setup.sh
, and be back to exactly where you were? If not, you've been a hero instead of a steward.
This principle ensures resilience and quick recovery from system failures or when setting up new environments.
See Snowball Method - compound returns through stacking daily wins. This principle ensures that our development environment continuously improves over time through 1% better every day.
This system avoids traditional IDEs to enable macro-level task management instead of micro-level file editing. Using tmux + git worktrees + Claude Code CLI, you manage multiple AI agents simultaneously across parallel tasks - the foundation for 1000x AI engineer productivity. See throughput definition and OSE principle.
This repository uses a modular approach to shell configuration:
# Load modular alias files from .bash_aliases.d directory
if [ -d "$HOME/.bash_aliases.d" ]; then
for module in "$HOME/.bash_aliases.d"/*.sh; do
if [ -f "$module" ]; then
source "$module"
fi
done
fi
This pattern provides:
Modules are stored in .bash_aliases.d/<tool-name>.sh
and are automatically loaded when present.
This repository is part of the P.P.V system, a holistic approach to organizing knowledge work and digital assets:
This organizational system provides a clear mental model for where different types of work should live:
/home/user/
└── ppv/ # Root directory for P.P.V system
├── pillars/ # Foundational repositories and configurations
│ └── dotfiles/ # 📍 YOU ARE HERE - core configuration files
├── pipelines/ # Automation and workflow repositories
└── vaults/ # Secure storage and tribal knowledge
The P.P.V system helps maintain separation of concerns while providing a consistent structure across all projects and environments. It reflects systems thinking and the interconnectedness of different components in your workflow.
Key aspects:
tools.md
can link to tribal knowledge in Vaults using URI schemesFollowing "Remember the Big Picture" from The Pragmatic Programmer - don't get so engrossed in system optimization details that you lose momentum on core work. In this dotfiles repo:
Avoid obsessing over obscure details like perfect editor configs or tmux panel layouts. The goal is systems that enable work, not systems as an end in themselves.
At an even higher level, this is all about creating value by serving others. Systems optimization plants seeds for higher leverage to serve better, but must be balanced with actually delivering that service. The "up high and slightly elevated" manager's perspective maintains this balance - constantly checking: "Am I committing real value? Are deliverables moving forward?"
This serving mindset acknowledges the tension as a pendulum rather than trying to eliminate it. Like Ecclesiastes 3:1 says, there's a season for everything - sometimes lean into systems work to build leverage, sometimes focus purely on delivery. The key is conscious awareness and feedback loops, always returning to: "How does this serve others better?"
This principle establishes that configurations in dotfiles should default to global application unless explicitly marked otherwise. This aligns with the fundamental purpose of a dotfiles repository - to provide consistent configuration across your entire system.
Core Principle: When implementing features, bias toward global configuration over local. Dotfiles are for global configuration.
Implementation Guidelines:
Examples:
claude
alias with --mcp-config
(global by default)~/.bashrc
(apply everywhere)~/.claude/settings.json
(work in progress, see #577)Documentation Distinction:
When in doubt, ask: "Should this apply everywhere I code?" If yes → global configuration. If it's specific to how this dotfiles repo works → document it here in README.md.
This repository follows specific organizational patterns to maintain consistency and clarity:
At the root level, configurations are organized by platform or environment:
arch-linux/
- Configurations specific to Arch Linux systemsraspberry-pi/
- Configurations for Raspberry Pi devicesnvim/
- Text editor configurations (legacy/optional)This structural organization makes it clear which files apply to which environments.
Within each platform directory, we use a hybrid approach combining categories and specific use cases:
raspberry-pi/
├── home/ # Home use cases
│ ├── home-assistant/ # Smart home hub
│ └── media-server/ # Media streaming
├── development/ # Development use cases
│ └── ci-runner/ # Self-hosted CI/CD
└── networking/ # Networking use cases
└── network-monitor/ # Traffic analysis
This approach:
The actual implementation of features follows these principles:
This multi-level organizational approach allows us to maintain a clean repository structure while providing flexibility for different use cases.
Get started with your personalized environment:
# Clone the repository and run setup
git clone https://github.com/atxtechbro/dotfiles.git ~/ppv/pillars/dotfiles
cd ~/ppv/pillars/dotfiles
source setup.sh
The setup script automatically handles:
Following the "Spilled Coffee Principle" - the setup script ensures you can be fully operational after running it once.
For working on multiple features simultaneously, we support git worktrees:
# Create a new worktree for your feature
cd ~/ppv/pillars/dotfiles
git worktree add -b feature/my-feature worktrees/feature/my-feature
# Set up the worktree environment
cd worktrees/feature/my-feature
source setup.sh
Each worktree is self-contained with its own MCP servers, binaries, and dependencies. See docs/worktree-development.md for detailed instructions.
This repository automatically configures global context for multiple AI development harnesses from a single source of truth:
q mcp import --file mcp/mcp.json global --force
)--mcp-config mcp/mcp.json
)All context is sourced from the knowledge/
directory and MCP servers are configured identically across harnesses.
Both AI harnesses use identical MCP server configurations through different integration methods:
# Single source of truth
GLOBAL_MCP_CONFIG="$DOT_DEN/mcp/mcp.json"
# Claude Code: Direct file reference
alias claude='claude --mcp-config "$GLOBAL_MCP_CONFIG" --add-dir "$DOT_DEN/knowledge"'
# Amazon Q: Automatic import
alias q='q mcp import --file "$GLOBAL_MCP_CONFIG" global --force >/dev/null 2>&1; command q'
Crisis Resilience: When Claude Code experiences 500 "Overloaded" errors, Amazon Q provides identical MCP server access and capabilities. This harness agnosticism ensures uninterrupted workflow during service outages.
Available MCP Servers: Both harnesses get access to git operations, GitHub integration, filesystem operations, knowledge directory context, and work-specific servers (when WORK_MACHINE=true
).
Global Claude Code settings are managed through .claude/settings.json
. This file is symlinked to ~/.claude/settings.json
by the setup script, ensuring settings persist across all projects.
To add or modify Claude Code settings:
.claude/settings.json
in the dotfiles reposource setup.sh
to update the symlinkCurrent configured settings include co-authorship attribution, MCP servers, permissions, and more.
Share slash commands across repos via Claude Code's plugin system.
Commands: /close-issue
, /create-issue
, /extract-best-frame
, /retro
Install (in a Claude Code chat):
/plugin marketplace add atxtechbro/dotfiles
/plugin install dotfiles-commands@atxtechbro
Then restart Claude Code for commands to appear in autocomplete.
Commands symlink to knowledge/procedures/
for single source of truth.
The dotfiles provide global access to MCP (Model Context Protocol) servers from any directory on your system. After running source setup.sh
, MCP servers are automatically available through the claude
command alias.
mcp/mcp.json
claude
command is aliased to include --mcp-config
automatically.mcp.json
files to each project directory# Standard claude command (includes global MCP config automatically)
claude "What files are in this directory?"
# Check current MCP configuration
claude-mcp-info
# Use strict global config (ignores any local .mcp.json files)
claude-global "Run a command with only global MCP servers"
# Add user-scoped servers (persists across all projects)
claude mcp add my-server -s user /path/to/server
The dotfiles include pre-configured MCP servers for:
Note: Git, GitHub, and web search are handled natively by Claude Code (experiment #1213)
Personal machines automatically use the Opus model (claude-opus-4-20250514) for maximum capability. This is controlled by the WORK_MACHINE
environment variable:
WORK_MACHINE="false"
in ~/.bash_exports.local
→ Opus model by defaultWORK_MACHINE="true"
→ Standard model selectionNo manual model switching required - the correct model is automatically selected based on your machine type.
Sensitive information like API tokens are stored in ~/.bash_secrets
(not tracked in git).
# Create your personal secrets file from the example template
cp ~/ppv/pillars/dotfiles/.bash_secrets.example ~/.bash_secrets
# Set proper permissions to protect your secrets
chmod 600 ~/.bash_secrets
# Edit the file to add your specific secrets
nano ~/.bash_secrets
The .bash_secrets
file is automatically loaded by .bashrc
. It provides a framework for managing your secrets and environment variables, with examples of common patterns. You should customize it based on your needs.
For company-specific secrets, consider maintaining a separate private repository in your Vaults directory.
1.0.0