Files
headquarter/openspec/specs/opencode-web-server/spec.md
T
OpenCode Agent 01a0ef46c9 feat: terminal startup command and container tools
- Add startup_command field to ToolType model and API
- Execute startup command before interactive shell in terminal sessions
- Add tmux and ranger to OpenCode container spec
- Update Tool Workshop UI with startup_command input for terminal types
- Add backend tests for startup_command CRUD operations
- Sync specs: tool-terminal, tool-types-definition, opencode-web-server
- New spec: tool-terminal-startup-command

Quality gates: Frontend typecheck/lint passed. Backend tests blocked by environment (Python/Docker not available).

OpenSpec: terminal-startup-and-container-tools
2026-05-24 22:21:55 +00:00

1.5 KiB

ADDED Requirements

Requirement: OpenCode runs a web server

The system SHALL configure OpenCode containers to run a web server accessible on port 3000.

Scenario: OpenCode container starts

  • GIVEN an OpenCode tool instance
  • WHEN the container starts
  • THEN a web server is running on port 3000 inside the container
  • AND the server serves a web terminal interface
  • AND the container has tmux installed
  • AND the container has ranger installed

Requirement: OpenCode exposes web interface

The system SHALL mark OpenCode as having both terminal and web interfaces.

Scenario: OpenCode instance created

  • GIVEN a new OpenCode instance
  • WHEN the instance list is displayed
  • THEN both "Open" and "Terminal" buttons are shown

Requirement: OpenCode web terminal uses correct port

The system SHALL use port 3000 when creating tunnels for OpenCode instances.

Scenario: Tunnel created for OpenCode

  • GIVEN an OpenCode instance with default_port: 3000
  • WHEN the instance starts and creates a tunnel
  • THEN the tunnel targets http://container-name:3000

Requirement: OpenCode web terminal displays properly

The system SHALL serve a functional web terminal interface for OpenCode.

Scenario: User opens OpenCode web UI

  • GIVEN a running OpenCode instance
  • WHEN the user clicks the "Open" button
  • THEN a new tab opens with the OpenCode web interface
  • AND the interface shows a terminal connected to the OpenCode process
  • AND the user can run tmux and ranger commands