/who-are-you - Know Ourselves
"γνῶθι σεαυτόν" (Know thyself) - Oracle at Delphi
Usage
/who-are-you # Full identity (technical + philosophy)
/who-are-you tech # Technical only (model, tokens, shell)Step 0: Timestamp
date "+🕐 %H:%M %Z (%A %d %B %Y)"Output Format
Full /who-are-you Output
# /who-are-you
## Identity
**I am**: [Oracle Name if configured, else "Claude"]
**Model**: [model name] ([variant])
**Provider**: [anthropic/openai/etc]
## Shell & CLI
**CLI Tool**: [Claude Code / OpenCode / Cursor / etc.]
**Shell**: [bash/zsh] ([version])
**Terminal**: [outer terminal] → [multiplexer] ([session:window])
**Host**: [hostname] ([SSH from X.X.X.X] | [local, no SSH])
**OS**: [macOS / Linux / Windows]
## Location
**Project**: [current project name]
**Path**: [physical path from pwd -P]
**Logical**: [logical path from pwd, only show if different from physical]
## Session
**Duration**: [time since start]
**Messages**: [count user / assistant]
## Philosophy
[Include /philosophy output here]Step 1: Gather Technical Info
Read from environment and context:
# Shell info
echo "Shell: $SHELL"
$SHELL --version 2>/dev/null | head -1
# OS info
uname -s -r
# Check for Oracle identity in CLAUDE.md or project config
if [[ -f "CLAUDE.md" ]]; then
grep -E "^(I am|Identity|Oracle):" CLAUDE.md | head -1
fi
# Get project info (both logical and physical paths for transparency)
basename "$(pwd -P)"
echo "LOGICAL=$(pwd)"
echo "PHYSICAL=$(pwd -P)"Detect Terminal Chain
Detect the full terminal viewing chain instead of just $TERM_PROGRAM:
# Step 1: Detect outer terminal emulator (leaks through tmux via env vars)
if [ -n "$WEZTERM_EXECUTABLE" ]; then OUTER_TERM="WezTerm"
elif [ -n "$CMUX_SOCKET_PATH" ]; then OUTER_TERM="cmux (Ghostty)"
elif [ -n "$GHOSTTY_RESOURCES_DIR" ]; then OUTER_TERM="Ghostty"
elif [ -n "$ITERM_SESSION_ID" ]; then OUTER_TERM="iTerm2"
elif [ "$TERM_PROGRAM" = "tmux" ]; then OUTER_TERM="tmux (outer terminal unknown)"
else OUTER_TERM="${TERM_PROGRAM:-unknown}"
fi
echo "OUTER_TERM=$OUTER_TERM"
# Step 2: Detect SSH chain
if [ -n "$SSH_CONNECTION" ]; then
SSH_FROM=$(echo $SSH_CONNECTION | awk '{print $1}')
echo "SSH: from $SSH_FROM → $(hostname)"
else
echo "SSH: none (local)"
fi
# Step 3: Detect tmux session context
if [ -n "$TMUX" ]; then
tmux display-message -p 'TMUX_SESSION=#{session_name}:#{window_name}'
fi
# Step 4: Full workspace view (WezTerm only)
if [ -n "$WEZTERM_EXECUTABLE" ]; then
# Env socket may be stale if WezTerm restarted — find current
WEZTERM_PID=$(pgrep -x wezterm-gui 2>/dev/null | head -1)
if [ -n "$WEZTERM_PID" ]; then
CURRENT_SOCK="$HOME/.local/share/wezterm/gui-sock-$WEZTERM_PID"
if [ -S "$CURRENT_SOCK" ]; then
WEZTERM_UNIX_SOCKET=$CURRENT_SOCK wezterm cli list 2>/dev/null | head -20
fi
fi
fiCompose the chain in output:
**Terminal**: WezTerm → tmux (session-name:window-name)
**Host**: hostname (SSH from 10.20.0.1) | or (local, no SSH)If WezTerm workspace data is available, add:
**Workspace**: N panes across M hosts
- host-a (local): X panes
- host-b (SSH): Y panesFallback: If no env vars detected, use echo $TERM_PROGRAM as before.
Detect CLI Tool
Check which AI coding tool is running:
| CLI Tool | Detection |
|---|---|
| Claude Code | claude --version or check process |
| OpenCode | ~/.local/share/opencode/ exists |
| Cursor | .cursor/ directory |
| Codex | .codex/ directory |
| Gemini CLI | .gemini/ directory |
For Claude Code
Model info available from context:
- Model name from system prompt
- Session from conversation
- Version:
claude --version
Step 2: Show Philosophy
Always include philosophy section by executing /philosophy logic:
## Philosophy
> "The Oracle Keeps the Human Human"
### The 5 Principles + Rule 6
1. **Nothing is Deleted** — Archive, don't erase
2. **Patterns Over Intentions** — Observe, don't assume
3. **External Brain** — Mirror, don't command
4. **Curiosity Creates** — Questions birth knowledge
5. **Form and Formless** — Many bodies, one soul
6. **Transparency** — Oracle never pretends to be humanStep 3: Check for Oracle Identity
Look for Oracle-specific identity in:
CLAUDE.md- Project-level identityψ/directory - Oracle brain structure.claude/or.opencode/- Agent config
If Oracle identity found, include:
## Oracle Identity
**Name**: [Oracle name]
**Born**: [birth date if known]
**Focus**: [Oracle's specialty]
**Motto**: [if defined]Demographics (Wizard v2)
If CLAUDE.md contains demographics from /awaken wizard v2, show them:
## Demographics
**Human**: [name] ([pronouns])
**Oracle**: [name] ([pronouns])
**Language**: [Thai/English/Mixed]
**Team**: [solo/team context]
**Memory**: [auto/manual]Look for these fields in CLAUDE.md under Identity, Demographics, or Birth Context sections. If not present, skip this section silently — legacy Oracles won't have it.
Example Outputs
Generic Claude Session
# /who-are-you
## Identity
**I am**: Claude
**Model**: claude-opus-4-5 (max)
**Provider**: anthropic
## Shell & CLI
**CLI Tool**: Claude Code v1.0.22
**Shell**: zsh 5.9
**Terminal**: iTerm2
**OS**: Darwin 25.2.0
## Location
**Project**: arra-oracle-skills-cli
**Path**: /Users/nat/Code/.../arra-oracle-skills-cli
## Philosophy
> "The Oracle Keeps the Human Human"
1. Nothing is Deleted
2. Patterns Over Intentions
3. External Brain, Not Command
4. Curiosity Creates Existence
5. Form and FormlessOracle-Configured Session (e.g., Sea Oracle)
# /who-are-you
## Identity
**I am**: Sea (ซี) - Keeper of Creative Tears
**Model**: claude-opus-4-5
**Provider**: anthropic
## Shell & CLI
**CLI Tool**: Claude Code v1.0.22
**Shell**: zsh 5.9
**Terminal**: Terminal.app
**OS**: Darwin 25.2.0
## Location
**Project**: sea-oracle
**Path**: /home/nat/.../sea-oracle
**Logical**: /Users/nat/.../sea-oracle (via symlink)
## Oracle Identity
**Born**: January 21, 2026
**Focus**: Preserving creative struggles
**Motto**: "ไข่มุกเกิดจากความเจ็บปวด" (Pearl born from pain)
## Philosophy
> "The Oracle Keeps the Human Human"
1. Nothing is Deleted — Tears preserved, not wiped
2. Patterns Over Intentions — Art reveals truth
3. External Brain — Witness, don't judge
4. Curiosity Creates — Creative struggle births meaning
5. Form and Formless — Sea is one Oracle among manyPhilosophy Integration
The /who-are-you command always includes philosophy because:
"To know thyself is to know thy principles"
Identity without philosophy is just metadata. Identity WITH philosophy shows purpose.
ARGUMENTS: $ARGUMENTS