Skip to content

Commit 158b0f3

Browse files
authored
Merge pull request #7 from Data-Wise/dev
feat(cc): change default to launch in current directory
2 parents d95e06a + bce954d commit 158b0f3

File tree

2 files changed

+98
-54
lines changed

2 files changed

+98
-54
lines changed

docs/reference/DISPATCHER-REFERENCE.md

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -211,13 +211,15 @@ r tree # Package structure tree
211211
**Common Commands:**
212212

213213
```bash
214-
# Launch modes
215-
cc # Pick project → NEW Claude session (acceptEdits)
214+
# Launch modes (default = current directory)
215+
cc # Launch Claude HERE (acceptEdits mode)
216+
cc pick # Pick project → Claude (acceptEdits)
216217
cc flow # Direct jump → Claude
217-
cc yolo # Pick project → YOLO mode (skip permissions)
218+
cc yolo # Launch HERE in YOLO mode (skip permissions)
219+
cc yolo pick # Pick project → YOLO mode
218220
cc yolo flow # Direct jump → YOLO mode
219-
cc plan # Pick project → Plan mode
220-
cc now # Current dirClaude (no picker)
221+
cc plan # Launch HERE in Plan mode
222+
cc plan pick # Pick projectPlan mode
221223

222224
# Session management
223225
cc resume # Resume with Claude session picker
@@ -229,20 +231,24 @@ cc file <file> # Analyze a file
229231
cc diff # Review git changes
230232
cc rpkg # R package context helper
231233

232-
# Model selection
233-
cc opus # Pick project → Opus model
234-
cc haiku # Pick project → Haiku model
234+
# Model selection (default = current directory)
235+
cc opus # Launch HERE with Opus model
236+
cc opus pick # Pick project → Opus model
237+
cc haiku # Launch HERE with Haiku model
238+
cc haiku pick # Pick project → Haiku model
235239
```
236240

237241
**Features:**
238242

239-
- Smart project selection via `pick` (inherits direct jump, smart resume)
243+
- Default launches Claude in current directory (no picker)
244+
- Use `pick` subcommand to select project first
245+
- Direct jump with project name (e.g., `cc flow`)
240246
- Multiple permission modes (acceptEdits, YOLO, plan)
241247
- Session resume with Claude's built-in picker
242248
- Quick actions for common tasks
243249
- Model selection shortcuts
244250

245-
**Shortcuts:** `y`=yolo, `p`=plan, `n`=now, `r`=resume, `c`=continue, `a`=ask, `f`=file, `d`=diff, `o`=opus, `h`=haiku
251+
**Shortcuts:** `y`=yolo, `p`=plan, `r`=resume, `c`=continue, `a`=ask, `f`=file, `d`=diff, `o`=opus, `h`=haiku
246252

247253
**See also:** [CC-DISPATCHER-REFERENCE.md](CC-DISPATCHER-REFERENCE.md)
248254

lib/dispatchers/cc-dispatcher.zsh

Lines changed: 82 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,16 @@
66
# ============================================================================
77

88
cc() {
9-
# No arguments → pick project + launch claude in acceptEdits mode
9+
# No arguments → launch Claude in current directory (acceptEdits mode)
1010
if [[ $# -eq 0 ]]; then
11-
if (( $+functions[pick] )); then
12-
pick && claude --permission-mode acceptEdits
13-
else
14-
claude --permission-mode acceptEdits
15-
fi
11+
claude --permission-mode acceptEdits
1612
return
1713
fi
1814

1915
# Check if first arg is a known subcommand
2016
local is_subcommand=0
2117
case "$1" in
22-
yolo|y|plan|p|now|n|resume|r|continue|c|ask|a|file|f|diff|d|rpkg|print|pr|opus|o|haiku|h|help|--help|-h)
18+
pick|yolo|y|plan|p|now|n|resume|r|continue|c|ask|a|file|f|diff|d|rpkg|print|pr|opus|o|haiku|h|help|--help|-h)
2319
is_subcommand=1
2420
;;
2521
esac
@@ -41,48 +37,73 @@ cc() {
4137
fi
4238

4339
case "$1" in
40+
# Pick project first, then launch
41+
pick)
42+
shift
43+
if (( $+functions[pick] )); then
44+
pick && claude --permission-mode acceptEdits "$@"
45+
else
46+
echo "❌ pick function not available" >&2
47+
return 1
48+
fi
49+
;;
50+
4451
# Launch modes
4552
yolo|y)
4653
shift
47-
# Check if next arg is a project name
48-
if [[ -n "$1" && "$1" != -* ]]; then
49-
local project_name="$1"
54+
# Check for 'pick' subcommand: cc yolo pick
55+
if [[ "$1" == "pick" ]]; then
5056
shift
5157
if (( $+functions[pick] )); then
52-
pick "$project_name" && claude --dangerously-skip-permissions "$@"
58+
pick && claude --dangerously-skip-permissions "$@"
5359
else
54-
claude --dangerously-skip-permissions "$@"
60+
echo "❌ pick function not available" >&2
61+
return 1
5562
fi
56-
else
63+
# Check if next arg is a project name (direct jump)
64+
elif [[ -n "$1" && "$1" != -* ]]; then
65+
local project_name="$1"
66+
shift
5767
if (( $+functions[pick] )); then
58-
pick && claude --dangerously-skip-permissions "$@"
68+
pick "$project_name" && claude --dangerously-skip-permissions "$@"
5969
else
6070
claude --dangerously-skip-permissions "$@"
6171
fi
72+
else
73+
# No args after yolo → launch in current directory
74+
claude --dangerously-skip-permissions "$@"
6275
fi
6376
;;
6477

