Skip to content

feat(agent): store Claude Code permission presets in workspace settings #8

@subotic

Description

@subotic

Summary

LOOM should generate Claude Code permission allowlists in the workspace's .claude/settings.json, pre-approving common tool uses so agents can work autonomously without constant permission prompts.

Motivation

Claude Code requires explicit permission for tool uses like running bash commands, editing files, etc. In a LOOM workspace, common operations (building, testing, running linters) are predictable and safe. Pre-approving these permissions means agents can work productively from the first command without the user needing to manually approve each action.

Currently, the generated .claude/settings.local.json only contains additionalDirectories. Permission presets would go in .claude/settings.json (the non-local settings file that can be checked in or shared).

Commands affected

  • loom new
  • loom add
  • loom remove
  • loom down
  • loom list
  • loom status
  • loom exec
  • loom shell
  • loom save
  • loom open
  • loom init
  • loom registry
  • TUI
  • New command

Modules affected

  • agent
  • workspace
  • git
  • config
  • manifest
  • sync
  • tui
  • registry
  • cli

Proposed behavior

Generate a .claude/settings.json in the workspace with a permissions.allow list. The presets could be configurable per workspace or via config.toml, but a sensible default set for development workspaces would include common operations like build commands, test runners, and file operations.

The specifics of which permissions to include by default can be determined during implementation — the key is that the mechanism exists and is extensible.

Acceptance criteria

  • loom new generates .claude/settings.json with permission allowlists
  • Permissions are regenerated on loom add/loom remove/loom open
  • Default presets cover common development operations
  • Users can customize presets (via config or workspace-level override)

Related issues / specs

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions