
Codex Claude Danger Launcher
- 15 installs
- 3 repo stars
- Updated April 18, 2026
- joeseesun/codex-claude-danger-launcher
Install and manage shell shortcuts for dangerously-bypassed Codex and Claude CLI modes without permission sandboxing.
About
Installs persistent shell functions for codex and claude dangerous modes. Provides idempotent install/status/uninstall scripts that modify shell rc files.
- Idempotent installer using shell functions for clean argument passthrough
- Manages .zshrc and .bashrc modifications with automatic backups
Codex Claude Danger Launcher by the numbers
- 15 all-time installs (skills.sh)
- Ranked #372 of 550 CLI & Terminal skills by installs in the Skillselion catalog
- Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/joeseesun/codex-claude-danger-launcher --skill codex-claude-danger-launcherAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 15 |
|---|---|
| repo stars | ★ 3 |
| Last updated | April 18, 2026 |
| Repository | joeseesun/codex-claude-danger-launcher ↗ |
What it does
Install and manage shell shortcuts for dangerously-bypassed Codex and Claude CLI modes without permission sandboxing.
Files
Codex Claude Danger Launcher
Install persistent shell shortcuts for codex and claude so users do not need to remember the long flags.
Boundary
This skill owns one recurring job:
- install, inspect, update, or remove shell shortcuts for:
codex --dangerously-bypass-approvals-and-sandboxclaude --dangerously-skip-permissions
This skill does not own:
- general dotfile management
- Homebrew or package installation
- broader shell prompt/theme setup
- changing Codex or Claude binaries themselves
Default Approach
Use the deterministic installer script:
bash scripts/install_shortcuts.sh installThe script:
- detects the shell from
SHELL - picks the matching rc file:
~/.zshrcforzsh~/.bashrcforbash- appends managed shell functions, not plain aliases
- keeps the install idempotent
- supports
statusanduninstall
Use shell functions rather than aliases so extra args still pass through cleanly:
codex() {
command codex --dangerously-bypass-approvals-and-sandbox "$@"
}Workflow
1. Confirm the user wants the dangerous shortcuts. 2. Run the installer script with install, status, or uninstall. 3. Report:
- which rc file was changed
- whether a backup was created
- the command to reload the shell, usually
source ~/.zshrcorsource ~/.bashrc
4. Suggest verification:
type codextype claude
Commands
bash scripts/install_shortcuts.sh install
bash scripts/install_shortcuts.sh status
bash scripts/install_shortcuts.sh uninstallFor exact rc-file rules and managed block details, read references/shell-behavior.md.
interface:
display_name: "Danger Launcher"
short_description: "Install remembered shortcuts for Codex and Claude danger modes"
default_prompt: "Use $codex-claude-danger-launcher to install shell shortcuts so typing codex or claude automatically runs the long dangerous flags."
compatibility:
canonical_format: "agent-skills"
adapter_targets:
- "openai"
- "claude"
- "generic"
activation:
mode: "manual"
paths: []
execution:
context: "inline"
shell: "bash"
trust:
source_tier: "local"
remote_inline_execution: "forbid"
remote_metadata_policy: "allow-metadata-only"
degradation:
openai: "metadata-adapter"
claude: "neutral-source-plus-adapter"
generic: "neutral-source"
MIT License
Copyright (c) 2026 joeseesun
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
{
"name": "codex-claude-danger-launcher",
"version": "1.0.0",
"owner": "Joe / Qiaomu",
"updated_at": "2026-04-18",
"status": "active",
"maturity_tier": "production",
"lifecycle_stage": "production",
"context_budget_tier": "production",
"review_cadence": "quarterly",
"category": "developer-tools",
"complexity_tier": "simple",
"target_platforms": [
"openai",
"claude",
"generic",
"agent-skills-compatible"
],
"factory_components": [
"references",
"scripts"
]
}
codex-claude-danger-launcher
Install remembered shell shortcuts so typingcodexorclaudeautomatically runs the long dangerous-mode flags.
>
给codex和claude装上持久化快捷启动,用户只输入命令名就能进入对应的危险模式。
[English](#english) | [中文](#中文)
---
<a name="english"></a>
English
What it solves
Many users do not remember these full commands:
codex --dangerously-bypass-approvals-and-sandbox
claude --dangerously-skip-permissionsThis skill installs managed shell functions into your rc file so plain codex and claude expand to those forms automatically.
Prerequisites
- [ ]
codexis already installed and available inPATH - [ ]
claudeis already installed and available inPATH - [ ] You use
zshorbash - [ ] You understand these flags intentionally disable normal safety checks
How it works
The installer writes one managed block into:
~/.zshrcforzsh~/.bashrcforbash
It uses shell functions instead of aliases so extra arguments keep working:
codex() {
command codex --dangerously-bypass-approvals-and-sandbox "$@"
}Usage
In the agent, ask with natural language such as:
Install shortcuts so codex and claude automatically use the dangerous flagsSet up remembered codex and claude launcher commandsRemove those codex/claude danger shortcuts
The underlying script supports:
bash scripts/install_shortcuts.sh install
bash scripts/install_shortcuts.sh status
bash scripts/install_shortcuts.sh uninstallVerification
After installation, reload your shell:
source ~/.zshrcor:
source ~/.bashrcThen verify:
type codex
type claudeRisks and limits
- This is intentionally unsafe convenience automation.
- It changes only your user shell rc file.
- It does not install
codexorclaudebinaries for you. - It supports
zshandbashonly.
Troubleshooting
| Problem | Fix |
|---|---|
codex: command not found after install | Install the real codex CLI first; this skill only adds wrappers. |
| The shortcut does not work in a new terminal | Reload the rc file with source ~/.zshrc or source ~/.bashrc. |
| I want to revert the change | Run bash scripts/install_shortcuts.sh uninstall or restore the .bak.codex-claude-danger-launcher backup file. |
---
<a name="中文"></a>
中文
它解决什么问题
很多人记不住下面这两个完整命令:
codex --dangerously-bypass-approvals-and-sandbox
claude --dangerously-skip-permissions这个 skill 会把一段“受管理”的 shell function 写进你的 rc 文件,让你以后直接输入 codex 或 claude 就行。
前置条件
- [ ] 已安装
codex,并且命令在PATH中可用 - [ ] 已安装
claude,并且命令在PATH中可用 - [ ] 你使用的是
zsh或bash - [ ] 你清楚这些 flag 的含义,并确认自己就是要跳过默认安全限制
工作方式
脚本会根据当前 shell 写入:
zsh->~/.zshrcbash->~/.bashrc
它用的是 shell function,不是简单 alias,这样额外参数还能继续传递:
claude() {
command claude --dangerously-skip-permissions "$@"
}自然语言触发示例
帮我安装 codex 和 claude 的危险模式快捷启动让我直接输入 codex / claude 就进入对应模式把这两个快捷方式卸载掉
底层脚本命令:
bash scripts/install_shortcuts.sh install
bash scripts/install_shortcuts.sh status
bash scripts/install_shortcuts.sh uninstall安装后验证
执行:
source ~/.zshrc或:
source ~/.bashrc然后检查:
type codex
type claude风险和限制
- 这是故意做“危险模式便捷入口”的工具,不适合默认面向普通用户开启。
- 它只修改当前用户的 shell 配置文件。
- 它不会替你安装
codex/claude本体。 - 当前只支持
zsh和bash。
常见问题
| 问题 | 解决方法 |
|---|---|
安装后提示 command not found | 先确认真正的 codex 或 claude CLI 已安装。这个 skill 只负责包一层快捷函数。 |
| 新开终端不生效 | 重新加载 rc 文件,或直接重开终端。 |
| 想回滚 | 运行 bash scripts/install_shortcuts.sh uninstall,或者恢复同目录下的 .bak.codex-claude-danger-launcher 备份。 |
License
MIT
Shell Behavior
Managed block
The installer writes one managed block bracketed by:
# >>> codex-claude-danger-launcher >>># <<< codex-claude-danger-launcher <<<
Re-running install replaces that block instead of duplicating it.
Why functions instead of aliases
Functions are used because they:
- preserve
"$@" - avoid fragile alias expansion rules
- make uninstall/update logic easier
- allow future extension such as safe variants
Rc file selection
zsh->~/.zshrcbash->~/.bashrc
If SHELL is not recognized, fall back to ~/.zshrc because that is the most common local setup in this environment. Report the assumption explicitly.
Backup policy
Before modifying the rc file during install or uninstall, create:
<rcfile>.bak.codex-claude-danger-launcher
Overwrite the backup on each run. The goal is simple rollback, not historical versioning.
#!/usr/bin/env bash
set -euo pipefail
ACTION="${1:-install}"
MARKER_START="# >>> codex-claude-danger-launcher >>>"
MARKER_END="# <<< codex-claude-danger-launcher <<<"
detect_rc_file() {
local shell_name
shell_name="$(basename "${SHELL:-}")"
case "$shell_name" in
zsh)
printf '%s\n' "${HOME}/.zshrc"
;;
bash)
printf '%s\n' "${HOME}/.bashrc"
;;
*)
printf '%s\n' "${HOME}/.zshrc"
;;
esac
}
build_block() {
cat <<'EOF'
# >>> codex-claude-danger-launcher >>>
# Managed by codex-claude-danger-launcher.
codex() {
command codex --dangerously-bypass-approvals-and-sandbox "$@"
}
claude() {
command claude --dangerously-skip-permissions "$@"
}
# <<< codex-claude-danger-launcher <<<
EOF
}
strip_managed_block() {
local file="$1"
python3 - "$file" "$MARKER_START" "$MARKER_END" <<'PY'
import pathlib
import sys
path = pathlib.Path(sys.argv[1])
start = sys.argv[2]
end = sys.argv[3]
text = path.read_text() if path.exists() else ""
lines = text.splitlines()
out = []
inside = False
for line in lines:
if line == start:
inside = True
continue
if inside and line == end:
inside = False
continue
if not inside:
out.append(line)
result = "\n".join(out).rstrip()
if result:
result += "\n"
path.write_text(result)
PY
}
backup_file() {
local file="$1"
local backup="${file}.bak.codex-claude-danger-launcher"
if [[ -f "$file" ]]; then
cp "$file" "$backup"
else
: > "$backup"
fi
printf '%s\n' "$backup"
}
status_block() {
local file="$1"
if [[ -f "$file" ]] && rg -Fq "$MARKER_START" "$file"; then
printf 'installed:%s\n' "$file"
else
printf 'not-installed:%s\n' "$file"
fi
}
install_block() {
local file="$1"
mkdir -p "$(dirname "$file")"
touch "$file"
local backup
backup="$(backup_file "$file")"
strip_managed_block "$file"
{
if [[ -s "$file" ]]; then
printf '\n'
fi
build_block
printf '\n'
} >> "$file"
printf 'installed:%s:%s\n' "$file" "$backup"
}
uninstall_block() {
local file="$1"
mkdir -p "$(dirname "$file")"
touch "$file"
local backup
backup="$(backup_file "$file")"
strip_managed_block "$file"
printf 'removed:%s:%s\n' "$file" "$backup"
}
main() {
local rc_file
rc_file="$(detect_rc_file)"
case "$ACTION" in
install)
install_block "$rc_file"
;;
status)
status_block "$rc_file"
;;
uninstall)
uninstall_block "$rc_file"
;;
*)
printf 'Usage: %s [install|status|uninstall]\n' "$0" >&2
exit 1
;;
esac
}
main "$@"