$ shellfirm
Getting Started

Quick Configuration

Configure challenge types, severity thresholds, and check groups

shellfirm stores its configuration at ~/.config/shellfirm/settings.yaml. You can edit this file directly or use the CLI commands below.

Challenge type

Choose what kind of confirmation shellfirm asks for:

shellfirm config challenge <type>
ChallengeHow it worksBest for
MathSolve a simple math problem (e.g., "5 + 3 = ?")Default -- forces you to pause and think
EnterJust press Enter to confirmTeams that want awareness without friction
YesType the word "yes" to confirmHigh-security environments

Example:

shellfirm config challenge Yes

Note: By default, shellfirm automatically escalates challenges based on check severity — Critical severity commands require typing "yes", and High severity commands require pressing Enter, even on a local machine. See Severity Levels for details.

Escalation overrides

You can set minimum challenge types per group or per check ID:

shellfirm config escalation severity --high Yes       # High severity → Yes
shellfirm config escalation group fs Yes              # All fs checks → Yes
shellfirm config escalation check git:force_push Yes  # Specific check → Yes

See Challenge Types for the full escalation pipeline.

Severity threshold

Control which severity levels trigger a challenge:

shellfirm config severity <level>

There are four practical presets you can think of:

Presetmin_severityWhat triggersDescription
Paranoidall (not set)EverythingAll checks fire, including Info and Low
BalancedMediumMedium, High, CriticalSkips informational and low-severity checks
ChillHighHigh, CriticalOnly the risky stuff
YOLOCriticalCritical onlyJust the commands that can destroy everything

Examples:

# Balanced mode -- Medium and above
shellfirm config severity Medium

# Chill mode -- High and above
shellfirm config severity High

# Paranoid mode -- everything (remove the threshold)
shellfirm config severity all

Check groups

Enable or disable entire categories of checks:

# Disable specific groups
shellfirm config groups --disable kubernetes --disable terraform

# Enable specific groups
shellfirm config groups --enable aws --enable docker

# Interactive multi-select to toggle groups
shellfirm config groups

The 16 available check groups are:

GroupEcosystemExamples
fsFilesystemrm -rf, mkfs, dd
fs-strictFilesystem (strict)Any rm, chmod, rmdir
gitGitpush --force, reset, clean -fd
git-strictGit (strict)add ., commit -a, rebase
dockerDockersystem prune, rm -f, volume rm
kubernetesKubernetesdelete namespace, delete resource
kubernetes-strictKubernetes (strict)scale, rollout, set
awsAWSec2 terminate, s3 rb, rds delete
azureAzuregroup delete, vm delete
gcpGCPprojects delete, instances delete
terraformTerraformdestroy, apply -auto-approve
databaseSQLDROP DATABASE, DELETE FROM
mongodbMongoDBdb.dropDatabase(), collection.drop()
mysqlMySQLmysql -e DROP
psqlPostgreSQLpsql -c DROP
redisRedisFLUSHALL, FLUSHDB
baseSystemFork bomb, reboot, shutdown
networkNetworkiptables -F, ufw disable
herokuHerokuapps:destroy, addons:destroy

All groups are enabled by default. The strict variants (fs-strict, git-strict, kubernetes-strict) provide broader coverage for teams that want more protection.

Viewing your configuration

To see a human-readable summary of all settings:

shellfirm config show

For a more detailed status view including context detection:

shellfirm status

Resetting to defaults

To reset your configuration to the shellfirm defaults:

shellfirm config reset

This will prompt you to either overwrite or create a backup of your existing configuration.

Next steps