opencode icon indicating copy to clipboard operation
opencode copied to clipboard

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

Open athal7 opened this issue 3 weeks 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

This issue might be a duplicate of existing issues. Please check:

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

Feel free to ignore if none of these address your specific case.

github-actions[bot] avatar Jan 08 '26 20:01 github-actions[bot]