Skip to content

Releases: t-rhex/opencode

v0.1.0-remote.8: Fix /dir dialog showing 'No results found'

Choose a tag to compare

@t-rhex t-rhex released this 04 Feb 17:50

What's Changed

Bug Fix

  • Fix /dir dialog showing "No results found" — Loading and error states were marked disabled: true, which DialogSelect always filters out. Now they render as visible items ("Loading..." or "Failed to browse remote directory" with retry on select).
  • Surface browse errors via toast — Previously, fetch errors in the browse dialog were silently swallowed (.catch(() => null)). Now errors show as toast messages so you can see what's failing.

Install

curl -fsSL https://raw.githubusercontent.com/t-rhex/opencode/dev/install.sh | bash

v0.1.0-remote.7: Fix config loading in remote mode

Choose a tag to compare

@t-rhex t-rhex released this 04 Feb 16:58

What's Changed

Bug Fix

  • Fix "config file not valid" error after remote connect — Config files (~/.config/opencode-remote/, ~/.opencode-remote/) are local to the machine. After remote connect, CurrentFilesystem becomes RemoteFilesystem, which tried to read local Mac paths (e.g. /Users/username/.opencode-remote/opencode-remote.jsonc) via SFTP on the remote Linux server. Now config files are always read from the local filesystem.
  • Skip project .opencode-remote/ directory scan in remote mode — Filesystem.up() uses local fs operations and would fail when Instance.directory is a remote path.

Install

curl -fsSL https://raw.githubusercontent.com/t-rhex/opencode/dev/install.sh | bash

v0.1.0-remote.6: Fix remote mode hang + session isolation

Choose a tag to compare

@t-rhex t-rhex released this 04 Feb 16:11

What's Changed

Critical Bug Fix

  • Fix LLM response hang in remote mode — The SSE event stream was subscribed to an instance-scoped Bus. After remote connect, events were published to a different Bus instance (keyed by the remote directory), so the TUI never received model responses. Fixed by switching the /event SSE endpoint to use GlobalBus which receives all events regardless of instance.

Remote Mode Bootstrap Fixes

  • Skip file watcher (FileWatcher.init) in remote mode — was trying to watch local paths that don't exist
  • Skip file scanner (File.init) in remote mode — was running readdir and ripgrep on local paths
  • Skip LSP spawning (LSP.init) in remote mode — was trying to spawn local language servers

UI Improvements

  • Session header now shows remote directory path and git branch (e.g. ~/project:master SSH: dev@localhost:2223)
  • Footer path updates correctly after remote connect and directory changes (was showing stale local path)
  • Create directory prompt in /dir now accepts absolute paths (e.g. /home/dev/newproject)

Session/Directory Isolation

  • Changing directory via /dir navigates to home screen — next message starts a fresh session for the new directory
  • Session list in remote mode is filtered by current directory — sessions from /project-a don't appear when working in /project-b
  • Session search also respects directory filtering

Infrastructure

  • Remote connect/disconnect/set-directory emit server.instance.disposed via GlobalBus to trigger TUI re-bootstrap
  • Worker event stream restarts after initRemote (CLI --remote path)

Install

curl -fsSL https://raw.githubusercontent.com/t-rhex/opencode/dev/install.sh | bash

v0.1.0-remote.5: Remote Directory Browser

Choose a tag to compare

@t-rhex t-rhex released this 04 Feb 01:34

What's New

Remote Directory Browser (/dir command)

  • /dir (aliases: /cd, /directory) — opens a directory browser dialog to navigate and select the remote working directory
  • Browse subdirectories, navigate to parent, view git repo indicators
  • Create directory — create new directories directly from the browser via mkdir -p
  • Type a path — enter an absolute path manually
  • Recent directories — shows up to 5 previously used directories per host

Auto Home Directory Detection

  • Quick-connecting without a profile (/remote dev@host:2223) now auto-detects $HOME on the remote and sets it as the initial working directory
  • No more broken paths from local cwd leaking into remote sessions

Directory Persistence

  • Last-used directory is remembered per host:port in KV store
  • On reconnect, the saved directory is automatically restored
  • Toast hint: "Type /dir to change working directory" shown on first connect

Connect Response Improvements

  • POST /remote/connect response now includes remoteDir field
  • GET /remote/status response now includes remoteDir field

New Server Endpoints

  • GET /remote/browse?path=... — list directories at a remote path (supports ~ expansion)
  • POST /remote/set-directory — change working directory, with optional create: true for mkdir -p

Bug Fixes

  • Fixed Docker test container SSH permissions (COPY keys at build time instead of read-only bind mount)
  • Added default SSH key fallback (~/.ssh/id_ed25519, id_rsa, id_ecdsa) for quick-connect when no SSH config or agent is available

Install

curl -fsSL https://raw.githubusercontent.com/t-rhex/opencode/dev/install.sh | bash

Or download the binary for your platform from the assets below.

v0.1.0-remote.4 — SSH Config Auto-Discovery

Choose a tag to compare

@t-rhex t-rhex released this 04 Feb 00:29

What's New

SSH config auto-discovery

The /remote dialog now automatically detects hosts from your ~/.ssh/config and lists them under an SSH Config category. No need to manually re-enter hosts you've already configured.

Wildcard entries (Host *) and glob patterns are filtered out. If a host exists in both SSH config and as an opencode-remote profile, the profile takes priority.

Install / Upgrade

curl -fsSL https://raw.githubusercontent.com/t-rhex/opencode/dev/install.sh | bash

This will overwrite any previous opencode-remote binary at ~/.local/bin/opencode-remote.

