Permission Modes
| Mode | Behavior | Indicator |
|---|---|---|
manual | Asks permission for every tool call | [manual] (yellow) |
auto | Auto-approves safe tools + allowed patterns | [auto] (green) |
skip | Fully automatic, deny list still applies | [skip] (cyan) |
planner | Generates implementation plans before executing | [planner] |
Project Configuration
Initialize withlukan init, creates .lukan/config.json:
Pattern Syntax
Bash(git:*)- Any git commandReadFiles(**/.env)- .env files anywhere (recursive glob)ReadFiles- Any ReadFiles call (no args = match all)
Decision Flow (auto mode)
- Deny list - Reject immediately
- Safe tools - Auto-approve (ReadFiles, Grep, Glob, WebFetch, Explore, TaskAdd, TaskList, TaskUpdate, LoadSkill, PlannerQuestion, SubmitPlan)
- Ask list - Prompt user
- Allow list - Auto-approve
- Default - Prompt user
Planner Mode
In planner mode, only read-only and planning tools are allowed:- ReadFiles, Grep, Glob, WebFetch, Explore
- TaskAdd, TaskList, TaskUpdate
- PlannerQuestion, SubmitPlan, LoadSkill
Project-Level Permissions
Runlukan init in your project directory to create a .lukan/config.json file. This file controls what Lukan can do in that specific project.
The permissions are granular:
- Control which commands can run
- Restrict access to sensitive files
- Set up auto-approval for safe operations
Trusted Projects
Set"trusted": true in your project config to reduce permission prompts for known safe workspaces.
Allowed Paths
UseallowedPaths to grant the agent access to directories outside the project root:
~ expansion.
Trusted Directories
For WhatsApp and Email channels (plugins), you can restrict file operations to specific directories:.env, .git/, etc. are always blocked.
Best Practices
- Start with
manualmode to understand what Lukan needs - Gradually move to
automode for routine tasks - Use the deny list to block dangerous operations
- Keep sensitive directories out of allowed paths
- Use
plannermode for complex tasks to review the plan before execution
