-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcodemob-shell.sh
More file actions
74 lines (69 loc) · 2.65 KB
/
codemob-shell.sh
File metadata and controls
74 lines (69 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/env bash
# codemob-shell.sh — optional terminal enhancement for codemob
# Source this in .zshrc/.bashrc to get:
# - mob() alias for codemob
# - claude/codex wrappers with --new-mob / --resume-mob flags
# Unique per-terminal session ID — used by codemob to track the last active mob
# per terminal so `resume` can default to it without collisions.
[ -z "$CODEMOB_SESSION" ] && export CODEMOB_SESSION=$(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid 2>/dev/null || echo $$)
codemob() {
case "${1:-}" in
cd) shift
local dir
dir="$(command codemob path "$@")" || return $?
if [ "$dir" = "$PWD" ]; then
echo "Already here."
return 0
fi
cd "$dir"
;;
*) command codemob "$@" ;;
esac
}
mob() {
codemob "$@"
}
claude() {
case "${1:-}" in
--mob|--codemob|--new-mob|--new-codemob) shift; codemob new --agent claude "$@"; return $? ;;
--resume-mob|--resume-codemob) shift; codemob resume "$@"; return $? ;;
--open-mob|--open-codemob) shift; codemob open --agent claude "$@"; return $? ;;
--switch-mob|--switch-codemob) shift; codemob switch "$@"; return $? ;;
--list-mob|--list-mobs|--list-codemob|--list-codemobs) shift; codemob list "$@"; return $? ;;
*)
local extra_args=() codemob_mob=""
while IFS= read -r line; do
case "$line" in
CODEMOB_MOB=*) codemob_mob="${line#CODEMOB_MOB=}" ;;
*) extra_args+=("$line") ;;
esac
done < <(command codemob inject-args claude 2>/dev/null)
CODEMOB_MOB="$codemob_mob" command claude "${extra_args[@]}" "$@"
local ec=$?
CODEMOB_MOB="$codemob_mob" codemob check-queue 2>/dev/null
return $ec
;;
esac
}
codex() {
case "${1:-}" in
--mob|--codemob|--new-mob|--new-codemob) shift; codemob new --agent codex "$@"; return $? ;;
--resume-mob|--resume-codemob) shift; codemob resume "$@"; return $? ;;
--open-mob|--open-codemob) shift; codemob open --agent codex "$@"; return $? ;;
--switch-mob|--switch-codemob) shift; codemob switch "$@"; return $? ;;
--list-mob|--list-mobs|--list-codemob|--list-codemobs) shift; codemob list "$@"; return $? ;;
*)
local extra_args=() codemob_mob=""
while IFS= read -r line; do
case "$line" in
CODEMOB_MOB=*) codemob_mob="${line#CODEMOB_MOB=}" ;;
*) extra_args+=("$line") ;;
esac
done < <(command codemob inject-args codex 2>/dev/null)
CODEMOB_MOB="$codemob_mob" command codex "${extra_args[@]}" "$@"
local ec=$?
CODEMOB_MOB="$codemob_mob" codemob check-queue 2>/dev/null
return $ec
;;
esac
}