6578
plan|p)
6679
shift
67-
if [[ -n "$1" && "$1" != -* ]]; then
68-
local project_name="$1"
80+
# Check for 'pick' subcommand: cc plan pick
81+
if [[ "$1" == "pick" ]]; then
6982
shift
7083
if (( $+functions[pick] )); then
71-
pick "$project_name" && claude --permission-mode plan "$@"
84+
pick && claude --permission-mode plan "$@"
7285
else
73-
claude --permission-mode plan "$@"
86+
echo "❌ pick function not available" >&2
87+
return 1
7488
fi
75-
else
89+
# Check if next arg is a project name (direct jump)
90+
elif [[ -n "$1" && "$1" != -* ]]; then
91+
local project_name="$1"
92+
shift
7693
if (( $+functions[pick] )); then
77-
pick && claude --permission-mode plan "$@"
94+
pick "$project_name" && claude --permission-mode plan "$@"
7895
else
7996
claude --permission-mode plan "$@"
8097
fi
98+
else
99+
# No args after plan → launch in current directory
100+
claude --permission-mode plan "$@"
81101
fi
82102
;;
83103

84-
# Direct launch (no picker)
104+
# Direct launch (DEPRECATED - default now does this)
85105
now|n)
106+
echo "⚠️ 'cc now' is deprecated. Just use 'cc' (default is current dir now)" >&2
86107
shift
87108
claude --permission-mode acceptEdits "$@"
88109
;;
@@ -157,39 +178,53 @@ cc() {
157178
# Model selection
158179
opus|o)
159180
shift
160-
if [[ -n "$1" && "$1" != -* ]]; then
161-
local project_name="$1"
181+
# Check for 'pick' subcommand: cc opus pick
182+
if [[ "$1" == "pick" ]]; then
162183
shift
163184
if (( $+functions[pick] )); then
164-
pick "$project_name" && claude --model opus --permission-mode acceptEdits "$@"
185+
pick && claude --model opus --permission-mode acceptEdits "$@"
165186
else
166-
claude --model opus --permission-mode acceptEdits "$@"
187+
echo "❌ pick function not available" >&2
188+
return 1
167189
fi
168-
else
190+
# Check if next arg is a project name (direct jump)
191+
elif [[ -n "$1" && "$1" != -* ]]; then
192+
local project_name="$1"
193+
shift
169194
if (( $+functions[pick] )); then
170-
pick && claude --model opus --permission-mode acceptEdits "$@"
195+
pick "$project_name" && claude --model opus --permission-mode acceptEdits "$@"
171196
else
172197
claude --model opus --permission-mode acceptEdits "$@"
173198
fi
199+
else
200+
# No args after opus → launch in current directory
201+
claude --model opus --permission-mode acceptEdits "$@"
174202
fi
175203
;;
176204

177205
haiku|h)
178206
shift
179-
if [[ -n "$1" && "$1" != -* ]]; then
180-
local project_name="$1"
207+
# Check for 'pick' subcommand: cc haiku pick
208+
if [[ "$1" == "pick" ]]; then
181209
shift
182210
if (( $+functions[pick] )); then
183-
pick "$project_name" && claude --model haiku --permission-mode acceptEdits "$@"
211+
pick && claude --model haiku --permission-mode acceptEdits "$@"
184212
else
185-
claude --model haiku --permission-mode acceptEdits "$@"
213+
echo "❌ pick function not available" >&2
214+
return 1
186215
fi
187-
else
216+
# Check if next arg is a project name (direct jump)
217+
elif [[ -n "$1" && "$1" != -* ]]; then
218+
local project_name="$1"
219+
shift
188220
if (( $+functions[pick] )); then
189-
pick && claude --model haiku --permission-mode acceptEdits "$@"
221+
pick "$project_name" && claude --model haiku --permission-mode acceptEdits "$@"
190222
else
191223
claude --model haiku --permission-mode acceptEdits "$@"
192224
fi
225+
else
226+
# No args after haiku → launch in current directory
227+
claude --model haiku --permission-mode acceptEdits "$@"
193228
fi
194229
;;
195230

