This guide enables persistent visual ADD Flow status in Claude Code's interface. Instead of seeing flow status only in conversation messages, you get a live statusline at the bottom of your Claude Code window that updates automatically as you work.
What you'll see:
[ADD Flow: 🔴+ Assess | Exploring implementation options]
Real-time realm tracking (🔴 Assess, 🟠 Decide, 🟢 Do) with contextual pattern descriptions.
Benefits:
- Ambient awareness - Always visible, never intrusive
- Real-time updates - Changes as conversation progresses
- Visual realm tracking - Color-coded for quick recognition
- Session metrics - Tracked internally, available on request
- Project-specific - Each project maintains its own flow state
When it's valuable:
- Long coding sessions where flow awareness helps
- Complex projects with frequent context switching
- Learning ADD framework patterns through visual feedback
- ADHD users who benefit from persistent visual cues
Required:
- Claude Code installed and working
- ADD framework integrated (see main README)
- Basic command line familiarity
Recommended:
- Understanding of ADD framework realms (Assess/Decide/Do)
- Familiarity with
.claude/settings.jsonconfiguration
Option A: Copy from templates (Recommended)
# From your project root
cp templates/claude-code/statusline.sh .claude/statusline.sh
chmod +x .claude/statusline.shOption B: Create manually
- Create the script file:
mkdir -p .claude
touch .claude/statusline.sh
chmod +x .claude/statusline.sh- Copy the script content from templates/claude-code/statusline.sh into
.claude/statusline.sh
Create or update .claude/settings.json in your project root:
{
"statusLine": {
"type": "command",
"command": ".claude/statusline.sh",
"padding": 0
}
}What this does:
- Tells Claude Code to run
.claude/statusline.shfor statusline content - Updates automatically when conversation messages change (max 300ms)
- Reads from
.add-statusfile for current state
Test the script manually:
./.claude/statusline.shExpected output:
[ADD Flow: Initializing exchange]
If you see this, the script works! The statusline will start displaying once .add-status file is created during your first ADD-aware conversation.
Check Claude Code:
- Restart Claude Code (or reload window)
- Start a conversation
- Look at the bottom of the interface for the statusline
┌─────────────────────────────────────────────┐
│ Claude (in conversation) │
│ Generates flow status during responses │
└─────────────────┬───────────────────────────┘
│ writes
▼
┌───────────────┐
│ .add-status │ (session state file)
└───────┬───────┘
│ reads
▼
┌──────────────────────┐
│ statusline.sh │ (display script)
└──────────┬───────────┘
│ outputs
▼
┌─────────────────────────────┐
│ Claude Code Statusline │
│ [ADD Flow: 🔴+ Assess...] │
└─────────────────────────────┘
.add-status contents:
REALM|EMOJI|PATTERN_DESCRIPTION|EXCHANGES|TRANSITIONS
Example:
Assess|🔴+|Exploring options - gathering context|12|2
Fields:
REALM: Assess, Decide, or DoEMOJI: Realm symbol (🔴+, 🟠?, 🟢-)PATTERN_DESCRIPTION: Contextual description of current activityEXCHANGES: Number of user-assistant exchangesTRANSITIONS: Number of realm changes
Display format:
[ADD Flow: 🔴+ Assess | Exploring options - gathering context]
Metrics (exchanges, transitions) are tracked but not displayed. Ask Claude in natural language to see them:
- "How many exchanges have we had?"
- "Show me session metrics"
- "What's my flow status?"
Edit .claude/statusline.sh color codes:
# ANSI color codes
RED='\033[0;31m' # Assess realm
ORANGE='\033[0;33m' # Decide realm
GREEN='\033[0;32m' # Do realm
RESET='\033[0m'
BOLD='\033[1m'Modify the output line in statusline.sh:
# Current format
echo -e "[${BOLD}ADD Flow:${RESET} ${COLOR}${emoji} ${realm}${RESET} | ${pattern}]"
# Add project name
echo -e "[${PROJECT_NAME} - ADD Flow: ${COLOR}${emoji} ${realm}${RESET} | ${pattern}]"
# Shorter format
echo -e "[${COLOR}${emoji} ${realm}${RESET} | ${pattern}]"Uncomment this line in statusline.sh:
# Add after pattern
echo -e "[${BOLD}ADD Flow:${RESET} ${COLOR}${emoji} ${realm}${RESET} | ${pattern} - ${exchanges}ex, ${transitions}tr]"Check 1: Script exists and is executable
ls -la .claude/statusline.shShould show -rwxr-xr-x (executable flag)
Fix:
chmod +x .claude/statusline.shCheck 2: Settings configured
cat .claude/settings.jsonShould contain statusLine configuration
Check 3: Test script manually
./.claude/statusline.shShould output statusline text
Check 4: Restart Claude Code Settings changes require restart or reload
Cause: .add-status file not created yet
Solution:
- Ensure ADD framework is loaded (check CLAUDE.md or custom instructions)
- Start a conversation with ADD-aware Claude
- Claude will create
.add-statusautomatically during flow status updates
Quick test:
# Create test status manually
echo "Assess|🔴+|Testing statusline|1|0" > .add-status
./.claude/statusline.shShould display:
[ADD Flow: 🔴+ Assess | Testing statusline]
"Error reading status - Permission denied"
- Check file permissions:
chmod 644 .add-status - Ensure script can read from current directory
"No such file or directory"
- Script path in settings.json incorrect
- Use
.claude/statusline.sh(project-relative) not~/.claude/statusline.sh
Script not found
- Ensure script is in
.claude/statusline.sh - Check settings.json path matches actual location
Terminal doesn't support ANSI colors:
- Most modern terminals support this
- Try different terminal emulator
- Or remove color codes from script
Colors look wrong:
- Depends on terminal theme
- Adjust color codes in script
- Test with
echo -e "\033[0;31mRED\033[0m"
Each project maintains separate status:
.add-statusis project-specific- Switching projects = different statusline
- Each
.claude/statusline.shcan be customized per-project
Global statusline:
If you want same statusline across projects, use ~/.add-status and ~/.claude/statusline.sh (not recommended - loses project specificity)
No. The ADD framework works perfectly without statusline. This is an optional visual enhancement for Claude Code users.
Partially. The script works anywhere bash runs, but:
- Claude Code: Full integration via settings.json ✅
- Terminal (tmux): Can display in tmux status bar (see below)
- VSCode: No built-in support (Claude Code only)
- Other editors: Depends on statusline capabilities
Yes! Add to .tmux.conf:
set -g status-right "#(cat /path/to/project/.add-status 2>/dev/null | cut -d'|' -f1-3 | tr '|' ' ' || echo 'ADD Flow: Ready') "
set -g status-interval 1This shows simplified status in tmux status bar.
Option 1: Remove from settings
Comment out in .claude/settings.json:
{
// "statusLine": {
// "type": "command",
// "command": ".claude/statusline.sh"
// }
}Option 2: Make script return empty
Edit .claude/statusline.sh to just exit 0
Option 3: Delete .add-status
rm .add-statusStatusline will show "Initializing exchange" until next update
Negligible impact. Script runs:
- Only when conversation updates (user message or Claude response)
- Maximum frequency: 300ms
- Lightweight bash script, fast execution
Not currently. .add-status only shows current session state.
Future enhancement: Session logging could track:
- Full conversation flow history
- Realm transition patterns
- Time spent in each realm
- Decision points and completions
Would you like to see this feature? Open a GitHub issue!
Each Claude Code window is independent:
- Separate
.add-statusper project - No conflict between sessions
- Each tracks its own flow state
Caution: If multiple Claude instances edit same project, last write wins. Shouldn't cause issues in practice.
timestamp=$(date '+%H:%M')
echo -e "[${timestamp}] [${BOLD}ADD Flow:${RESET} ${COLOR}${emoji} ${realm}${RESET} | ${pattern}]"branch=$(git branch --show-current 2>/dev/null || echo "")
if [ -n "$branch" ]; then
echo -e "[${branch}] [${BOLD}ADD Flow:${RESET} ${COLOR}${emoji} ${realm}${RESET} | ${pattern}]"
fiTrack previous realm and notify on change:
PREV_REALM_FILE=".add-status.prev"
if [ -f "$PREV_REALM_FILE" ]; then
prev_realm=$(cat "$PREV_REALM_FILE")
if [ "$prev_realm" != "$realm" ]; then
# Realm changed - could trigger notification
osascript -e "display notification \"Transitioned to $realm\" with title \"ADD Flow\""
fi
fi
echo "$realm" > "$PREV_REALM_FILE"After setup:
- Start ADD-aware conversation in Claude Code
- Watch statusline update as conversation progresses
- Notice realm changes (🔴 → 🟠 → 🟢)
- Ask Claude for session metrics when curious
Learn more:
- ADD Framework Core - Deep framework understanding
- Flow Status Extension - Observability layer details
- Modular Architecture - Configuration levels
Get help:
Ready to experience ambient flow awareness?