codeforge-dev 1.5.1 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,18 @@
1
1
  # CodeForge Devcontainer Changelog
2
2
 
3
+ ## [v1.5.3] - 2026-02-06
4
+
5
+ ### Added
6
+
7
+ - **Catppuccin Mocha tmux theme**: Replaced barebones tmux config with Catppuccin v2.1.3. Rounded window tabs, Nerd Font icons, transparent status bar, colored pane borders. Installed at build time via shallow git clone (~200KB, ~2s)
8
+
9
+ ### Fixed
10
+
11
+ - **cc/claude aliases**: Converted from shell functions to simple aliases — functions were not reliably invoked across shell contexts (tmux, docker exec, external terminals), causing Claude to launch without config
12
+ - **CLAUDE_CONFIG_DIR export**: Now exported in `.bashrc`/`.zshrc` directly, so credentials are found in all shells (not just VS Code terminals where `remoteEnv` applies)
13
+
14
+ ---
15
+
3
16
  ## [v1.5.0] - 2026-02-06
4
17
 
5
18
  ### Added
@@ -5,9 +5,11 @@ Installs tmux for Claude Code Agent Teams split-pane support.
5
5
  ## What This Provides
6
6
 
7
7
  - **tmux** terminal multiplexer for managing multiple terminal sessions
8
+ - **Catppuccin Mocha** theme with rounded window tabs and Nerd Font icons
8
9
  - Pre-configured for Claude Code Agent Teams with optimized settings
9
10
  - Mouse support enabled for easy pane navigation
10
- - Clean status bar showing session info
11
+ - True color support (works with WezTerm, iTerm2, and other modern terminals)
12
+ - Transparent status bar background (inherits terminal theme)
11
13
 
12
14
  ## Claude Code Agent Teams Integration
13
15
 
@@ -7,46 +7,65 @@ echo "Installing tmux for Claude Code Agent Teams..."
7
7
  apt-get update
8
8
  apt-get install -y tmux
9
9
 
10
- # Create a basic tmux config optimized for Claude Code teams
10
+ # Install Catppuccin theme (shallow clone for fast builds)
11
+ CATPPUCCIN_DIR="/usr/share/tmux/plugins/catppuccin"
12
+ echo "Installing Catppuccin tmux theme..."
13
+ mkdir -p "$(dirname "$CATPPUCCIN_DIR")"
14
+ git clone --depth 1 -b v2.1.3 https://github.com/catppuccin/tmux.git "$CATPPUCCIN_DIR"
15
+ # Remove .git to save space (we pinned the version, don't need history)
16
+ rm -rf "$CATPPUCCIN_DIR/.git"
17
+
18
+ # Create tmux config optimized for Claude Code teams + Catppuccin Mocha
11
19
  TMUX_CONF="/etc/tmux.conf"
12
20
  cat > "$TMUX_CONF" << 'EOF'
13
21
  # Claude Code Agent Teams - tmux configuration
22
+ # Theme: Catppuccin Mocha
14
23
 
15
- # Enable mouse support for pane selection
24
+ # ── Core Settings ──────────────────────────────────────────────
16
25
  set -g mouse on
17
-
18
- # Start window numbering at 1
19
26
  set -g base-index 1
20
27
  setw -g pane-base-index 1
21
-
22
- # Increase scrollback buffer
23
28
  set -g history-limit 10000
24
-
25
- # Reduce escape time for better responsiveness
26
29
  set -sg escape-time 10
30
+ set -g focus-events on
31
+ set -g renumber-windows on
32
+
33
+ # ── True Color Support ─────────────────────────────────────────
34
+ set -g default-terminal "tmux-256color"
35
+ set -ga terminal-overrides ",*256col*:Tc"
36
+ set -ga terminal-overrides ",xterm-256color:RGB"
27
37
 
28
- # Status bar configuration
29
- set -g status-style 'bg=#1e1e2e fg=#cdd6f4'
30
- set -g status-left '[#S] '
31
- set -g status-right '%H:%M '
32
- set -g status-left-length 20
38
+ # ── Catppuccin Theme ──────────────────────────────────────────
39
+ set -g @catppuccin_flavor "mocha"
33
40
 
34
- # Pane border styling
35
- set -g pane-border-style 'fg=#45475a'
36
- set -g pane-active-border-style 'fg=#89b4fa'
41
+ # Window tabs: rounded style with Nerd Font icons
42
+ set -g @catppuccin_window_status_style "rounded"
43
+ set -g @catppuccin_window_text " #W"
44
+ set -g @catppuccin_window_current_text " #W"
45
+ set -g @catppuccin_window_flags "icon"
46
+ set -g @catppuccin_window_number_position "left"
37
47
 