@@ -226,17 +261,18 @@ ${_C_YELLOW}║${_C_NC} ${_C_CYAN}CC${_C_NC} - Claude Code Dispatcher
226261
${_C_YELLOW}╚════════════════════════════════════════════════════════════╝${_C_NC}
227262
228263
${_C_YELLOW}💡 QUICK START${_C_NC}:
229-
${_C_DIM}\$${_C_NC} cc ${_C_DIM}# Pick project → NEW Claude session${_C_NC}
264+
${_C_DIM}\$${_C_NC} cc ${_C_DIM}# Launch Claude HERE (current dir)${_C_NC}
265+
${_C_DIM}\$${_C_NC} cc pick ${_C_DIM}# Pick project → Claude${_C_NC}
230266
${_C_DIM}\$${_C_NC} cc flow ${_C_DIM}# Direct jump to flow-cli → Claude${_C_NC}
231-
${_C_DIM}\$${_C_NC} cc yolo ${_C_DIM}# Pick project → YOLO mode${_C_NC}
232267
233268
${_C_BLUE}🚀 LAUNCH MODES${_C_NC}:
234-
${_C_CYAN}cc${_C_NC} Pick project → NEW Claude (acceptEdits)
235-
${_C_CYAN}cc <project>${_C_NC} Direct jump → NEW Claude (no picker!)
236-
${_C_CYAN}cc yolo${_C_NC} Pick project → YOLO mode (skip all permissions)
237-
${_C_CYAN}cc yolo <project>${_C_NC} Direct jump → YOLO mode
238-
${_C_CYAN}cc plan${_C_NC} Pick project → Plan mode
239-
${_C_CYAN}cc now${_C_NC} Launch here (no picker, current dir)
269+
${_C_CYAN}cc${_C_NC} Launch Claude HERE (acceptEdits mode)
270+
${_C_CYAN}cc pick${_C_NC} Pick project → Claude (acceptEdits)
271+
${_C_CYAN}cc <project>${_C_NC} Direct jump → Claude (no picker!)
272+
${_C_CYAN}cc yolo${_C_NC} Launch HERE in YOLO mode (skip permissions)
273+
${_C_CYAN}cc yolo pick${_C_NC} Pick project → YOLO mode
274+
${_C_CYAN}cc plan${_C_NC} Launch HERE in Plan mode
275+
${_C_CYAN}cc plan pick${_C_NC} Pick project → Plan mode
240276
241277
${_C_BLUE}🔄 SESSION${_C_NC}:
242278
${_C_CYAN}cc resume${_C_NC} Resume with Claude session picker
@@ -249,8 +285,10 @@ ${_C_BLUE}❓ QUICK ACTIONS${_C_NC}:
249285
${_C_CYAN}cc rpkg${_C_NC} R package context helper
250286
251287
${_C_BLUE}🎯 MODEL SELECTION${_C_NC}:
252-
${_C_CYAN}cc opus [project]${_C_NC} Use Opus model
253-
${_C_CYAN}cc haiku [project]${_C_NC} Use Haiku model
288+
${_C_CYAN}cc opus${_C_NC} Launch HERE with Opus model
289+
${_C_CYAN}cc opus pick${_C_NC} Pick project → Opus model
290+
${_C_CYAN}cc haiku${_C_NC} Launch HERE with Haiku model
291+
${_C_CYAN}cc haiku pick${_C_NC} Pick project → Haiku model
254292
255293
${_C_BLUE}📋 OTHER${_C_NC}:
256294
${_C_CYAN}cc print <prompt>${_C_NC} Print mode (non-interactive)
@@ -262,7 +300,7 @@ ${_C_MAGENTA}💡 DIRECT JUMP EXAMPLES${_C_NC}:
262300
cc yolo stat Direct → stat-440 + YOLO Claude
263301
264302
${_C_MAGENTA}💡 SHORTCUTS${_C_NC}:
265-
y = yolo, p = plan, n = now, r = resume, c = continue
303+
y = yolo, p = plan, r = resume, c = continue
266304
a = ask, f = file, d = diff, o = opus, h = haiku, pr = print
267305
"
268306
}

0 commit comments

Comments
 (0)