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
|
-
-
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
#
|
|
29
|
-
set -g
|
|
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
|
-
#
|
|
35
|
-
set -g
|
|
36
|
-
set -g
|
|
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
|
-
#
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
#
|
|
45
|
-
set -g
|
|
46
|
-
|
|
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/
|
|
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
|
-
#
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
#
|
|
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
|
|
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
|
|
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
|
|
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
|
-
#
|
|
69
|
-
if
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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 "
|
|
79
|
-
echo "
|
|
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.
|
|
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": {
|