Skip to content

panic

The panic command activates an emergency lockdown that immediately blocks all domains and hides dangerous commands.

Panic mode is designed for crisis moments when you need absolute protection against impulsive access. It:

  • Immediately blocks all configured domains
  • Hides commands like unblock, allow, disallow
  • Cannot be disabled until the timer expires
  • Minimum duration of 15 minutes
SubcommandDescription
panic DURATIONActivate panic mode
panic statusCheck panic mode status
panic extend MINUTESExtend panic duration

Activate panic mode for the specified duration.

Terminal window
nextdns-blocker panic DURATION
FormatExampleDescription
Minutes6060 minutes
Minutes30m30 minutes
Hours2h2 hours
Days1d1 day
Terminal window
# Activate for 1 hour
nextdns-blocker panic 60
# Activate for 30 minutes
nextdns-blocker panic 30m
# Activate for 4 hours
nextdns-blocker panic 4h
# Activate for 1 day
nextdns-blocker panic 1d
⚠️ PANIC MODE ACTIVATED
Duration: 60 minutes
Expires at: 2024-01-15 15:30:00
All domains are now blocked.
The following commands are disabled:
- unblock
- allow
- disallow
Subcommands also restricted:
- config edit
- pending cancel
- watchdog disable
Panic mode cannot be cancelled.
Wait for expiration or use 'panic extend' to add more time.

Panic mode requires a minimum of 15 minutes to be effective:

Terminal window
nextdns-blocker panic 10

Output:

Error: Minimum panic duration is 15 minutes

Check the current panic mode status.

Terminal window
nextdns-blocker panic status
Panic Mode Status
━━━━━━━━━━━━━━━━━
Status: ACTIVE
Activated: 2024-01-15 14:30:00
Expires: 2024-01-15 15:30:00
Remaining: 45 minutes
Hidden commands:
- unblock
- allow
- disallow
Hidden subcommands:
- config edit
- pending cancel
- watchdog disable
Panic Mode Status
━━━━━━━━━━━━━━━━━
Status: Inactive
Use 'panic DURATION' to activate
Example: nextdns-blocker panic 60

Extend the current panic mode duration.

Terminal window
nextdns-blocker panic extend MINUTES
Terminal window
# Add 30 more minutes
nextdns-blocker panic extend 30
Panic mode extended by 30 minutes
New expiration: 2024-01-15 16:00:00
Remaining: 75 minutes
  • Panic mode must be active
  • Extension adds to remaining time

Every domain in your blocklist is immediately added to the NextDNS denylist, regardless of schedule:

Before panic:
reddit.com: AVAILABLE (within schedule)
twitter.com: BLOCKED
youtube.com: AVAILABLE (within schedule)
After panic:
reddit.com: BLOCKED (panic override)
twitter.com: BLOCKED
youtube.com: BLOCKED (panic override)

These commands are completely hidden from help and tab completion:

CommandWhy Hidden
unblockWould bypass panic
allowWould add allowlist entries that bypass blocks
disallowHidden for consistency

These subcommands are also hidden during panic mode:

SubcommandWhy Hidden
config editWould allow modifying schedules
pending cancelWould allow cancelling pending actions
watchdog disableWould stop automatic sync

Attempting to run them directly:

Terminal window
nextdns-blocker unblock reddit.com

Output:

Error: Command 'unblock' is not available during panic mode
Panic mode expires at: 2024-01-15 15:30:00

During panic mode, sync:

  • Blocks all domains regardless of schedule
  • Skips unblock processing
  • Skips allowlist sync (prevents bypasses)
  • Processes pending action cancellation (cleanup only)

Pending unblock actions are paused during panic mode:

  • Their timers continue
  • But execution is skipped
  • They resume processing after panic expires

Panic mode is based on behavioral psychology research:

  1. Crisis Moments: During moments of weakness, you need absolute protection
  2. No Loopholes: Hidden commands prevent “just this once” thinking
  3. Time-Based: You know it will end, reducing desperation
  4. Extendable: If needed, you can add more time
SituationRecommended Duration
Feeling tempted30-60 minutes
After a slip2-4 hours
Bad day4-8 hours
Weekend protection24-48 hours
Recovery periodMultiple days
FeaturePurposeCan Disable
Panic modeCrisis protectionNo
ScheduleRegular accessVia config
AllowlistPermanent exceptionsYes

Panic state is stored in:

  • macOS/Linux: ~/.local/share/nextdns-blocker/.panic
  • Windows: %LOCALAPPDATA%\nextdns-blocker\.panic

The file contains an ISO 8601 timestamp of expiration.

Check for existing panic:

Terminal window
nextdns-blocker panic status

Force a sync:

Terminal window
nextdns-blocker config push

Check watchdog is running:

Terminal window
nextdns-blocker watchdog status

This is intentionally not possible. Panic mode’s effectiveness comes from its inescapability.

Options:

  • Wait for expiration
  • In extreme emergencies, delete the .panic file (not recommended)

They might be:

  • Cached in your browser (clear cache)
  • Cached in your OS DNS (flush DNS)
  • Not going through NextDNS (check DNS settings)
Terminal window
# macOS: Flush DNS
sudo dscacheutil -flushcache
# Linux
sudo systemctl restart systemd-resolved
# Windows
ipconfig /flushdns