Releases: t41372/skit
Release list
v0.4.0
v0.4.0
The run form now tells the truth about defaults — and got a visible door to the file picker.
The form's defaults come from your script, not a cache (#25)
- Prefilled with the script's real value.
[tool.skit]used to record adefaultat manage time and keep injecting it after you edited the constant in your script — the run silently disagreed with the file it was running.reconcile()now reads each managed parameter's current literal from the source; the run form,skit params, Entry settings andskit show --jsonall report it, and--resyncwrites it back into the block. - Empty can finally mean empty. A free-text field with a known default arrives prefilled, so clearing it is a deliberate act: it delivers
''through inject, env and flag delivery, and--set NAME=can express it from the CLI. Where empty can only mean "unset" (numbers, checkboxes, choices, secrets, defaultless fields) it still does.show --jsongained a per-fielddelivers_emptyso agents can tell the two meanings apart. - A way back. Every defaulted field carries a
↺ defaultchip;Ctrl+Oresets the focused one. Last-used values no longer shadow tomorrow's default when they merely equal today's — presets remain the deliberate way to pin a value. default=SOME_CONSTANTresolves. Across argparse, click, typer and Node'sparseArgs— but only when the name is bound exactly once in the file and doesn't look like a secret. A secret's literal never leaves the script's own text: not into the form, not into--json, not into preset TOML.
The file picker got its own door (#23)
The picker shipped in 0.3.0 behind ▾ insert → "File or folder…", and nobody found it. Every insertable text field now carries a labelled 📁 browse link right on the field. Keyboard grammar is unchanged: Ctrl+T → File or folder… reaches the same picker.
Fixes
- The Library screen no longer crashes when a footer refresh races a screen teardown/remount (intermittent, surfaced on Windows/py3.12). (#24)
Also
- New project description, refreshed demo videos, and the README's language list now matches across English, 繁體中文 and 简体中文.
v0.3.0
skit 0.3.0 — the multi-language release. Highlights since 0.2.0:
- skit is no longer Python-only (#8) — shell, JS/TS, fish, PowerShell and a data-driven long tail (Ruby · Perl · Lua · R), plus programs and command templates: a dozen kinds in all. Python, shell and JS/TS get static parameter detection and value injection; the rest launch out of the box, accept declared parameters, and are read through their own CLI parsers (getopts,
util.parseArgs, fishargparse,param()). JS/TS scripts get per-script npm dependencies installed next to the stored copy — never global, never running package lifecycle scripts. - Prompts are first-class library entries (#14) — store a parameterized prompt, and its managed
{{placeholders}}become form fields with the same presets / last-used /--setexperience as any script. Fire it at your coding agent: claude, codex, opencode, amp and antigravity ship preconfigured, and any other CLI is oneskit runner addaway. The rendered prompt is passed as a single process argument — no shell in between, no quoting rules to learn. - Path-aware parameter entry (#7, #17) — a real
pathfield type, auto-detected fromtype=Path/click.Path/FileType/ typer annotations. Path fields complete as you type (fish-style ghost text,→accepts), andCtrl+T→ File or folder… opens a browsable, filterable picker. On a path fieldCtrl+T, Enterlands straight in the browser. skit addasks instead of erroring (#18) — run it bare and it asks what you're adding; hand it a file it can't classify and it asks which kind, using the same screens and wording the TUI already uses. The non-interactive contract is untouched: a pipe or--no-inputstill refuses rather than guessing.- Per-ecosystem download mirrors (#13) — PyPI, GitHub and npm are three independent choices, because mirror vendors differ per ecosystem and no single vendor name spans them.
- Prompt and command runs remember their extra arguments (#20) — the extra-args tail now persists with the rest of the entry's last-used values.
- Fix: the add-review panel could hide what you were toggling — its parameter checklist swallowed its own overflow, so on a short terminal the candidate checkboxes below the fold were unreachable: focus tabbed onto them off-screen and nothing scrolled. The panel now scrolls to follow focus.
- Mutation testing is enforced (#12) — surviving mutants now fail CI, alongside the existing 100% coverage floor, ruff, ty in its strictest mode, and the i18n completeness gate.
English, 繁體中文 and 简体中文 all ship at 100% translation coverage.
Install or update (the package is named skit-cli; the command it installs is skit):
uv tool install skit-cli # install
uv tool upgrade skit-cli # updatePublished to PyPI via GitHub Actions Trusted Publishing: https://pypi.org/project/skit-cli/0.3.0/
v0.2.0
skit 0.2.0 — the agent release. Highlights since 0.1.0:
- A script repository for humans and AI agents — skit now ships an official Agent Skill (agentskills.io format) that teaches AI agents to drive your library through the CLI. Install it with a consent-first
skit agent install(Claude Code / Codex / AGENTS.md-style setups;--projectfor per-repo,--tofor a custom path). skit show NAME— the full read view of a script: identity, dependencies, the unified parameter schema (argparse flags, injected constants, command placeholders), presets, and drift/degraded notices.--jsonfor machines.skit run --set NAME=VALUE— pass parameter values explicitly, no form needed: precedence is default < last-used < preset <--set, unknown names exit 2, bad values 125, and a set field is final. Together withskit show, everything is now drivable non-interactively.--rawis a true escape hatch — no argument replay, no memory rewrite; it refuses form flags, and the reuse notice moved to stderr so stdout stays clean.- Responsive TUI — every screen adapts to the terminal size: footer chips wrap pill-by-pill and stay clickable, portrait terminals stack the detail pane below the list at full width, modals never exceed the screen, and the mouse-alone / keyboard-alone policy holds at every size.
- Windows fix — registry writes now ride out Windows sharing violations with bounded retries, fixing flaky concurrent
skit addon Windows (#4).
Install or update (the package is named skit-cli; the command it installs is skit):
uv tool install skit-cli # install
uv tool upgrade skit-cli # updatePublished to PyPI via GitHub Actions Trusted Publishing: https://pypi.org/project/skit-cli/0.2.0/
v0.1.0
skit 0.1.0 — the launcher release. Highlights since 0.0.1:
- CJK input fixed — typing Chinese/Japanese/Korean in the TUI now works in iTerm2 (skit opts out of the kitty keyboard protocol's report-all-keys mode that fought the macOS IME).
- Launcher by default — a script started from the menu now hands you the terminal back when it finishes, passing its exit code through. Prefer the workbench loop?
skit config after_run stayor flip it in Preferences (,). skit addopens the review panel — an interactiveskit add x.pynow opens the same panel as the TUI'sa: name, description, storage, dependencies and detected parameters, all prefilled and editable.--no-input, pipes andform=plainkeep the line prompts.- Keyboard-first forms — every form opens with its first field focused and ↓/↑ move between fields wherever Tab works; each form footer advertises it with a clickable
Tab/↓chip. - Honest footer — while the search box has focus, the footer swaps to what actually works (Enter run · Esc back).
- README gained an Update section; the version is now single-sourced from
pyproject.toml.
Install or update (the package is named skit-cli; the command it installs is skit):
uv tool install skit-cli # install
uv tool upgrade skit-cli # updatePublished to PyPI via GitHub Actions Trusted Publishing: https://pypi.org/project/skit-cli/0.1.0/
v0.0.1
First public release of skit — a script launcher and parameter manager: add your scattered Python scripts to one library, then run them from a TUI menu or the CLI, no memorized commands required.
Install from PyPI (the package is named skit-cli; the command it installs is skit):
uv tool install skit-cliPublished to PyPI via GitHub Actions Trusted Publishing: https://pypi.org/project/skit-cli/0.0.1/