It drives the tools already on your machine — behind a gate.

Ask in plain language. Jarvis picks the tool, runs the command, and shows you exactly what it ran and why that was allowed. Every tool carries its own written list of commands that are refused before they start.

22
tools
113
refused patterns
140
read-only patterns
Command-line tools22 of 22 known · it drives the ones you already have installed
Check

Cloud platforms

Google Cloud CLIgcloud

Google Cloud Platform CLI for Compute, Storage, IAM, GKE, Cloud Run.

6 refusedMonitor

Azure CLIaz

Microsoft Azure CLI — Resources, VMs, AKS, Functions.

6 refusedMonitor

AWS CLI v2aws

Amazon Web Services CLI — S3, EC2, Lambda, IAM, and more.

7 refusedMonitor

Cloudflare Wranglerwrangler

Cloudflare Workers, Pages, R2, D1 CLI.

5 refusedMonitor

Hosting & deploys

Vercel CLIvercel

Vercel deployments, projects, env variables.

5 refusedMonitor

Netlify CLInetlify

Netlify Sites, Deployments, Functions, Env.

3 refusedMonitor

Heroku CLIheroku

Heroku Apps, Dynos, Addons, Releases.

5 refusedMonitor

Railway CLIrailway

Railway Projects, Services, Deployments.

3 refusedMonitor

Fly.io CLIflyctl

Fly.io Apps, Machines, Volumes, Secrets.

5 refusedMonitor

Render CLIrender

Render.com Services, Deploys, Logs.

2 refusedMonitor

Databases & backends

Supabase CLIsupabase

Supabase Projects, DB, Edge Functions, Migrations.

4 refusedMonitor

Firebase CLIfirebase

Firebase Projects, Hosting, Functions, Firestore.

3 refusedMonitor

PlanetScale CLIpscale

PlanetScale MySQL-Branches, Deploy-Requests.

5 refusedMonitor

Neon CLIneonctl

Neon Serverless Postgres — Projects, Branches, Roles.

4 refusedMonitor

Code hosting

GitHub CLIgh

GitHub Repos, PRs, Issues, Actions, Releases.

4 refusedMonitor

GitLab CLIglab

GitLab Repos, MRs, Issues, CI/CD, Snippets.

4 refusedMonitor

Payments & messaging

Stripe CLIstripe

Stripe Webhooks, Events, Products, Subscriptions.

6 refusedAsk

Twilio CLItwilio

Twilio Numbers, Messages, Voice, Verify, Flex.

3 refusedAsk

Containers

Docker CLIdocker

Docker Container, Images, Volumes, Networks.

6 refusedMonitor

Kubernetes CLIkubectl

Kubernetes Cluster-Management: Pods, Deployments, Services.

5 refusedAsk

Workspace

Google Workspace CLIgws

Google Workspace: Gmail, Drive, Docs, Sheets, Calendar, Tasks, Chat, Slides.

11 refusedMonitor

This app

Jarvis Control CLIjarvisctl

Control this running Jarvis via its own CLI: switch the brain / sub-agent provider, read or change config, search the wiki, list missions / sessions / outputs, manage skills. Reads run free; destructive / recursive commands (dispatch, restart, delete, outbound, …) are blocked.

11 refusedMonitor

No tool in the catalog matches that.

Every command is resolved before it runs.

A tool has a starting tier, and two lists that override it: what it refuses outright, and what it lets straight through because the command only reads. The refusal list wins over the allow list, and the allow list wins over the starting tier — so a tool can be cautious in general and still answer a read instantly.

  1. Safe

    Runs straight away. Reserved for commands that only read.

    Never a starting tier — only where a matched pattern lands

  2. Monitor

    Runs, and is written down — what was run, and why it was allowed.

    19 of 22 tools start here

  3. Ask

    Stops and asks you first, every time.

    3 of 22 tools start here

  4. Block

    Refused before it starts. Nothing runs.

    Never a starting tier — only where a matched pattern lands

Worked example

GitHub CLI starts at monitor. Its allow list contains gh pr list*, so asking "what pull requests are open" resolves to safe and answers straight away — while gh repo delete is on the refusal list and never starts, whatever it is asked to do.

gh repo delete *
gh release delete *
gh secret delete *
gh secret set *

What each one refuses, in full.

All 113 patterns, verbatim from the catalog. A command matching one of these is refused before the tool is started — not asked about, not logged and run anyway. The list is per tool because "delete" means something different in each of them.

