3.8 KiB
3.8 KiB
CLAUDE.md
This file provides guidance to Claude Code when working with code in this repository.
Overview
This is a personal home directory repository managed as a git repository with selective tracking via .gitignore. The repository tracks dotfiles and configuration for a Debian development environment supporting Node.js, Python, Ruby, Rust, and Go development.
Key Architecture
Arty Configuration
arty.yml defines the repository structure using Arty (artifact/repository manager):
- references: Git subrepositories to clone into specific paths
- scripts: Installation and setup commands
- Manages version managers (nvm, rbenv, pyenv, gvm) and shell configuration
Git Selective Tracking
The .gitignore uses an inverted pattern (ignore everything, then selectively allow):
- Tracks only specific dotfiles and configuration files
- Excludes logs, databases, and temporary files
Development Environment
Language Version Management
- Node.js: Managed by nvm, version specified in
.nvmrc - Ruby: Managed by rbenv, version in
.ruby-version - Python: Managed by pyenv, version in
.python-version - Rust: Via rustup (
.cargo/,.rustup/) - Go: Via gvm (
.gvm/)
Shell Environment
- Shell: Zsh with Oh-My-Zsh framework
- Theme: Powerlevel10k (
.p10k.zsh) - Plugins: zsh-autosuggestions, zsh-syntax-highlighting
- Login Configuration:
.zloginmounts HiDrive storage and creates symbolic links
Common Commands
Environment Setup
# Sync all dependencies (version managers, shell config, etc.)
arty sync
# Install system packages
arty debian/update && arty debian/install
# Install language runtimes
arty node/install # Node.js via nvm
arty ruby/install # Ruby via rbenv
arty python/install # Python via pyenv
arty rust/install # Rust via rustup
# Install global packages
arty npm/install # npm, pnpm, llmx
arty gem/install # bundler
Arty Scripts (from arty.yml)
arty debian/update # Enable non-free repos
arty debian/install # System packages
arty docker/install # Docker Engine
arty rust/install # Rust toolchain
arty node/install # Node.js (uses nvm)
arty ruby/install # Ruby (uses rbenv)
arty python/install # Python (uses pyenv)
arty uv/install # uv Python package manager
arty zed/install # Zed editor
arty claude/install # Claude CLI
arty mattermost/install
arty joplin/install
arty yq/install
arty spotify/install
arty npm/install # npm, pnpm, @valknarthing/llmx
arty gem/install # bundler
Git Workflow
# Stage all changes and check if clean
g0 # alias for: git add . && git diff --quiet && git diff --cached --quiet
# Reset to single commit
g1 # alias for: git reset $(git commit-tree "HEAD^{tree}" -m "A new start")
# Get last commit message
g2 # alias for: git log --format=%B -n 1 HEAD | head -n 1
Repository References (managed by arty)
From arty.yml:
bin/- Custom scripts and executables.llmx/- LLM configuration.nvm/- Node Version Manager.gvm/- Go Version Manager.rbenv/- Ruby Version Manager (includes ruby-build plugin).pyenv/- Python Version Manager.oh-my-zsh/- Oh-My-Zsh frameworkcustom/themes/powerlevel10k/- Powerlevel10k themecustom/plugins/zsh-autosuggestions/custom/plugins/zsh-syntax-highlighting/
Important Notes
- Selective Git Tracking: This repository uses an inverted
.gitignorepattern - everything is ignored by default (*), then specific files are explicitly allowed. - Arty Repository Manager:
arty.ymlmanages git subrepositories. Usearty syncto clone/update all dependencies. - Docker: Use arty to manage docker in this project. Run
arty up -d CONTAINER(s)instead ofarty restart CONTAINER(S). - SSH: Always push with the valknarthing ssh key. Ensure the ssh agent only has one key loaded.