Skip to main content
Stealth mode lets you use Beads for personal task tracking without adding .beads/ files to the repository. Perfect for personal use on shared projects or when you don’t want Beads artifacts in version control.

When to use stealth mode

Use stealth mode when:
  • Personal tracking: Using Beads for your own planning on a project that doesn’t use Beads
  • Experimentation: Testing Beads before committing to it for the team
  • Shared projects: Working on projects where adding .beads/ would be controversial
  • Privacy: Keeping your task management private
Stealth mode is for local-only use. Issues in stealth mode are NOT synced to remotes.

Setting up stealth mode

1

Initialize with --stealth flag

Navigate to your project and initialize Beads in stealth mode:
This:
  • Creates .beads/ directory
  • Adds .beads/ to .git/info/exclude (local gitignore)
  • Sets no-git-ops=true in config
  • Disables automatic git hooks
2

Verify stealth configuration

Check that stealth mode is active:
3

Create issues normally

Use Beads normally - issues won’t appear in git:

How stealth mode works

Stealth mode uses .git/info/exclude instead of .gitignore:
This means:
  • .beads/ is ignored by git
  • ✅ No .gitignore changes in your commits
  • ✅ Other contributors don’t see .beads/ in their status
  • ❌ Stealth mode doesn’t sync to other machines

Configuration

No-git-ops flag

The no-git-ops config prevents git operations:
When no-git-ops=true:
  • No automatic git commits
  • No git hooks installed
  • No backup git push operations
  • Database operations are local-only

Protected branches

Stealth mode disables protected branch features:

Using stealth mode

Creating and managing issues

Use Beads normally:

Viewing issues

All query commands work normally:

Syncing across machines

Stealth mode issues do NOT sync automatically. You must export/import manually.
To sync between machines:

Converting to/from stealth mode

Enabling stealth mode on existing repo

Disabling stealth mode

Backup and recovery

Since stealth mode is local-only, backup is critical:

Manual backup

Automated backup

Set up cron job for regular backups:

Recovery

Stealth mode with teams

Personal stealth, team uses Beads

Scenario: Team uses Beads, you want personal issues in stealth mode. Solution: Use contributor mode instead:

Everyone uses stealth

Scenario: Team wants to use Beads without committing .beads/. Problem: No sync, everyone’s issues are isolated. Solution: Use protected branches instead:
See Sync and backup for team workflows.

Limitations

No automatic sync

Stealth mode has no sync:
  • ❌ No Dolt push/pull
  • ❌ No git integration
  • ❌ No automatic backups
  • ✅ Manual export/import works

No cross-machine consistency

Issue IDs may collide:
Use --prefix to avoid collisions:

No multi-writer support

Stealth mode is single-writer:
  • ❌ No concurrent access
  • ❌ No server mode
  • ✅ Single agent/user only

Comparison with other modes

Best practices

For stealth mode users

  • ✅ Set up automated backups (cron or similar)
  • ✅ Export before major changes or experiments
  • ✅ Use unique prefixes if syncing between machines
  • ✅ Document that you’re using stealth mode (for future you)
  • ❌ Don’t rely on stealth mode for critical data without backups
  • ❌ Don’t use stealth mode for team collaboration

When to switch modes

Switch from stealth to contributor when:
  • You want sync across machines
  • You’re working on a fork and want to avoid PR pollution
  • You want git-backed persistence
Switch from stealth to normal when:
  • Team adopts Beads
  • Project is personal/you control it
  • You want full git integration

Troubleshooting

.beads/ appearing in git status

Diagnosis:
Solution:

Lost issues after machine crash

Problem: Stealth mode is local-only, no backup. Solution: Restore from backup:

ID collisions after import

Problem: Two machines generated same ID. Solution: Use doctor to detect and fix:

See also