Nextjs React Expert
Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI
React and Next.js performance optimization from Vercel Engineering.
Expert workflow for reviewing Tauri 2 desktop app performance.
$ npx skills add mukiwu/tempo-term --skill tauri-performance-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mukiwu/tempo-term tauri-performance-review --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mukiwu/tempo-term.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/tauri-performance-review .claude/skills/tauri-performance-review && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "tauri-performance-review" agent skill from https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/tauri-performance-review into .claude/skills/tauri-performance-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tauri-performance-review", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/tauri-performance-reviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mukiwu/tempo-term --skill tauri-performance-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mukiwu/tempo-term tauri-performance-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mukiwu/tempo-term.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/tauri-performance-review .agents/skills/tauri-performance-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "tauri-performance-review" agent skill from https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/tauri-performance-review into .agents/skills/tauri-performance-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tauri-performance-review", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mukiwu/tempo-term --skill tauri-performance-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mukiwu/tempo-term tauri-performance-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mukiwu/tempo-term.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/tauri-performance-review .cursor/skills/tauri-performance-review && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "tauri-performance-review" agent skill from https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/tauri-performance-review into .cursor/skills/tauri-performance-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tauri-performance-review", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mukiwu/tempo-term.git --path .claude/skills/tauri-performance-review--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mukiwu/tempo-term --skill tauri-performance-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mukiwu/tempo-term tauri-performance-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mukiwu/tempo-term.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/tauri-performance-review .gemini/skills/tauri-performance-review && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "tauri-performance-review" agent skill from https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/tauri-performance-review into .gemini/skills/tauri-performance-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tauri-performance-review", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mukiwu/tempo-term tauri-performance-reviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mukiwu/tempo-term --skill tauri-performance-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mukiwu/tempo-term.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/tauri-performance-review .github/skills/tauri-performance-review && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "tauri-performance-review" agent skill from https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/tauri-performance-review into .github/skills/tauri-performance-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tauri-performance-review", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mukiwu/tempo-term --skill tauri-performance-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mukiwu/tempo-term tauri-performance-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mukiwu/tempo-term.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/tauri-performance-review .opencode/skills/tauri-performance-review && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "tauri-performance-review" agent skill from https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/tauri-performance-review into .opencode/skills/tauri-performance-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tauri-performance-review", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
tauri-performance-reviewExpert workflow for reviewing Tauri 2 desktop app performance.
Tauri Performance Review is an agent skill from mukiwu/tempo-term. Expert workflow for reviewing Tauri 2 desktop app performance. Covers IPC payload optimization, async command efficiency, state lock contention, large-data streaming via Channel/Response, frontend bundle size, and startup time.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Business, Finance & HR, covering Performance reviews and Web performance. It works with Tauri and Rust. The repository describes itself as: AI-powered terminal, editor and file explorer. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 6750c17. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are rust, typescript, toml and json).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
v2.tauri.appFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Tauri Performance Review loads about 2.4k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 277 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mukiwu/tempo-term at commit 6750c17, republished under its Apache-2.0 licence (© mukiwu). 277 words, ~2,396 tokens.
.claude/skills/tauri-performance-review/SKILL.md (or your agent's skills folder).Expert workflow for reviewing Tauri 2 code with a focus on IPC throughput, async correctness, and binary/large-payload handling.
Invoke this skill (or the tauri-performance-reviewer agent) when changes touch:
#[tauri::command] returning or accepting non-trivial datainvoke() callers (especially in hot paths)Mutex, RwLock, Arctauri.conf.json build / dev / bundle settingsCargo.toml features and profilesEvery invoke() round-trip serializes args to JSON, crosses a process boundary, and deserializes the response. Optimize per call, then minimize call count, then stream when total bytes are large.
□ Async fn for I/O work (file, net, db) — never block the runtime
□ Sync fn for pure compute / very fast operations
□ Returns < 100KB use normal serde JSON
□ Returns ≥ 100KB binary use tauri::ipc::Response::new(bytes)
□ Streaming/progress uses tauri::ipc::Channel<T>
□ Inputs aren't Vec<u8> when an ArrayBuffer Request body would work
□ No std::sync::Mutex held across .await (use tokio::sync::Mutex)
□ No .clone() of large Vec/String when a reference works
□ &str arguments instead of String when ownership not needed
□ No JSON parse/stringify inside hot loops
□ Database/HTTP connection pooled (managed state, not per-call)□ Mutex chosen for the access pattern (sync vs tokio)
□ Read-heavy state uses RwLock, not Mutex
□ Lock scope is minimal — release before slow work
□ No Arc<Mutex<T>> wrapping (Tauri does the Arc internally)
□ No deep clones of state on every read — return references via map_or borrow□ No invoke() in render loops without memoization
□ Multiple sequential invokes that fetch related data → combine into one command
□ Large blob downloads use Channel for progress + Response for bytes
□ Listen for Tauri events instead of polling via invoke
□ No invoke() inside React useEffect without dependency array□ build.frontendDist points to a built (minified) frontend, not dev source
□ bundle.resources only includes what's needed (not entire src/)
□ bundle.macOS.minimumSystemVersion set (avoids fat universal slices for old macOS)
□ app.windows[].visible: false at start if you want to wait for "ready" event (avoids white flash)
□ app.windows[].decorations / transparent set conservatively (each costs paint perf)
□ No huge bundled binaries in externalBin if avoidable□ [profile.release] uses opt-level = 3 (default) and lto = "thin" or "fat"
□ codegen-units = 1 in release for max optimization (slower compile, faster binary)
□ strip = true in release (smaller binary)
□ panic = "abort" in release (smaller binary, faster)
□ No unnecessary default features on heavy crates (use default-features = false)□ tauri::Builder::default() doesn't do heavy work in setup (defer to first command)
□ Plugins initialized lazily where the plugin supports it
□ Frontend doesn't fetch all data on mount — paginate
□ Splash window or hidden-then-show pattern for slow initialization// ❌ WRONG — 10MB image becomes ~14MB base64 JSON, ~200ms encode + parse
#[tauri::command]
fn read_image(path: String) -> Result<Vec<u8>, Error> {
Ok(std::fs::read(path)?)
}
// ✅ CORRECT — raw ArrayBuffer, ~10ms
#[tauri::command]
fn read_image(path: String) -> Result<tauri::ipc::Response, Error> {
Ok(tauri::ipc::Response::new(std::fs::read(path)?))
}Frontend:
const buf = await invoke<ArrayBuffer>('read_image', { path })std::sync::Mutex Across .await (Panic + Slow)// ❌ WRONG — panics in some Tokio configs; serializes async tasks
#[tauri::command]
async fn save(state: State<'_, std::sync::Mutex<AppState>>) -> Result<(), Error> {
let mut s = state.lock().unwrap(); // sync lock
tokio::fs::write("...", &s.buf).await?; // held across .await
Ok(())
}
// ✅ CORRECT — use tokio's async mutex
#[tauri::command]
async fn save(state: State<'_, tokio::sync::Mutex<AppState>>) -> Result<(), Error> {
let mut s = state.lock().await;
tokio::fs::write("...", &s.buf).await?;
Ok(())
}// ❌ WRONG — invoke every 500ms, wakes the UI thread + Rust constantly
setInterval(async () => {
setStatus(await invoke<Status>('get_status'))
}, 500)
// ✅ CORRECT — emit from Rust, listen from frontend
import { listen } from '@tauri-apps/api/event'
const un = await listen<Status>('status:changed', (e) => setStatus(e.payload))app.emit("status:changed", status)?;// ❌ WRONG — caller waits 30s for download; no progress UI possible
#[tauri::command]
async fn download(url: String) -> Result<Vec<u8>, Error> {
Ok(reqwest::get(&url).await?.bytes().await?.to_vec())
}
// ✅ CORRECT — Channel sends progress + chunks
#[derive(Clone, Serialize)]
#[serde(tag = "event", content = "data")]
enum DownloadEvent {
Progress { downloaded: u64, total: u64 },
Chunk(Vec<u8>),
Done,
}
#[tauri::command]
async fn download(url: String, on_event: Channel<DownloadEvent>) -> Result<(), Error> {
let resp = reqwest::get(&url).await?;
let total = resp.content_length().unwrap_or(0);
let mut downloaded = 0;
let mut stream = resp.bytes_stream();
while let Some(chunk) = stream.next().await {
let chunk = chunk?;
downloaded += chunk.len() as u64;
on_event.send(DownloadEvent::Progress { downloaded, total })?;
on_event.send(DownloadEvent::Chunk(chunk.to_vec()))?;
}
on_event.send(DownloadEvent::Done)?;
Ok(())
}// ❌ WRONG — 50 round-trips for 50 notes
const notes: Note[] = []
for (const id of ids) {
notes.push(await invoke<Note>('get_note', { id }))
}
// ✅ CORRECT — one round-trip
const notes = await invoke<Note[]>('get_notes', { ids })// ❌ WRONG — lock held while writing 100MB to disk; blocks all readers
let mut s = state.lock().await;
tokio::fs::write(&path, &s.huge_buffer).await?; // 2 seconds
s.last_saved = Some(now());
drop(s);
// ✅ CORRECT — clone what's needed, release lock immediately
let buffer = {
let s = state.lock().await;
s.huge_buffer.clone()
};
tokio::fs::write(&path, &buffer).await?;
state.lock().await.last_saved = Some(now());.setup() Blocks Window Show// ❌ WRONG — DB load on startup adds 3s to first paint
.setup(|app| {
let db = load_database_sync()?; // blocks
app.manage(db);
Ok(())
})
// ✅ CORRECT — initialize lazily, show window first
.setup(|app| {
let handle = app.handle().clone();
tauri::async_runtime::spawn(async move {
let db = load_database().await.unwrap();
handle.manage(db);
handle.emit("db:ready", ()).ok();
});
Ok(())
})# ❌ Default — 80MB binary
[profile.release]
opt-level = 3
# ✅ Tuned for ship-quality binary — typically 25-40MB
[profile.release]
opt-level = "z" # or "s" for size
lto = true
codegen-units = 1
panic = "abort"
strip = true// ❌ WRONG — frontendDist points at unminified source
"build": { "frontendDist": "../src" }
// ✅ CORRECT — point at production build output
"build": {
"beforeBuildCommand": "pnpm build",
"frontendDist": "../dist"
}.clone() On Large State Read// ❌ WRONG — clones a 10MB Vec on every read
#[tauri::command]
fn get_buffer(state: State<'_, Mutex<AppState>>) -> Vec<u8> {
state.lock().unwrap().buffer.clone()
}
// ✅ CORRECT — return Response (raw bytes), no JSON, single copy
#[tauri::command]
fn get_buffer(state: State<'_, Mutex<AppState>>) -> tauri::ipc::Response {
tauri::ipc::Response::new(state.lock().unwrap().buffer.clone())
}
// Or even better: use Bytes/Arc<[u8]> in state to avoid the clone entirely| Severity | Examples | Action |
|---|---|---|
| CRITICAL | std::sync::Mutex across .await (panic risk), 100MB+ JSON returns, polling at <1s interval, blocking I/O in async command | Block merge |
| HIGH | Channel not used for streaming, N+1 invoke pattern, large clone() in hot path, lock held across slow work | Fix before merge |
| MEDIUM | Missing release profile tuning, missing minimumSystemVersion, suboptimal Mutex choice for read-heavy state | Follow-up |
| LOW | Stylistic, micro-opts in cold paths | Backlog |
| Check | Source |
|---|---|
| Calling Rust (commands, Channel, Response) | https://v2.tauri.app/develop/calling-rust/ |
| State management | https://v2.tauri.app/develop/state-management/ |
| Bundle / config | https://v2.tauri.app/reference/config/ |
tauri-performance-reviewer/tauri-perf, /tauri-check, /tauri-audit© mukiwu, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/tauri-performance-review of mukiwu/tempo-term.
Open the folder on GitHubat commit 6750c17
Tauri Performance Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Tauri Performance Review this skillmukiwu/tempo-term | 229 | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Nextjs React ExpertDokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI | 508 | — | ~1.7k | Automated safety check: Pass | Custom licence | |
| Reflectsamzong/Recall | 105 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Add UI Stringopenfootmanager/openfootmanager | 1.1k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Worklog Designregisx001/Worklog | 261 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Veloxdb Scalable Performanceveloxbase/veloxdb | 652 | — | ~1.7k | Automated safety check: Pass | MIT |
Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI
React and Next.js performance optimization from Vercel Engineering.
samzong/Recall
Use Recall Reflect to review AI coding workflow history as a conversation-first timeline and discuss observed patterns before changing behavior.
openfootmanager/openfootmanager
Add or change any text a player can see, in every locale the game ships in.
regisx001/Worklog
Design and UI skill for the Worklog desktop project manager.
veloxbase/veloxdb
Guides scalability and performance work for VeloxDB's Tauri + Rust PostgreSQL backend and React + TanStack frontend.
devlint/GitWand
A skill your agent uses when the user wants to expose a Rust feature to the Vue frontend, add a Tauri IPC command, invoke something from a Vue component, or wire up any backend/frontend…
mukiwu/tempo-term
A skill your agent uses when working with Tauri 2 projects (tauri.conf.json, src-tauri/, capabilities, permissions,
mukiwu/tempo-term
A skill your agent uses when writing or reviewing code in this Tauri app that can behave differently on Windows — spawning a subprocess (git/gh/any Command), path handling, cfg-gated platform APIs…
mukiwu/tempo-term
Expert workflow for reviewing Tauri 2 desktop app security. An agent skill from mukiwu/tempo-term.
Categories
Expert workflow for reviewing Tauri 2 desktop app performance. Tauri Performance Review is an agent skill from mukiwu/tempo-term. Expert workflow for reviewing Tauri 2 desktop app performance.
Tauri Performance Review fits situations like: tasks that involve Performance reviews; tasks that involve Web performance.
Run `npx skills add mukiwu/tempo-term --skill tauri-performance-review -a claude-code`. Or copy the skill folder (.claude/skills/tauri-performance-review in mukiwu/tempo-term) into .claude/skills/tauri-performance-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mukiwu/tempo-term --skill tauri-performance-review -a codex`. Or copy the skill folder (.claude/skills/tauri-performance-review in mukiwu/tempo-term) into .agents/skills/tauri-performance-review in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mukiwu/tempo-term --skill tauri-performance-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tauri-performance-review, .gemini/skills/tauri-performance-review, .github/skills/tauri-performance-review and .opencode/skills/tauri-performance-review in your project.
SKILL.md names no scripts, command-line tools or credentials: Tauri Performance Review is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: v2.tauri.app. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Tauri Performance Review is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Tauri Performance Review: Nextjs React Expert (Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI, 508 stars), Reflect (samzong/Recall, 105 stars), Add UI String (openfootmanager/openfootmanager, 1.1k stars) and Worklog Design (regisx001/Worklog, 261 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mukiwu (a GitHub user) maintains it in mukiwu/tempo-term, which has 229 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on September 30, 2026.
Source: mukiwu/tempo-term on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.