Updated Edit
On this page
Launch logic for resolving selections into a Claude Code invocation.
#claudewheel.launch
#claudewheel.launch
Map TUI selections to binary path, env vars, flags, and exec.
#fetch_gh_token
python
def fetch_gh_token(account: str) -> str | NoneFetch GH token live via gh CLI. Returns None on failure.
#resolve_launch_config
python
def resolve_launch_config(selections: dict[str, str | None], options_def: dict, default_flags: list[str], extra_flags: list[str] | None=None, metadata: dict[str, dict[str, dict]] | None=None) -> tuple[str, list[str], dict[str, str]]Build (cwd, argv, env) for os.execvpe from TUI selections.
Maps segment values to their concrete effects:
- profile -> CLAUDE_CONFIG_DIR env var (from metadata or options.json)
- github -> GH_TOKEN env var (fetched live via gh CLI)
- version -> binary path (under ~/.local/share/claude/versions/)
- directory -> os.chdir target
- mcp -> --strict-mcp-config flag (if "strict")
- permissions -> --dangerously-skip-permissions or --permission-mode=X
When metadata is provided (TUI path), use it for profile/model lookups. When None (skip-TUI path), fall back to reading from options_def.
#do_launch
python
def do_launch(cwd: str, argv: list[str], env: dict[str, str]) -> NoneChange to directory and exec Claude Code. Does not return.