38
- # Window status
39
- setw -g window-status-current-style 'fg=#1e1e2e bg=#89b4fa bold'
40
- setw -g window-status-current-format ' #I:#W '
41
- setw -g window-status-style 'fg=#cdd6f4'
42
- setw -g window-status-format ' #I:#W '
48
+ # Pane borders: colored with active pane indicator
49
+ set -g @catppuccin_pane_status_enabled "yes"
50
+ set -g @catppuccin_pane_border_status "top"
43
51
 
44
- # Enable true color support
45
- set -g default-terminal "tmux-256color"
46
- set -ga terminal-overrides ",*256col*:Tc"
52
+ # Status bar background: transparent (inherit terminal bg)
53
+ set -g @catppuccin_status_background "none"
54
+
55
+ # Status bar: left side
56
+ set -g status-left ""
57
+
58
+ # Status bar: right side — session name + date/time
59
+ set -g @catppuccin_date_time_text " %H:%M"
60
+ set -g status-right "#{E:@catppuccin_status_session}"
61
+ set -agF status-right "#{E:@catppuccin_status_date_time}"
62
+
63
+ # Load Catppuccin (must come after all @catppuccin settings)
64
+ run /usr/share/tmux/plugins/catppuccin/catppuccin.tmux
47
65
  EOF
48
66
 
49
67
  echo "tmux installed successfully"
50
68
  echo " - Config: $TMUX_CONF"
69
+ echo " - Theme: Catppuccin Mocha"
51
70
  echo " - Use 'tmux new -s claude-teams' to start a session"
52
71
  echo " - Claude Code Agent Teams will auto-detect tmux when available"
@@ -1,80 +1,67 @@
1
1
  #!/bin/bash
2
- # Setup claude/cc functions for claude with local system prompt support
2
+ # Setup cc/claude/ccraw aliases for claude with local system prompt support
3
3
 
4
4
  CLAUDE_DIR="${CLAUDE_CONFIG_DIR:?CLAUDE_CONFIG_DIR not set}"
5
5
 
6
6
  echo "[setup-aliases] Configuring Claude aliases..."
7
7
 
8
- # Shared function for claude with local config (used by both cc and claude)
9
- CLAUDE_FUNCTION='_claude_with_config() {
10
- local LOCAL_PROMPT=".claude/system-prompt.md"
11
- local DEFAULT_PROMPT="/workspaces/.devcontainer/config/main-system-prompt.md"
12
- local LOCAL_SETTINGS=".claude/settings.json"
13
- local DEFAULT_SETTINGS="/workspaces/.devcontainer/config/settings.json"
14
-
15
- mkdir -p .claude
16
-
17
- if [ ! -f "$LOCAL_PROMPT" ]; then
18
- cp "$DEFAULT_PROMPT" "$LOCAL_PROMPT"
19
- echo "[claude] Created $LOCAL_PROMPT from default"
20
- fi
21
-
22
- if [ ! -f "$LOCAL_SETTINGS" ]; then
23
- cp "$DEFAULT_SETTINGS" "$LOCAL_SETTINGS"
24
- echo "[claude] Created $LOCAL_SETTINGS from default"
25
- fi
26
-
27
- command claude --system-prompt-file "$LOCAL_PROMPT" --permission-mode plan --allow-dangerously-skip-permissions "$@"
28
- }
29
-
30
- # cc: shorthand for claude with config
31
- cc() { _claude_with_config "$@"; }
32
-
33
- # claude: override to use config (use ccraw for vanilla)
34
- claude() { _claude_with_config "$@"; }
35
-
36
- # ccraw: vanilla claude without any config
37
- alias ccraw="command claude"'
8
+ # Simple alias definitions (not functions functions don't behave reliably across shell contexts)
9
+ ALIAS_CC='alias cc='"'"'command claude --system-prompt-file .claude/system-prompt.md --permission-mode plan --allow-dangerously-skip-permissions'"'"''
10
+ ALIAS_CLAUDE='alias claude='"'"'command claude --system-prompt-file .claude/system-prompt.md --permission-mode plan --allow-dangerously-skip-permissions'"'"''
11
+ ALIAS_CCRAW='alias ccraw="command claude"'
38
12
 
39
13
  for rc in ~/.bashrc ~/.zshrc; do
