Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

49 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Kevin Wolf's Workspace

Demo

A complete macOS development environment configuration using GNU Stow for symlink management.

Prerequisites

  • macOS (tested on Darwin 25.x)
  • Internet connection (for Homebrew packages)
  • Admin access (for changing default shell and installing packages)

Quick Start

bash <(curl -fsSL https://kvnwolf.com/setup-workspace)

The setup script is interactiveβ€”each step can be skipped by pressing ESC.

Repository Development

This repository has no application or development server. Install its pinned tooling and run the quality gate with:

bun install
bunx dobby check

@kvnwolf/dobby provides the repository gate and workflow contract; dobby.config.json records which documentation must stay synchronized with configuration changes.

What Gets Installed

macOS System Defaults

The setup configures these system preferences:

Setting Value Description
Dock auto-hide Enabled Dock hides automatically
Recent apps in Dock Disabled Removes recent apps section from Dock
File extensions Visible Shows all file extensions in Finder
Finder view Column Sets column view as default
Initial key repeat 15 Faster initial key repeat
Key repeat rate 2 Faster key repeat speed

CLI Tools

Command-line tools installed via Homebrew. Some are modern replacements for traditional Unix commands.

Tool Replaces Description
bat cat Syntax highlighting, line numbers, Git integration
btop top Beautiful TUI, mouse support, resource graphs
bun JavaScript runtime and toolkit
claude-code-proxy Run Claude Code with a ChatGPT subscription
curlie curl Colored output, httpie-like formatting
difftastic Structural diff tool
eza ls Icons, colors, Git status integration
fd find Simpler syntax, respects .gitignore, faster
fish User-friendly shell
fisher Fish plugin manager
freeze Code screenshot generator
fzf Fuzzy finder
gh GitHub CLI
git-delta Syntax-highlighting pager for git
jq JSON processor
lazygit Git TUI
mole macOS system cleanup and optimization tool
neovim Hyperextensible Vim-based text editor
node JavaScript runtime, npm and npx
procs ps Colored output, tree view, searchable
ripgrep grep Much faster, respects .gitignore, better defaults
sd Intuitive find & replace
starship Cross-shell prompt
stow Symlink farm manager
tldr man Practical examples instead of verbose manuals
tmux Terminal multiplexer
tokei Code statistics
yazi Blazing fast terminal file manager
zoxide Smarter directory jumping

GUI Applications

Application Description
1Password Password manager
Caffeine Prevent Mac from going to sleep
Claude AI assistant app
CleanShot Screenshot and recording tool
cmux AI-powered terminal multiplexer
Discord Communication platform
Ghostty GPU-accelerated terminal
Google Chrome Web browser
LocalXpose Reverse proxy for localhost
Monologue Voice dictation
OrbStack Docker & Linux on macOS
Raycast Productivity launcher
Slack Team communication
Vanilla Menu bar organizer
WhatsApp Messaging app

Bun Global Packages

Installed via bun install -g during setup, separate from Homebrew.

Package Description
Claude Code AI coding assistant CLI

Shell Configuration

Fish shell becomes the default shell. Below are all shortcuts and configurations organized by tool.

Bun

Abbr Command
b bun
ba bun add
bad bun add --dev
bag bun add --global
bi bun init
bin bun install
br bun run
brd bun run dev
brl bun run lint
brm bun remove
brs bun run setup
bru bun run update
brun bun run unused
brv bun run validate
bx bunx
sk bunx skills@latest
vc bunx vercel@latest

Claude Code

Abbreviations:

All Claude commands follow the pattern cl[c|r][s][d] where:

  • c = continue most recent conversation
  • r = resume by session ID
  • s = skip permissions
  • d = enable debug mode
Abbr Command
cl claude
clc claude --continue
clr claude --resume
cls claude --dangerously-skip-permissions
cld claude --debug
clcs claude --continue --dangerously-skip-permissions
clrs claude --resume --dangerously-skip-permissions
clsd claude --dangerously-skip-permissions --debug
clcd claude --continue --debug
clrd claude --resume --debug
clcsd claude --continue --dangerously-skip-permissions --debug
clrsd claude --resume --dangerously-skip-permissions --debug

Configuration:

  • Default model: Opus with a 1M-token context window
  • Permission mode: Auto
  • Worktrees start from a fresh remote base
  • Fullscreen TUI with automatic notifications and teammate mode
  • Status line: Custom script showing directory, git branch, model, and context usage
  • Enabled integrations: Dobby, Linear, Neon, Vercel, security guidance, Ponytail, and rust-analyzer LSP
  • Co-authored-by: Disabled

OpenAI via claude-code-proxy:

After installing the Brewfile on a new computer, authenticate once with a ChatGPT Plus or Pro account:

claude-code-proxy codex auth login

If the browser does not open automatically, open the URL printed by the login command and leave that terminal running until the callback completes.

Run Claude Code through OpenAI with:

clo

The clo function starts the proxy on demand and tracks every Claude session opened through it. When the last session exits, it prints a notice and stops the proxy automatically. Concurrent clo sessions share the same proxy. If 127.0.0.1:18765 is already responding without a valid proxy PID managed by clo, clo rejects the listener and aborts.

Claude Code uses the gpt-5.6-sol[1m] local context policy and auto-compacts at 272,000 tokens, the documented safe threshold for Codex GPT-5.6 subscription models. The [1m] suffix only controls Claude Code's local policy; it does not enlarge the provider's context window.

The proxy is intentionally not configured as a background service. Its OAuth credential is stored locally and is never committed to this repository. The regular claude command continues to connect directly to Anthropic.

Function Description
clo [args] Run Claude Code with OpenAI Codex using the ChatGPT login

Directory Listing & Navigation

Abbreviations (using eza):

All listing commands follow the pattern l[t][a][f][N] where:

  • t = tree view
  • a = include hidden files (all)
  • f = full details (permissions, size, etc.)
  • N = tree depth (only with t, default: 1)
Abbr Description
l Compact list with icons
la Compact list including hidden files
lf Full details
laf Full details including hidden files
lt Tree view (depth 1)
lt3 Tree view (depth 3)
lta Tree view including hidden files
ltf Tree view with full details
ltaf Tree view with hidden files and full details
ltaf2 Same as above with depth 2

Navigation:

Command Description
.. cd ../
... cd ../../
.... cd ../../../
z <query> Jump to frequently visited directory (zoxide)
mdcd <dir> Create directory and cd into it
cpwd Copy current directory path to clipboard

Git

Abbreviations:

Abbr Command Abbr Command
g git gp git push
ga git add gpb git checkout -
gaa git add --all gpf git push --force-with-lease
gau git add --update gpr git pull --rebase
gb git branch grb git rebase
gba git branch --all grba git rebase --abort
gbd git branch --delete grbc git rebase --continue
gbD git branch --delete --force grbi git rebase --interactive
gc git commit --verbose grh git reset
gca git commit --verbose --all grhh git reset --hard
gcam git commit --all --message gss git status --short
gcb git checkout -b gst git status
gcmsg git commit --message gsta git stash push
gco git checkout gstl git stash list
gd git diff gstp git stash pop
gds git diff --staged gsw git switch
gdt git difftool --tool=difftastic gswc git switch --create
gf git fetch gl git pull
gfa git fetch --all --tags --prune glog git log --oneline --decorate --graph
lg lazygit gloga git log --oneline --decorate --graph --all

Configuration:

  • Default branch: main
  • Pull strategy: Rebase
  • Auto-setup remote: Enabled (push without -u)
  • Merge conflict style: diff3
  • Pager: delta with line numbers and hyperlinks
  • Credential helper: GitHub CLI

GitHub

Function Description
fork <owner/repo> Fork a repo, clone to ~/Developer/github.com/<owner>/<repo>, set up remotes (origin = fork, upstream = original), and configure gh default repo

Also accepts full GitHub URLs: fork https://github.com/owner/repo

Neovim

Abbreviations:

Abbr Command
n nvim
nv nvim
v nvim
vim nvim
vi nvim

EDITOR is set to nvim.

Workspace

Run Claude in the workspace directory from anywhere. Useful for configuring your workspace remotely.

Function Description
ws <prompt> Non-interactive mode with streaming output
wsi [args] Interactive mode

Examples:

# Install a package and add to Brewfile
ws "install ripgrep via brew and add it to the Brewfile"

# Add a new fish abbreviation
ws "add abbreviation 'gc' for 'git commit'"

# Adopt a local config file into the repo
ws "adopt ~/.config/tool/config into shared dotfiles"

# Start interactive session in workspace
wsi

Yazi

Abbr Command
y yazi

Other Shortcuts

Abbr Command
md mkdir -p
pbc pbcopy
pbp pbpaste
reload Reload fish configuration

Prompt (Starship)

Custom prompt showing:

  • Directory (with ~/Developer/github.com/ shortened to ο„“)
  • Git branch with status indicator
  • Right side: package version, runtime versions (Node/Bun), command duration, time

Terminal (Ghostty)

  • Theme: Catppuccin Mocha
  • Font: GeistMono Nerd Font Mono (14pt)
  • Shell integration: Fish
  • Auto-quit: When last window closes
  • Option key: Right Option as Alt
  • Window padding: 16px
  • Background opacity: 90% with blur (radius 50)
  • Unfocused split opacity: 75%
  • Window title: Shows owner/repo for GitHub dirs, ~/path elsewhere; defers to programs that set their own title
  • Scroll sensitivity: Reduced (0.5x)

Split keybindings (prefix: Ctrl+;):

Shortcut Action
prefix + \ Split right
prefix + - Split down
prefix + h/j/k/l Navigate splits
prefix + H/J/K/L Resize splits
prefix + z Toggle split zoom
prefix + = Equalize splits
prefix + x Close split

Terminal Multiplexer (tmux)

Split keybindings (prefix: Ctrl+;):

Shortcut Action
prefix + \ Split vertical
prefix + - Split horizontal
prefix + h/j/k/l Navigate panes
prefix + H/J/K/L Resize panes (repeatable)
prefix + z Toggle pane zoom
prefix + x Close pane

Configuration:

  • Vi mode for copy
  • Mouse support enabled
  • Windows numbered from 1
  • Status bar at the top

How Stow Works

Files in shared/home/ and macos/home/ mirror your home directory structure. Running stow creates symlinks:

shared/home/.config/fish/config.fish  β†’  ~/.config/fish/config.fish
macos/home/.config/fish/conf.d/brew.fish  β†’  ~/.config/fish/conf.d/brew.fish

This means:

  • Edits to dotfiles in the repo automatically apply (no re-stowing needed)
  • Changes are version-controlled and shareable
  • Easy to see what's customized vs default

Customization

  • macOS-only configs: Add to macos/home/
  • Cross-platform configs: Add to shared/home/
  • New Homebrew packages: Add to macos/Brewfile

License

MIT

About

πŸ’» Shareable configs for instant workspace setup

Resources

Stars

3 stars

Watchers

0 watching

Forks

Contributors

Languages