Google Cloud CLIgcloud6 refusedThe tool's own login
gcloud * delete *
gcloud projects delete *
gcloud compute instances delete *
gcloud iam service-accounts delete *
gcloud sql instances delete *
gcloud storage rm *
Azure CLIaz6 refusedThe tool's own login
az * delete *
az group delete *
az vm delete *
az aks delete *
az storage account delete *
az * delete*
AWS CLI v2aws7 refusedAPI key
aws * delete-*
aws s3 rm * --recursive*
aws s3 rb *
aws iam delete-*
aws ec2 terminate-instances *
aws * delete*
aws * terminate-instances*
Cloudflare Wranglerwrangler5 refusedThe tool's own login
wrangler delete *
wrangler r2 bucket delete *
wrangler d1 delete *
wrangler delete*
wrangler kv:key delete*
Vercel CLIvercel5 refusedThe tool's own login
vercel remove *
vercel rm *
vercel project rm *
vercel domains rm *
vercel env rm *
Netlify CLInetlify3 refusedThe tool's own login
netlify sites:delete *
netlify env:unset *
netlify sites:delete*
Heroku CLIheroku5 refusedThe tool's own login
heroku apps:destroy *
heroku addons:destroy *
heroku pg:reset *
heroku apps:destroy*
heroku addons:destroy*
Railway CLIrailway3 refusedThe tool's own login
railway down *
railway delete *
railway delete*
Fly.io CLIflyctl5 refusedThe tool's own login
flyctl apps destroy *
flyctl volumes destroy *
flyctl machine destroy *
flyctl apps destroy*
flyctl machine destroy*
Render CLIrender2 refusedAPI key
render services delete *
render services delete*
Supabase CLIsupabase4 refusedThe tool's own login
supabase projects delete *
supabase db reset*
supabase migration repair*
supabase projects delete*
Firebase CLIfirebase3 refusedThe tool's own login
firebase projects:delete *
firebase firestore:delete *
firebase hosting:disable*
PlanetScale CLIpscale5 refusedThe tool's own login
pscale database delete *
pscale branch delete *
pscale deploy-request cancel*
pscale database delete*
pscale branch delete*
Neon CLIneonctl4 refusedThe tool's own login
neonctl projects delete *
neonctl branches delete *
neonctl projects delete*
neonctl branches delete*
GitHub CLIgh4 refusedThe tool's own login
gh repo delete *
gh release delete *
gh secret delete *
gh secret set *
GitLab CLIglab4 refusedThe tool's own login
glab repo delete *
glab issue delete *
glab mr close *
glab repo delete*
Stripe CLIstripe6 refusedThe tool's own login
stripe charges * --live*
stripe subscriptions cancel *
stripe * delete *
stripe customers delete *
stripe * delete*
stripe refunds create*
Twilio CLItwilio3 refusedAPI key
twilio api:core:messages:create *
twilio * delete *
twilio api:core:*:remove*
Docker CLIdocker6 refusedThe tool's own login
docker rm *
docker rmi *
docker volume rm *
docker system prune*
docker container prune*
docker network rm *
Kubernetes CLIkubectl5 refusedAlready signed in
kubectl delete *
kubectl drain *
kubectl cordon *
kubectl replace --force*
kubectl * --all-namespaces* delete*
Google Workspace CLIgws11 refusedThe tool's own login
gws * delete*
gws * * delete*
gws * * * delete*
gws * trash*
gws * * trash*
gws gmail * send*
gws gmail * * send*
gws chat * create*
gws chat * * create*
gws auth export*
gws auth logout*
Jarvis Control CLIjarvisctl11 refusedNo sign-in
jarvisctl * delete *
jarvisctl * delete*
jarvisctl auth *
jarvisctl api * secrets*
jarvisctl api * keys*
jarvisctl * dispatch*
jarvisctl * restart*
jarvisctl * kill*
jarvisctl * rerun*
jarvisctl * cancel*
jarvisctl * outbound*

Everything on this page ships in the app.

One line installs it. Nothing here is an add-on, a paid tier or a waiting list.

TerminalPowerShellShell

curl -fsSL https://raw.githubusercontent.com/PersonalJarvis/PersonalJarvis/main/install/install.sh | bash

irm https://raw.githubusercontent.com/PersonalJarvis/PersonalJarvis/main/install/install.ps1 | iex

curl -fsSL https://raw.githubusercontent.com/PersonalJarvis/PersonalJarvis/main/install/install.sh | bash

The rest of it

Read from the application's own catalog — jarvis/clis/catalog/seed_catalog.json — on 2026-08-29.