40
14
  if [ -f "$rc" ]; then
41
- # Remove old cc alias/function if present
15
+ # --- Cleanup old definitions ---
16
+
17
+ # Remove old cc alias
42
18
  if grep -q "alias cc=" "$rc" 2>/dev/null; then
43
19
  sed -i '/alias cc=/d' "$rc"
44
20
  echo "[setup-aliases] Removed old cc alias from $(basename $rc)"
45
21
  fi
22
+ # Remove old cc function (single-line or multi-line)
46
23
  if grep -q "^cc()" "$rc" 2>/dev/null; then
47
- # Remove old cc function (multi-line)
48
24
  sed -i '/^cc() {/,/^}/d' "$rc"
49
25
  echo "[setup-aliases] Removed old cc function from $(basename $rc)"
50
26
  fi
51
- # Remove old specwright alias if present
52
- if grep -q "alias specwright=" "$rc" 2>/dev/null; then
53
- sed -i '/alias specwright=/d' "$rc"
54
- echo "[setup-aliases] Removed specwright alias from $(basename $rc)"
55
- fi
56
- # Remove old _claude_with_config function if present
27
+ # Remove old _claude_with_config function
57
28
  if grep -q "^_claude_with_config()" "$rc" 2>/dev/null; then
58
29
  sed -i '/^_claude_with_config() {/,/^}/d' "$rc"
30
+ echo "[setup-aliases] Removed old _claude_with_config function from $(basename $rc)"
59
31
  fi
60
- # Remove old claude function override if present
32
+ # Remove old claude function override
61
33
  if grep -q "^claude() {" "$rc" 2>/dev/null; then
62
34
  sed -i '/^claude() { _claude_with_config/d' "$rc"
35
+ echo "[setup-aliases] Removed old claude function from $(basename $rc)"
36
+ fi
37
+ # Remove old claude alias
38
+ if grep -q "alias claude=" "$rc" 2>/dev/null; then
39
+ sed -i '/alias claude=/d' "$rc"
63
40
  fi
64
- # Remove old ccraw alias if present
41
+ # Remove old ccraw alias
65
42
  if grep -q "alias ccraw=" "$rc" 2>/dev/null; then
66
43
  sed -i '/alias ccraw=/d' "$rc"
67
44
  fi
68
- # Add functions if not present
69
- if ! grep -q "^_claude_with_config()" "$rc" 2>/dev/null; then
70
- echo "" >> "$rc"
71
- echo "$CLAUDE_FUNCTION" >> "$rc"
72
- echo "[setup-aliases] Added claude functions to $(basename $rc)"
45
+ # Remove old specwright alias
46
+ if grep -q "alias specwright=" "$rc" 2>/dev/null; then
47
+ sed -i '/alias specwright=/d' "$rc"
48
+ fi
49
+
50
+ # --- Add environment and aliases ---
51
+ echo "" >> "$rc"
52
+ echo "# Claude Code environment and aliases (managed by setup-aliases.sh)" >> "$rc"
53
+ # Export CLAUDE_CONFIG_DIR so it's available in all shells (not just VS Code remoteEnv)
54
+ if ! grep -q 'export CLAUDE_CONFIG_DIR=' "$rc" 2>/dev/null; then
55
+ echo "export CLAUDE_CONFIG_DIR=\"${CLAUDE_CONFIG_DIR}\"" >> "$rc"
73
56
  fi
57
+ echo "$ALIAS_CC" >> "$rc"
58
+ echo "$ALIAS_CLAUDE" >> "$rc"
59
+ echo "$ALIAS_CCRAW" >> "$rc"
60
+ echo "[setup-aliases] Added aliases to $(basename $rc)"
74
61
  fi
75
62
  done
76
63
 
77
64
  echo "[setup-aliases] Aliases configured:"
78
- echo " claude -> claude with local .claude/system-prompt.md (auto-created from defaults)"
79
- echo " cc -> shorthand for claude with config"
65
+ echo " cc -> claude with local .claude/system-prompt.md"
66
+ echo " claude -> claude with local .claude/system-prompt.md"
80
67
  echo " ccraw -> vanilla claude without any config"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeforge-dev",
3
- "version": "1.5.1",
3
+ "version": "1.5.3",
4
4
  "description": "Complete development container that sets up Claude Code with modular devcontainer features, modern dev tools, and persistent configurations. Drop it into any project and get a production-ready AI development environment in minutes.",
5
5
  "main": "setup.js",
6
6
  "bin": {