Skip to content

feat: add tilde dotfiles manager#1

Open
aronstrandberg wants to merge 22 commits into
masterfrom
feature/tilde
Open

feat: add tilde dotfiles manager#1
aronstrandberg wants to merge 22 commits into
masterfrom
feature/tilde

Conversation

@aronstrandberg

Copy link
Copy Markdown
Owner

Summary

  • Add tilde command for symlink-based dotfiles management (install, status, uninstall, list, diff)
  • Add bootstrap.zsh for fresh Mac setup (installs Homebrew, Fish, then runs tilde)
  • Replace old rsync-based install scripts with symlink approach
  • Update CLAUDE.md with new workflow documentation

Test Plan

  • tilde list shows all 7 registered components
  • tilde status shows correct installation state with colored output
  • tilde install creates symlinks and handles edge cases (existing files, already installed)
  • tilde uninstall removes symlinks safely
  • tilde diff shows differences for copied files
  • bootstrap.zsh syntax validated with zsh -n
  • All Fish syntax validated with fish -n

🤖 Generated with Claude Code

aronstrandberg and others added 22 commits January 14, 2026 14:40
No longer using jump for directory navigation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Using vim directly instead of redirecting to neovim.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add editor function wrapper and update config function to use it.
This makes it easy to change editor in one place.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use difftastic for structural/semantic diffs instead of diff-so-fancy
pager for prettier output. Difft understands code syntax and provides
more meaningful diffs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add support for machine-specific config files that are gitignored:
- fish/config.local.fish: for env vars like CLAUDE_CODE_USE_VERTEX
- git/.gitconfig.local: for overrides like work email

Both are sourced/included if they exist, with .example templates
provided for reference.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add git push-commit (or git-push-commit in fish) to cherry-pick a
commit onto master and push to a new remote branch without touching
the local working directory.

Uses a temporary git worktree, making it safe to run while other
processes are operating on local git state.

Usage:
  git push-commit <sha> [branch-name]

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Rebase uses 3-way merge which can resolve conflicts that cherry-pick
can't handle. Also adds fetch step to ensure we rebase onto latest
origin/master.

Changes:
- Create worktree at commit instead of origin/master
- Use rebase --onto to replay single commit
- Abort rebase on failure before cleanup
- Update default branch prefix from cherry-pick- to rebase-

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Enables fish to provide git completions when using the g alias.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Captures design patterns for future development: local config overrides
for secrets, stateless git operations via worktrees, fish function
conventions, and component-based structure.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Design for a Fish-native dotfiles tool that uses symlinks
instead of copies, making edits to live configs automatically
tracked in the repo.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
11 tasks covering component registration, all commands,
bootstrap script, docs update, and cleanup of old scripts.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant