tauri-solidjs by different-ai/openwork
npx skills add https://github.com/different-ai/openwork --skill tauri-solidjspnpm create tauri-app openwork --template solid-ts
pnpm tauri dev
pnpm tauri build
# iOS
pnpm tauri ios dev
pnpm tauri ios build
# Android
pnpm tauri android dev
pnpm tauri android build
openwork/
packages/
desktop/
src-tauri/
src/
main.rs # Rust 入口点
lib.rs # Tauri 命令和状态
Cargo.toml # Rust 依赖项
tauri.conf.json # Tauri 配置
capabilities/ # 权限能力
src/
App.tsx # SolidJS 根组件
index.tsx # 入口点
components/ # UI 组件
stores/ # 用于状态的 Solid 存储
lib/ # 工具和 OpenCode 桥接
index.html # HTML 模板
package.json # 前端依赖项
vite.config.ts # Vite 配置
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
{
"dependencies": {
"solid-js": "^1.8.0",
"@tauri-apps/api": "^2.0.0",
"@tauri-apps/plugin-shell": "^2.0.0",
"@tauri-apps/plugin-fs": "^2.0.0",
"@tauri-apps/plugin-sql": "^2.0.0"
},
"devDependencies": {
"@tauri-apps/cli": "^2.0.0",
"vite": "^5.0.0",
"vite-plugin-solid": "^2.8.0",
"tailwindcss": "^3.4.0"
}
}
[dependencies]
tauri = { version = "2", features = ["shell-open"] }
tauri-plugin-shell = "2"
tauri-plugin-fs = "2"
tauri-plugin-sql = { version = "2", features = ["sqlite"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
// packages/desktop/src-tauri/src/lib.rs
use tauri::Manager;
#[tauri::command]
async fn spawn_opencode(prompt: String) -> Result<String, String> {
use std::process::Command;
let output = Command::new("opencode")
.args(["-p", &prompt, "-f", "json", "-q"])
.output()
.map_err(|e| e.to_string())?;
String::from_utf8(output.stdout)
.map_err(|e| e.to_string())
}
#[tauri::command]
fn get_opencode_db_path() -> String {
// 返回 .opencode/opencode.db 的路径
dirs::home_dir()
.map(|p| p.join(".opencode/opencode.db").to_string_lossy().to_string())
.unwrap_or_default()
}
import { invoke } from "@tauri-apps/api/core";
async function runTask(prompt: string) {
const result = await invoke<string>("spawn_opencode", { prompt });
return JSON.parse(result);
}
@tauri-apps/api/core 而不是 @tauri-apps/api/tauri。tauri-plugin-fs 和能力配置。tauri-plugin-sql。pnpm add -D @tauri-apps/cli
pnpm tauri init
pnpm tauri ios init
pnpm tauri android init
每周安装量
152
仓库
GitHub 星标数
12.3K
首次出现
2026年1月22日
安全审计
已安装于
opencode148
gemini-cli145
codex142
github-copilot142
cursor139
claude-code137
pnpm create tauri-app openwork --template solid-ts
pnpm tauri dev
pnpm tauri build
# iOS
pnpm tauri ios dev
pnpm tauri ios build
# Android
pnpm tauri android dev
pnpm tauri android build
openwork/
packages/
desktop/
src-tauri/
src/
main.rs # Rust entry point
lib.rs # Tauri commands and state
Cargo.toml # Rust dependencies
tauri.conf.json # Tauri configuration
capabilities/ # Permission capabilities
src/
App.tsx # SolidJS root component
index.tsx # Entry point
components/ # UI components
stores/ # Solid stores for state
lib/ # Utilities and OpenCode bridge
index.html # HTML template
package.json # Frontend dependencies
vite.config.ts # Vite configuration
{
"dependencies": {
"solid-js": "^1.8.0",
"@tauri-apps/api": "^2.0.0",
"@tauri-apps/plugin-shell": "^2.0.0",
"@tauri-apps/plugin-fs": "^2.0.0",
"@tauri-apps/plugin-sql": "^2.0.0"
},
"devDependencies": {
"@tauri-apps/cli": "^2.0.0",
"vite": "^5.0.0",
"vite-plugin-solid": "^2.8.0",
"tailwindcss": "^3.4.0"
}
}
[dependencies]
tauri = { version = "2", features = ["shell-open"] }
tauri-plugin-shell = "2"
tauri-plugin-fs = "2"
tauri-plugin-sql = { version = "2", features = ["sqlite"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
// packages/desktop/src-tauri/src/lib.rs
use tauri::Manager;
#[tauri::command]
async fn spawn_opencode(prompt: String) -> Result<String, String> {
use std::process::Command;
let output = Command::new("opencode")
.args(["-p", &prompt, "-f", "json", "-q"])
.output()
.map_err(|e| e.to_string())?;
String::from_utf8(output.stdout)
.map_err(|e| e.to_string())
}
#[tauri::command]
fn get_opencode_db_path() -> String {
// Return path to .opencode/opencode.db
dirs::home_dir()
.map(|p| p.join(".opencode/opencode.db").to_string_lossy().to_string())
.unwrap_or_default()
}
import { invoke } from "@tauri-apps/api/core";
async function runTask(prompt: string) {
const result = await invoke<string>("spawn_opencode", { prompt });
return JSON.parse(result);
}
@tauri-apps/api/core instead of @tauri-apps/api/tauri.tauri-plugin-fs and capability configuration.tauri-plugin-sql.pnpm add -D @tauri-apps/cli
pnpm tauri init
pnpm tauri ios init
pnpm tauri android init
Weekly Installs
152
Repository
GitHub Stars
12.3K
First Seen
Jan 22, 2026
Security Audits
Gen Agent Trust HubFailSocketPassSnykPass
Installed on
opencode148
gemini-cli145
codex142
github-copilot142
cursor139
claude-code137
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
113,700 周安装