opencode icon indicating copy to clipboard operation
opencode copied to clipboard

add --dir flag to `opencode run --attach`

Open athal7 opened this issue 6 days ago • 1 comments

opencode attach has a --dir flag to specify the working directory when attaching to a remote server:

opencode attach <url>

Options:
  --dir         directory to run in                                                     [string]

However, opencode run --attach does not expose this flag:

opencode run [message..]

Options:
  --attach      attach to a running opencode server (e.g., http://localhost:4096)       [string]
  # no --dir option

Use Case

I'm building opencode-pilot, a service that polls external sources (Linear, GitHub, etc.) and spawns OpenCode sessions for new issues. When a user runs OpenCode Desktop connected to a global server (worktree="/"), I want spawned sessions to:

  1. Appear in the Desktop UI (requires --attach)
  2. Run in the correct project directory (requires --dir)

Currently I can only achieve one or the other:

# Sessions appear in Desktop, but run in wrong directory (home)
cd ~/projects/my-app && opencode run --attach http://localhost:4096 "fix bug"
# Working directory: /Users/me (wrong!)

# Sessions run in correct directory, but don't appear in Desktop
cd ~/projects/my-app && opencode run "fix bug"  
# Working directory: /Users/me/projects/my-app (correct, but isolated)

Proposed Solution

Add --dir flag to opencode run that gets passed through when --attach is used:

opencode run --attach http://localhost:4096 --dir /path/to/project "fix bug"

The server middleware already supports this via x-opencode-directory header or ?directory= query param, so this should be straightforward to wire up.

Related

  • #7011 - adds --cwd to opencode serve/web
  • #6697 - session switching doesn't change working directory context
  • #6715 - pass attach directory to sdk client (merged)

athal7 avatar Jan 08 '26 20:01 athal7