Loading...
Loading...
Bridge between OpenWork UI and OpenCode runtime
npx skill4agent add different-ai/openwork opencode-bridgeopencodeopencode -p "your prompt" -f json -q| Flag | Description |
|---|---|
| Prompt to execute |
| Output format ( |
| Quiet mode (no spinner) |
| Working directory |
| Debug mode |
{
"content": "Here is the result...",
"session_id": "abc123"
}~/.opencode/opencode.db.opencode/opencode.dbCREATE TABLE sessions (
id TEXT PRIMARY KEY,
parent_session_id TEXT,
title TEXT,
message_count INTEGER,
prompt_tokens INTEGER,
completion_tokens INTEGER,
summary_message_id TEXT,
cost REAL,
created_at INTEGER,
updated_at INTEGER
);CREATE TABLE messages (
id TEXT PRIMARY KEY,
session_id TEXT,
role TEXT, -- 'user', 'assistant', 'tool'
parts TEXT, -- JSON array of content parts
model TEXT,
created_at INTEGER,
updated_at INTEGER
);use tauri_plugin_sql::{Migration, MigrationKind};
#[tauri::command]
async fn list_sessions(db: tauri::State<'_, Database>) -> Result<Vec<Session>, String> {
let sessions = sqlx::query_as::<_, Session>(
"SELECT * FROM sessions ORDER BY updated_at DESC"
)
.fetch_all(&db.pool)
.await
.map_err(|e| e.to_string())?;
Ok(sessions)
}import Database from "@tauri-apps/plugin-sql";
const db = await Database.load("sqlite:~/.opencode/opencode.db");
const sessions = await db.select<Session[]>(
"SELECT * FROM sessions ORDER BY updated_at DESC"
);{
"mcpServers": {
"openwork": {
"type": "stdio",
"command": "openwork-mcp-bridge"
}
}
}parts{ "type": "text", "text": "Hello world" }{
"type": "tool_call",
"id": "call_123",
"name": "bash",
"input": "{\"command\": \"ls\"}"
}{
"type": "tool_result",
"tool_call_id": "call_123",
"content": "file1.txt\nfile2.txt",
"is_error": false
}{
"type": "finish",
"reason": "end_turn",
"time": 1704067200
}which opencode
opencode --versionls ~/.opencode/opencode.dbopencode -p "Hello" -f json -q