Skip to content
Back to skills

Tauri Solidjs

ASecurity

Tauri 2.x + SolidJS stack for Openrind Desktop native app

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 26, 2026
developmentrustgoshellbashsqlapifrontendbackend

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 26, 2026

npx -y skills add openrind/openrind-shell --skill tauri-solidjs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tauri Solidjs?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tauri Solidjs
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/openrind-tauri-solidjs/badge)](https://www.skillsdirectory.com/skills/openrind-tauri-solidjs)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: tauri-solidjs
description: Tauri 2.x + SolidJS stack for Openrind Desktop native app
---

## Quick Usage (Already Configured)

### Create new Tauri + SolidJS project
```bash
pnpm create tauri-app openrind-desktop --template solid-ts
```

### Development
```bash
pnpm tauri dev
```

### Build for production
```bash
pnpm tauri build
```

### Build for mobile
```bash
# iOS
pnpm tauri ios dev
pnpm tauri ios build

# Android
pnpm tauri android dev
pnpm tauri android build
```

## Project Structure

```
openrind-desktop/
  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
```


## Key Dependencies

### Frontend (package.json)
```json
{
  "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"
  }
}
```

### Backend (Cargo.toml)
```toml
[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"
```

## Tauri Commands (Rust -> JS)

```rust
// 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()
}
```

## Invoking Commands from SolidJS

```tsx
import { invoke } from "@tauri-apps/api/core";

async function runTask(prompt: string) {
  const result = await invoke<string>("spawn_opencode", { prompt });
  return JSON.parse(result);
}
```

## Common Gotchas

- Tauri 2.x uses `@tauri-apps/api/core` instead of `@tauri-apps/api/tauri`.
- Mobile builds require Xcode (iOS) or Android Studio (Android).
- File access requires `tauri-plugin-fs` and capability configuration.
- SQLite access requires `tauri-plugin-sql`.

## First-Time Setup (If Not Configured)

### Install Tauri CLI
```bash
pnpm add -D @tauri-apps/cli
```

### Initialize Tauri in existing project
```bash
pnpm tauri init
```

### Add mobile targets
```bash
pnpm tauri ios init
pnpm tauri android init
```

## References

- [Tauri 2.0 Docs](https://v2.tauri.app/)
- [SolidJS Docs](https://www.solidjs.com/)
- [Tauri Mobile](https://v2.tauri.app/start/prerequisites/#mobile)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…