[PR #2921] feat: add workspace multi-directory support #10484

Closed
opened 2026-02-16 18:15:09 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/anomalyco/opencode/pull/2921

State: closed
Merged: No


Implements workspace-based multi-directory access control, allowing opencode to work with files across multiple directories.

Changes

Core Module

  • New Workspace module manages directory allowlist with defaults (cwd, worktree) + configurable directories
  • PathValidation module unifies workspace checks with permission system
  • Config schema extended with workspace.directories field

API & CLI

  • REST endpoints: GET/POST/DELETE /workspace/directories
  • CLI commands: opencode workspace add|remove|list|clear
  • TUI: /add-dir command (requires SDK regeneration)

Security

  • All file tools (read, write, edit, patch, bash) now use unified workspace validation
  • Paths outside workspace trigger permission prompts
  • Fixed: Read tool now uses Instance.directory instead of process.cwd()

Usage

# CLI
opencode workspace add ../related-project
opencode workspace list
# Config (opencode.json)
{
  "workspace": {
    "directories": ["../other-dir", "/absolute/path"]
  }
}

Breaking Changes

File operations outside workspace now require explicit permission approval.

Notes

TUI /add-dir command requires SDK regeneration to function (placeholder implemented).

**Original Pull Request:** https://github.com/anomalyco/opencode/pull/2921 **State:** closed **Merged:** No --- Implements workspace-based multi-directory access control, allowing opencode to work with files across multiple directories. ## Changes ### Core Module - New `Workspace` module manages directory allowlist with defaults (cwd, worktree) + configurable directories - `PathValidation` module unifies workspace checks with permission system - Config schema extended with `workspace.directories` field ### API & CLI - REST endpoints: `GET/POST/DELETE /workspace/directories` - CLI commands: `opencode workspace add|remove|list|clear` - TUI: `/add-dir` command (requires SDK regeneration) ### Security - All file tools (read, write, edit, patch, bash) now use unified workspace validation - Paths outside workspace trigger permission prompts - Fixed: Read tool now uses `Instance.directory` instead of `process.cwd()` ## Usage ```bash # CLI opencode workspace add ../related-project opencode workspace list ``` ```json # Config (opencode.json) { "workspace": { "directories": ["../other-dir", "/absolute/path"] } } ``` ## Breaking Changes File operations outside workspace now require explicit permission approval. ## Notes TUI `/add-dir` command requires SDK regeneration to function (placeholder implemented).
yindo added the pull-request label 2026-02-16 18:15:09 -05:00
yindo closed this issue 2026-02-16 18:15:09 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#10484