Release Publish
bkywksj/knowledge-base
发布 Tauri 桌面应用新版本,处理版本号同步、Git tag、GitHub Actions 构建、Release 仓库产物同步、Cloudflare R2 上传、update.json 生成、自动更新发布和文档站重建。
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…
$ npx skills add mukiwu/tempo-term --skill windows-tauri -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mukiwu/tempo-term windows-tauri --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/windows-tauri .claude/skills/windows-tauri && 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 "windows-tauri" agent skill from https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/windows-tauri into .claude/skills/windows-tauri/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "windows-tauri", 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/windows-tauriType 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 windows-tauri -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mukiwu/tempo-term windows-tauri --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/windows-tauri .agents/skills/windows-tauri && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "windows-tauri" agent skill from https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/windows-tauri into .agents/skills/windows-tauri/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "windows-tauri", 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 windows-tauri -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mukiwu/tempo-term windows-tauri --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/windows-tauri .cursor/skills/windows-tauri && 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 "windows-tauri" agent skill from https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/windows-tauri into .cursor/skills/windows-tauri/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "windows-tauri", 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/windows-tauri--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 windows-tauri -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mukiwu/tempo-term windows-tauri --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/windows-tauri .gemini/skills/windows-tauri && 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 "windows-tauri" agent skill from https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/windows-tauri into .gemini/skills/windows-tauri/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "windows-tauri", 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 windows-tauriInstalls 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 windows-tauri -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/windows-tauri .github/skills/windows-tauri && 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 "windows-tauri" agent skill from https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/windows-tauri into .github/skills/windows-tauri/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "windows-tauri", 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 windows-tauri -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 windows-tauri --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/windows-tauri .opencode/skills/windows-tauri && 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 "windows-tauri" agent skill from https://github.com/mukiwu/tempo-term/tree/master/.claude/skills/windows-tauri into .opencode/skills/windows-tauri/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "windows-tauri", 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.
windows-tauriA 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…
Windows Tauri is an agent skill from mukiwu/tempo-term. Use 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, the pty/terminal, clipboard, ssh, line endings, or a new native crate — and before cutting a release. The dev box is macOS, so Windows regressions do not surface locally; they only show in the Windows CI build or on a user's machine. Encodes the Windows pitfalls this repo has actually shipped and fixed.
Its SKILL.md is about 4.3k 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 Development. It works with Tauri, Git, macOS and GitHub Actions. The repository describes itself as: AI-powered terminal, editor and file explorer. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
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.
Shell commands in SKILL.md call:
cargoghbashnodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.
From 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.
Windows Tauri loads about 4.3k tokens when it runs. Until then it costs about 124 tokens; SKILL.md has 2,230 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). 2,230 words, ~4,345 tokens.
.claude/skills/windows-tauri/SKILL.md (or your agent's skills folder).Development happens on macOS. Two GitHub Actions cover Windows: .github/workflows/windows-check.yml runs cargo check with warnings-as-errors on a windows-latest runner for every PR and push to master (added in #191), and .github/workflows/windows-build.yml builds the actual bundle only on a v* tag (or manual dispatch). So a compile or warning regression now fails the PR that caused it; but a runtime, bundle, or behavior bug still compiles clean and only surfaces in the tagged Windows build or on a user's machine. Historically there was no per-PR gate at all — which is why every Windows bug in this repo's history before #191 reached a release.
This skill is the checklist that closes the remaining gap: everything cargo check cannot see. Read it before touching any of the surfaces below, and run the pre-flight list before a release.
Apply while writing, not after. Each line links to the detailed rule.
CREATE_NO_WINDOW on Windows, or a console flashes and each call costs ~100ms in a release build. →gh.exe/.cmd/.bat, home is USERPROFILE, install dirs differ. →gh/git blocks the caller thread forever; add a timeout. →\r, not \n, or ConPTY leaves it on a >> continuation line. →child.wait() and close the console to unblock the reader (catalog row #272)..sh; quote Windows paths with double quotes. →#[cfg(unix)] API, a cfg-split command, or a new native crate? It must compile warning-free on Windows — windows-check.yml runs cargo check with -D warnings per PR. Provide a Windows arm or cfg-gate cleanly, and allow(dead_code)/allow(unused_variables) the mac-only bits. →/proc, lsof, a unix socket, pty foreground? No Windows backend exists; skip the feature there or return a clean None. →IS_WINDOWS, do not leave it IS_MAC-only. →#[tauri::command]? The command must be async (and wrap the build in spawn_blocking), or WebView2 deadlocks. →windows-build.yml is the bundle/link gate (per-PR cargo check already covered compile); latest.json notes get re-patched; functional test on a real Windows host. →| Symptom on Windows | Root cause | Rule | Shipped fix |
|---|---|---|---|
| Black console flashes on every git/gh call; UI stalls | Release build owns no console (windows_subsystem = "windows"); a spawn without CREATE_NO_WINDOW allocates one | Set CREATE_NO_WINDOW on every Command | #82, #105 |
"PATH 上找不到 gh CLI" although gh is installed | Searched for bare gh; Windows binary is gh.exe; used HOME and macOS install dirs | Append .exe/.cmd/.bat, use USERPROFILE, Windows install dirs | #89 |
Launcher command sits under a >> prompt, never runs | ConPTY/PSReadLine binds CR to submit, LF to continuation; we injected LF | Terminate injected commands with \r | #160 |
| Status hook never fires / spams "Open With" dialog | bash escapes \; a bare .sh under cmd triggers ShellExecute picker | Forward-slash paths; do not inject a bare .sh on Windows | #76, #155 (open) |
cargo build fails on a stock Windows box | aws-lc-sys (via russh default aws-lc-rs) needs NASM | Use russh ring backend | #75 |
| Windows release fails to compile (E0599) once SSH landed | AgentClient::connect_env is #[cfg(unix)] | Windows arm: connect_named_pipe / connect_pageant | #52, #54 |
Windows warns unused variable / dead_code, then fails under -D warnings | A cfg-split command's structs/params are only read in the #[cfg(target_os = "macos")] arm; the Windows arm is a no-op stub | #[cfg_attr(not(target_os = "macos"), allow(dead_code))] on the model, allow(unused_variables) on the fn | #190, gated #191 |
| Terminal paste does nothing | Native paste suppressed everywhere; smart-paste mac-only; backend empty off mac | Route Ctrl+V via IS_WINDOWS; read clipboard with clipboard-win | #75 |
| cwd tracking dead / 1.2s poll fires empty IPC every terminal | pty_cwd has no Windows backend (/proc, lsof absent) | Skip the poll on Windows, or use OSC 7 shell integration | #105, #115 |
| Updater "更新內容" dialog empty after a release | Windows CI tauri-action rewrites latest.json and wipes notes | Re-patch notes post-build from CHANGELOG-NEXT.md | #43 |
| Diff-open lag only in the release build | Same console-flash spawn cost, per git subprocess | CREATE_NO_WINDOW (see row 1) | #82 |
| Ctrl+N opens a blank unclosable window; shortcuts die app-wide | WebviewWindowBuilder::build() in a sync command deadlocks the WebView2 event loop (wry#583) | Window-creating commands must be async + spawn_blocking | #209 |
Pane hangs dead after exit; on_exit never fires | ConPTY's reader never sees EOF while the pseudo console is open (microsoft/terminal#1810), and the session registry kept the master alive — teardown sequenced behind reader EOF deadlocks | Detect exit via child.wait() in a waiter thread, then drop the master (closes the pseudo console) to unblock the reader; never gate teardown on reader EOF | #272 |
CREATE_NO_WINDOWA release build sets windows_subsystem = "windows" (src-tauri/src/main.rs:2) and owns no console, so Windows allocates a fresh console for every child process spawned without the flag: a visible window flash plus ~100ms per call. tauri dev owns a console, so this never reproduces in dev — only in a release build or on a user's machine.
Copy the established helper shape (src-tauri/src/modules/git/mod.rs:545, src-tauri/src/modules/pr/mod.rs:185):
use std::process::Command;
fn spawn_thing(exe: &str) -> Command {
let mut command = Command::new(exe);
#[cfg(windows)]
{
use std::os::windows::process::CommandExt;
const CREATE_NO_WINDOW: u32 = 0x0800_0000;
command.creation_flags(CREATE_NO_WINDOW);
}
command
}Rule: any new Command that shells out (git, gh, a formatter, anything) routes through a helper that sets this flag. A no-op on Unix and on debug builds; mandatory in the Windows release.
find_gh() searched for a file literally named gh; on Windows the binary is gh.exe, so it never matched (#89). Three separate assumptions break:
gh, then gh.exe, gh.cmd, gh.bat on Windows. See exe_names() in src-tauri/src/modules/pr/mod.rs.HOME; fall back to USERPROFILE./opt/homebrew/bin; use Program Files\GitHub CLI, chocolatey, scoop shims.Parameterize the platform (windows: bool) so both arms are unit-testable on the mac CI runner, rather than hiding the Windows path behind #[cfg] where it never gets exercised locally.
Command::output() has no timeout. A hung gh (network stall, an interactive auth prompt) blocks the calling thread forever, and on a poll timer those pile up (#105). Wrap spawns that can hang with a timeout (this repo uses the wait-timeout crate — see run_gh in src-tauri/src/modules/pr/mod.rs, 5s kill).
On Windows ConPTY, PSReadLine binds CR (\r) to AcceptLine (submit) and LF (\n) to AddLine (a >> continuation line). An injected \n never runs the command (#160). macOS/Linux tolerate \n only because the pty line discipline (ICRNL) maps CR→LF on input, hiding the bug.
Rule: any code that auto-types a command into a pane (runCommandInTerminal, launcher command injection) terminates with \r. CR is what a real Enter key sends and what xterm emits, so it submits on all three platforms.
\.** A Windows backslash path handed to anything Claude Code / git-bash runs collapses (C:\Users\... → C:Users...). Store and compare paths in a single forward-slash form; git-bash accepts them. See normalize() in src-tauri/src/modules/claude_status_hook/mod.rs..sh command on Windows. cmd cannot execute a .sh path and pops the "Open With" picker on every hook event (#155, still open). If a shell script must run, name the interpreter explicitly (bash -c "..." / the git-bash bash.exe), or ship a .cmd/.ps1/native shim.The dev box cannot cross-compile the Windows bundle — git2, font-kit, portable-pty, and crypto crates all pull native code, so only windows-build.yml on a Windows runner catches a break. Two recurring traps:
#[cfg(unix)] API used unconditionally fails to compile on Windows (E0599). AgentClient::connect_env (unix socket) needed a Windows arm (connect_named_pipe / connect_pageant) and the shared loop extracted into a generic helper (#52, #54). When an API has no Windows form, cfg-gate it and provide a Windows path or a clean error — do not leave the call unconditional.set_native_menu (src-tauri/src/modules/menu.rs) keeps its NativeMenuModel structs and its app param only for the #[cfg(target_os = "macos")] arm; on Windows they are dead code / an unused variable, so windows-check.yml's cargo check -D warnings fails the PR (#190 shipped the warning, #191 added the gate). Guard the mac-only bits: #[cfg_attr(not(target_os = "macos"), allow(dead_code))] on the types, #[cfg_attr(not(target_os = "macos"), allow(unused_variables))] on the fn. Prefer these cfg-scoped allows over an _-prefix, which would also hide the value from the macOS arm that needs it.aws-lc-sys needs NASM; switching russh to its ring backend removed that so cargo build works on a stock Windows MSVC setup (#75). Before adding a crate with a -sys dependency, check its Windows build requirements.windows-check.yml now compiles the Windows target on every PR with warnings-as-errors, so a broken cfg-gate or a Windows-only warning fails the PR automatically — no manual step. For anything cargo check cannot prove (bundling, native-crate link, runtime), still kick windows-build.yml (workflow_dispatch) and confirm it is green before merging.
Some capabilities have no Windows implementation and must degrade cleanly, not error or busy-loop:
portable-pty exposes none on Windows, so detecting that claude/codex is running (for image auto-attach) is mac/Linux only (#75)./proc, no lsof, so read_process_cwd returns None. The frontend must not keep polling pty_cwd every 1.2s per terminal into a dead backend — guard the poll off on Windows (#105), or drive cwd from OSC 7 shell integration instead (#115).Rule: when a feature's backend is a no-op on Windows, gate the frontend caller too, so it does not fire pointless IPC or show a broken control.
IS_WINDOWS, not just IS_MACPlatform branches written as "mac vs everything else" silently break Windows. Terminal paste was suppressed on all platforms and the smart-paste shortcut was IS_MAC-only, so Windows had no paste at all (#75). Window decorations are native on Windows and need a custom TitleBar (#67). Use IS_WINDOWS from src/lib/platform.ts and give Windows its own explicit branch.
WebviewWindowBuilder::build() (and WindowBuilder/WebviewBuilder) deadlocks on Windows when called from a synchronous #[tauri::command] or event handler. WebView2 dispatches window creation as a message to the main event loop and blocks on the reply; a sync command runs on that same thread, so it waits on itself (upstream wry#583, called out in the Tauri builder docs). macOS/WKWebView has no such constraint, so this never reproduces in dev on the mac — only on a user's Windows machine.
The symptom is nasty and non-obvious: the OS window shell appears painted only with the builder's background_color (a blank dark rectangle — the webview never initializes), decorations(false) means no native frame and the React TitleBar never renders so there is no close button, and the wedged event loop kills every subsequent IPC-based shortcut app-wide. That was #208: a user pressing Ctrl+N (wired to the open_new_window command) got an unclosable blank window and a dead app.
The fix is what the Tauri docs prescribe — make the command async so it runs off the main thread — plus spawn_blocking so the blocking main-thread round-trips (build(), inner_size(), scale_factor()) stay off the shared async worker pool, matching how every other async command here handles blocking work:
#[tauri::command]
async fn open_new_window(app: tauri::AppHandle) -> Result<(), String> {
tauri::async_runtime::spawn_blocking(move || modules::menu::create_new_window(&app))
.await
.map_err(|e| e.to_string())?
.map_err(|e| e.to_string())
}Any command that builds a window or webview must follow this shape. Note that async commands can now run concurrently, so window-label allocation (next_window_label) can race across two rapid invocations — benign here (one window opens, the duplicate build() errors), but worth knowing if label collisions ever matter.
The release is two-phase: scripts/release.sh runs on the mac (build, notarize, latest.json, gh release create with the v* tag), and the tag push triggers windows-build.yml, which builds on Windows, uploads .exe/.msi, and merges the windows-x86_64 platform into latest.json.
windows-check.yml gates compilation per PR, but windows-build.yml is the only thing that bundles and links the actual Windows binary; a red build means the release ships no working Windows binary.CHANGELOG-NEXT.md. windows-build.yml re-patches latest.json's notes from the changelog at the tagged commit. If the changelog was already archived/emptied, notes (macOS included) get wiped (#43). Do not point the tag at a master HEAD whose changelog was cleared.latest.json before CI finishes — tauri-action rewrites it mid-run and would clobber your patch. Patch only after CI, via node scripts/patchManifestNotes.mjs <manifest> <changelog> then gh release upload --clobber.windows-check.yml already gates compilation (warnings included); to test behavior, push the branch and run windows-build.yml via workflow_dispatch, then download the artifact.windows: bool (see pr/mod.rs) so the Windows path has real unit tests that run on the mac, instead of #[cfg(windows)] code that is never executed until a user hits it.© 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/windows-tauri of mukiwu/tempo-term.
Open the folder on GitHubat commit 6750c17
Windows Tauri 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 |
|---|---|---|---|---|---|---|
| Windows Tauri this skillmukiwu/tempo-term | 228 | — | ~4.3k | Automated safety check: Pass | Apache-2.0 | |
| Release Publishbkywksj/knowledge-base | 330 | — | ~6.2k | Automated safety check: Pass | Custom licence | |
| Sake CI Releasekattouf/Sake | 116 | — | ~731 | Automated safety check: Pass | MIT | |
| Releaseobjeck/objeck-lang | 165 | — | ~10k | Automated safety check: Warn | Custom licence | |
| Native Feel Cross Platform Desktopyetone/native-feel-skill | 1.9k | 1 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Build Px4 macOSPX4/PX4-Autopilot | 13k | — | ~1.1k | Automated safety check: Pass | BSD-3-Clause |
bkywksj/knowledge-base
发布 Tauri 桌面应用新版本,处理版本号同步、Git tag、GitHub Actions 构建、Release 仓库产物同步、Cloudflare R2 上传、update.json 生成、自动更新发布和文档站重建。
kattouf/Sake
A skill your agent uses when working on CI workflows, GitHub Actions, release process, changelog generation (git-cliff), or dependabot configuration.
objeck/objeck-lang
Fully automate an Objeck release — reads version.h, auto-bumps if needed, pre-flight gates, LSP sync, docs update, tag push, GitHub Actions build/sign/publish monitoring, release body, and…
yetone/native-feel-skill
A skill your agent uses when the user is designing, prototyping, or rewriting a desktop app that must run on multiple OSes (macOS + Windows, optionally Linux) AND feel indistinguishable from a…
PX4/PX4-Autopilot
Build PX4 board firmware on macOS in the px4-dev Docker container, including git worktrees, and stage commit-labeled artifacts without flashing hardware.
cline/cline
Covers preparing, tagging and publishing a Cline desktop app release on the stable, beta or nightly channel through the desktop-publish GitHub workflow.
mukiwu/tempo-term
A skill your agent uses when working with Tauri 2 projects (tauri.conf.json, src-tauri/, capabilities, permissions,
mukiwu/tempo-term
Expert workflow for reviewing Tauri 2 desktop app performance.
mukiwu/tempo-term
Expert workflow for reviewing Tauri 2 desktop app security. An agent skill from mukiwu/tempo-term.
Works with
Categories
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…. Windows Tauri is an agent skill from mukiwu/tempo-term. Use 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, the pty/terminal, clipboard, ssh, line endings, or a new native crate — and before cutting a release.
Windows Tauri fits situations like: reviewing code in this Tauri app that can behave differently on Windows — spawning a subprocess (git/gh/any Command); cfg-gated platform APIs; the pty/terminal; A new native crate — and before cutting a release.
Run `npx skills add mukiwu/tempo-term --skill windows-tauri -a claude-code`. Or copy the skill folder (.claude/skills/windows-tauri in mukiwu/tempo-term) into .claude/skills/windows-tauri in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mukiwu/tempo-term --skill windows-tauri -a codex`. Or copy the skill folder (.claude/skills/windows-tauri in mukiwu/tempo-term) into .agents/skills/windows-tauri 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 windows-tauri -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/windows-tauri, .gemini/skills/windows-tauri, .github/skills/windows-tauri and .opencode/skills/windows-tauri in your project.
Going by SKILL.md and its folder, Windows Tauri needs the command-line tools its instructions call (cargo, gh, bash and node).
SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. 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.
Windows Tauri 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 4.3k tokens (SKILL.md is roughly 17k 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 Windows Tauri: Release Publish (bkywksj/knowledge-base, 330 stars), Sake CI Release (kattouf/Sake, 116 stars), Release (objeck/objeck-lang, 165 stars) and Native Feel Cross Platform Desktop (yetone/native-feel-skill, 1.9k 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 228 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.