Auto-approve Claude Code permission prompts with a denylist and daily limits
Project description
yes-claudio
Auto-approve Claude Code permission prompts — with a denylist and daily limits.
Quick start
Free (10 approvals/day):
pip install yes-claudio
yes-claudio app
Unlimited: buy at bravoevert.gumroad.com/l/yes-claudio, then:
yes-claudio activate YOUR-SERIAL-KEY
yes-claudio app
Prefer
uv?uv tool install yes-claudiothenyes-claudio app.
How it works
yes-claudio installs a PreToolUse hook in ~/.claude/settings.json. Every time Claude Code would show you a permission prompt, the hook intercepts it and returns allow — unless the command matches the denylist, in which case it returns ask (the prompt appears normally).
| Tier | Daily limit | Price |
|---|---|---|
| Free | 10 approvals/day | $0 |
| Paid | Unlimited | $2 one-time |
The GUI shows a tray icon (green = active, orange = daily limit reached, grey = inactive) and a panel with your approval count and license status.
Installation
Requirements:
- Python 3.11+
- macOS:
brew install python-tk@3.14(tkinter is not bundled with Homebrew Python) - Windows/Linux: no extra dependencies
pip install yes-claudio
Usage
Start the app (tray + panel)
yes-claudio app
Open panel only
yes-claudio panel
Activate a license key
yes-claudio activate XXXX-XXXX-XXXX-XXXX
The hook is registered automatically when you click "Ativar hook" in the panel, or you can enable it from the tray menu.
Denylist — what's always blocked
These patterns are always sent back to you for review (ask), regardless of tier:
| Pattern | Reason |
|---|---|
rm -rf |
Recursive deletion |
git push --force / git push -f |
Force push |
git reset --hard |
Discards uncommitted changes |
DROP TABLE / DROP DATABASE / TRUNCATE |
Destructive SQL |
sudo |
Privilege escalation |
dd |
Low-level disk write |
mkfs / fdisk / parted |
Disk partitioning |
chmod 777 /etc |
System-wide permission change |
curl | bash / wget | bash |
Remote code execution |
shred |
Secure file deletion |
shutdown / reboot / halt |
System power commands |
/etc/, /usr/, /bin/, /sbin/ |
System paths |
You can add custom patterns via the "Editar Denylist" button in the panel (supports regex or simple wildcards with * and ?).
Manual configuration (no GUI)
yes-claudio writes this entry to ~/.claude/settings.json:
{
"hooks": {
"PreToolUse": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "yes-claudio hook",
"timeout": 10,
"_tag": "autoconfirm-hook"
}
]
}
]
}
}
To disable, remove the entry above or uncheck "Hook ativo" in the panel.
Uninstall
To remove all traces of yes-claudio:
yes-claudio uninstall
This removes:
- The hook entry from
~/.claude/settings.json ~/.config/autoconfirm/(approvals log, license token, custom denylist)- The package itself (via
uv tool uninstallorpip uninstall)
Use --yes / -y to skip the confirmation prompt (useful in scripts).
You can also uninstall from the panel GUI via the red "Desinstalar yes-claudio" button at the bottom.
FAQ
How do I know it's active?
Green tray icon in the menu bar. You can also run yes-claudio hook manually and pipe JSON to it — it should return {"hookSpecificOutput": {"hookEventName": "PreToolUse", "permissionDecision": "allow", ...}}.
What happens when I hit the daily limit?
The hook returns ask — Claude Code shows the normal permission prompt. The panel banner turns orange and displays an upgrade link.
Is it safe?
Dangerous commands (see denylist above) are always escalated to you. The hook is fail-safe: any internal error returns ask, so Claude Code never auto-approves silently on a crash.
Can I use it on multiple machines? Yes — up to 2 activations per serial. To move to a new machine, contact support to reset.
Does it work with --dangerously-skip-permissions?
No — yes-claudio detects that mode and steps aside. That mode already bypasses prompts; there's nothing to approve.
Where is data stored?
~/.config/autoconfirm/data.json— daily counts and approval log~/.config/autoconfirm/license.json— license token (local, no server)~/.config/autoconfirm/denylist.json— custom patterns
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yes_claudio-0.1.2.tar.gz.
File metadata
- Download URL: yes_claudio-0.1.2.tar.gz
- Upload date:
- Size: 19.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea58666683eb40b6776928f169b57634575db90d9ca7609cf25fa29935e84761
|
|
| MD5 |
4d1dab4371a1441932983218b37775a6
|
|
| BLAKE2b-256 |
bea2342f444c7a6eede269fc4f0294217030a073214e776791df2a35b345b221
|
File details
Details for the file yes_claudio-0.1.2-py3-none-any.whl.
File metadata
- Download URL: yes_claudio-0.1.2-py3-none-any.whl
- Upload date:
- Size: 16.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f71ba7f4fb0c8509c1609a97e245b8434836310e3a33127951166a3549fa3da3
|
|
| MD5 |
34997a5cd4bbfdbebbd738a4b10aaf7d
|
|
| BLAKE2b-256 |
e8d1928874ea94c82372a652d8f9e3d7c132a312d0d2bbb98e42b9987d33c920
|