Full changelog since v0.1.0-remote.3

  • GET /remote/ssh-hosts endpoint — parses ~/.ssh/config, returns connectable hosts
  • /remote dialog shows SSH Config hosts alongside profiles
  • Deduplication: profiles shadow SSH config entries with the same name

v0.1.0-remote.10: Fix --remote CLI authentication

Choose a tag to compare

@t-rhex t-rhex released this 04 Feb 19:16

Fix

  • --remote CLI flag now auto-discovers SSH keys — Previously, opencode-remote --remote user@host failed with "All configured authentication methods failed" when no --identity flag was given and no SSH agent was running. The TUI /remote dialog worked fine because it had a defaultKey() fallback that scans ~/.ssh/ for id_ed25519, id_rsa, or id_ecdsa. This fallback is now also applied to the --remote CLI path, making both paths behave identically.

Install

curl -fsSL https://raw.githubusercontent.com/t-rhex/opencode/dev/packages/opencode/install.sh | bash

v0.1.0-remote.3 — Binary Rename + Quick Connect + Install Script

Choose a tag to compare

@t-rhex t-rhex released this 03 Feb 22:01

What's New

Binary renamed to opencode-remote

The binary inside archives is now correctly named opencode-remote (was opencode). Can coexist with upstream OpenCode without conflicts.

One-liner install

curl -fsSL https://raw.githubusercontent.com/t-rhex/opencode/dev/install.sh | bash

Auto-detects platform, arch, and libc. Installs to ~/.local/bin.

/remote user@host quick-connect

Type /remote user@host in the prompt to connect directly without opening the dialog.

Connection persistence

Remembers your last connected host. Shows a reconnect hint on next startup.

SSH agent forwarding

Add "agentForward": true to a profile to forward your local SSH agent for git operations on the remote.

Port forwarding in /remote dialog

"Forward port..." option in the /remote dialog. Enter 3000 or 3000:8080 to create tunnels. Active tunnels shown with stop option.

Full README

Complete documentation: install, config, CLI flags, remote features, architecture.


Install

curl -fsSL https://raw.githubusercontent.com/t-rhex/opencode/dev/install.sh | bash

Platforms

Platform Asset
macOS (Apple Silicon) dist-opencode-darwin-arm64.zip
macOS (Intel) dist-opencode-darwin-x64.zip
Linux x64 dist-opencode-linux-x64.tar.gz
Linux arm64 dist-opencode-linux-arm64.tar.gz
Linux x64 musl dist-opencode-linux-x64-musl.tar.gz
Linux arm64 musl dist-opencode-linux-arm64-musl.tar.gz
Windows x64 dist-opencode-windows-x64.zip

Baseline (no AVX2) variants also included.

v0.1.0-remote.2 — Remote Dev (Namespaced)

Choose a tag to compare

@t-rhex t-rhex released this 03 Feb 21:15

OpenCode Remote Dev — v0.1.0-remote.2

Now fully namespaced as opencode-remote — can be installed alongside upstream opencode without conflicts.

What changed from v0.1.0-remote.1

  • All paths and identifiers renamed to avoid conflicts with upstream opencode
  • Config: ~/.config/opencode-remote/, Data: ~/.local/share/opencode-remote/
  • Project dir: .opencode-remote/, Config file: opencode-remote.json
  • CLI identifies as opencode-remote
  • Added "Add server..." option to /remote dialog for ad-hoc connections

Features

  • SSH filesystem abstraction — all file operations work transparently over SSH
  • --remote user@host CLI flag with SSH config and ProxyJump support
  • /remote slash command — connect/disconnect/switch SSH hosts from TUI
  • Connection profiles in config with keepalive, env vars, setup commands
  • MCP over SSH — MCP servers spawn on the remote host
  • Remote diagnostics, PTY, auto-reconnection
  • GitHub Copilot only — all other providers stripped

Binaries

Platform File
macOS Apple Silicon dist-opencode-darwin-arm64.zip
macOS Intel dist-opencode-darwin-x64.zip
Linux ARM64 dist-opencode-linux-arm64.tar.gz
Linux x64 dist-opencode-linux-x64.tar.gz
Linux x64 (musl/Alpine) dist-opencode-linux-x64-musl.tar.gz
Windows x64 dist-opencode-windows-x64.zip

Baseline (no AVX2) variants also included for older CPUs.

v0.1.0-remote.1 — Remote Dev Preview

Pre-release

Choose a tag to compare

@t-rhex t-rhex released this 03 Feb 20:32

OpenCode Remote Dev — First Preview Release

Forked from opencode-ai/opencode with full remote SSH development support and GitHub Copilot as the only provider.

Remote Development

  • SSH filesystem abstraction — all file operations (read, write, glob, exec) work transparently over SSH
  • --remote user@host CLI flag with SSH config and ProxyJump support
  • /remote slash command — connect/disconnect/switch SSH hosts interactively from the TUI
  • Connection profiles in config.json with keepalive, env vars, setup commands
  • Remote diagnostics — disk/memory/load metrics via SSH
  • Remote PTY — bash sessions on the remote host
  • MCP over SSH — local-type MCP servers spawn on the remote host via SSH exec channels
  • Connection status in TUI header with latency indicator
  • Auto-reconnection with exponential backoff

Copilot-Only

  • All non-GitHub Copilot providers commented out (code preserved)
  • Model list filtered to only show Copilot and Copilot Enterprise models
  • Provider dependencies removed from package.json (~19 packages)

Binary

  • opencode-darwin-arm64.tar.gz — macOS Apple Silicon
  • Extract and run: tar xzf opencode-darwin-arm64.tar.gz && ./opencode