---
title: Autonomy Modes
url: https://arcana.otnelhq.com/docs/autonomy-modes
---

# Autonomy Modes



Arcana uses progressive autonomy — you control how much the agent can do without asking. Start safe, increase capability as you gain confidence.






             Design model 

The five-mode ladder below is Arcana's design north star. In current builds, enforcement is handled by the [permission firewall](/docs/permissions) (`allow`/`ask`/`deny` rules per tool) plus interactive approval prompts — dedicated mode-switching via `ARCANA_AUTONOMY` or `/mode` is on the roadmap and not yet wired up.






## The Five Modes



| Mode | Can Read | Can Suggest | Can Execute | Asks First? |
| --- | --- | --- | --- | --- |
| **Observe** | Yes | No | No | N/A |
| **Advise** | Yes | Yes | No | N/A |
| **Ask** (recommended) | Yes | Yes | Yes | Yes |
| **Enforce** | Yes | Yes | Yes | No |
| **Locked** | Limited | No | No | N/A |




## Observe Mode



Read-only analysis. The agent can read files, search code, and analyze your project but cannot make any changes or suggestions.



```bash
# Set observe mode
export ARCANA_AUTONOMY=observe

# Or in the TUI:
/mode observe

# Usage: safe analysis of unfamiliar codebases
arcana run "explain the architecture of this codebase"
arcana run "find all security-sensitive code paths"
```




## Advise Mode



The agent can suggest changes but cannot execute them. Good for code review and planning.



```bash
# Set advise mode
export ARCANA_AUTONOMY=advise

# Usage: get recommendations without risk
arcana run "suggest improvements to the error handling"
arcana run "plan a refactor of the database layer"
```




## Ask Mode (Recommended)



The agent asks before executing risky tool calls. This is the recommended starting point for most users.



```bash
# Default mode — no configuration needed
arcana

# The agent will ask:
# "I'd like to run: git add .
# Should I proceed? [y/n]"
```




## Enforce Mode



The agent executes without asking. Use only when you trust the agent's judgment completely.



```bash
# Set enforce mode
export ARCANA_AUTONOMY=enforce

# Usage: automated workflows where speed matters
arcana run "fix all linting errors in src/"
arcana run "refactor utils.js to TypeScript"
```




## Locked Mode



Minimal permissions. The agent can only read files and cannot execute tools, suggest changes, or modify anything.



```bash
# Set locked mode
export ARCANA_AUTONOMY=locked

# Usage: when you only need answers, not actions
arcana run "what does this function do?"
arcana run "explain this error message"
```




## Switching Modes



```bash
# Environment variable (affects new sessions)
export ARCANA_AUTONOMY=advise

# TUI slash command (affects current session)
/mode observe
/mode advise
/mode ask
/mode enforce

# Config file (persistent default)
# ~/.arcana/config.json
{
  "autonomy": "ask"
}
```




## Per-Tool Permissions



Even in Ask or Enforce mode, you can restrict specific tools:



```bash
# In the TUI, you can allow/deny individual tools:
/allow shell      # Allow shell commands
/deny filesystem  # Deny file writes

# Or configure in config.json:
{
  "tools": {
    "shell": { "enabled": true },
    "filesystem": { "enabled": true, "write": false },
    "git": { "enabled": true }
  }
}
```




## Mode Recommendations



| Scenario | Recommended Mode |
| --- | --- |
| First time using Arcana | `ask` |
| Exploring an unfamiliar codebase | `observe` |
| Code review | `advise` |
| Trusted automated workflow | `enforce` |
| Sensitive production environment | `locked` |
| Cron jobs (unattended) | `ask` (with safe defaults) |
