Skip to content

Releases: t41372/skit

v0.4.0

Choose a tag to compare

@t41372 t41372 released this 22 Jul 00:25
e044d56

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 a default at 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 and skit show --json all report it, and --resync writes 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 --json gained a per-field delivers_empty so agents can tell the two meanings apart.
  • A way back. Every defaulted field carries a ↺ default chip; Ctrl+O resets 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_CONSTANT resolves. Across argparse, click, typer and Node's parseArgs — 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+TFile 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

Choose a tag to compare

@t41372 t41372 released this 21 Jul 09:35
587979f

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, fish argparse, 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 / --set experience as any script. Fire it at your coding agent: claude, codex, opencode, amp and antigravity ship preconfigured, and any other CLI is one skit runner add away. 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 path field type, auto-detected from type=Path / click.Path / FileType / typer annotations. Path fields complete as you type (fish-style ghost text, accepts), and Ctrl+TFile or folder… opens a browsable, filterable picker. On a path field Ctrl+T, Enter lands straight in the browser.
  • skit add asks 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-input still 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    # update

Published to PyPI via GitHub Actions Trusted Publishing: https://pypi.org/project/skit-cli/0.3.0/

v0.2.0

Choose a tag to compare

@t41372 t41372 released this 12 Jul 01:09
e98d67d

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; --project for per-repo, --to for 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. --json for 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 with skit show, everything is now drivable non-interactively.
  • --raw is 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 add on 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    # update

Published to PyPI via GitHub Actions Trusted Publishing: https://pypi.org/project/skit-cli/0.2.0/

v0.1.0

Choose a tag to compare

@t41372 t41372 released this 11 Jul 19:17
a3b6214

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 stay or flip it in Preferences (,).
  • skit add opens the review panel — an interactive skit add x.py now opens the same panel as the TUI's a: name, description, storage, dependencies and detected parameters, all prefilled and editable. --no-input, pipes and form=plain keep 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    # update

Published to PyPI via GitHub Actions Trusted Publishing: https://pypi.org/project/skit-cli/0.1.0/

v0.0.1

Choose a tag to compare

@t41372 t41372 released this 11 Jul 15:27
08b7ed6

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-cli

Published to PyPI via GitHub Actions Trusted Publishing: https://pypi.org/project/skit-cli/0.0.1/