Skip to content

scoot 0.1.0

Choose a tag to compare

@sergenes sergenes released this 05 Sep 23:31
· 100 commits to main since this release

The tool went public under a new name and on official APIs.

  • Name: scoot, PyPI package scootcli, with a mascot (banner, /help, status-bar face whose eyes follow the turn; --no-logo, /logo on|off).
  • Providers: a provider layer (providers/) behind one Provider protocol. OpenAI through the Responses API (default model gpt-5.3-codex, SCOOT_EFFORT for reasoning effort) and a local Ollama through the same wire; models are provider/model; a ProviderPool dispatches by prefix; scoot models lists per provider. Provider output items such as encrypted reasoning are stored on the assistant message and replayed only to the producing model.
  • Auth: plain API keys, from the environment or scoot auth set <provider> (validated, saved 0600); scoot auth shows every provider's key source; scoot auth clear forgets one. Ollama needs no key.
  • Configuration: .env replaces env.env: ~/.config/scoot/.env plus the nearest project .env, importing only SCOOT_*, provider key variables, and HTTPS_PROXY/NO_PROXY; every setting is namespaced SCOOT_*; /status shows the env files read. Localhost and NO_PROXY hosts bypass the proxy.
  • Removed: GitHub Copilot support (no public chat API), the Kerberos/curl/SSL-bypass corporate machinery, the JetBrains identity, the Jira tools.
  • Packaging: MIT license, pyproject.toml metadata with the version in scootcli/__init__.py, scoot --version, wheel + sdist + zipapp from scripts/build.sh.
  • Docs: README, SPEC, DESIGN, ROADMAP, and AGENTS rewritten for the public tool.

Also since 0.0.19:

  • Tab-completion of slash commands: in the REPL input, type / (or a prefix like /ve) and press
    Tab to complete the command name; repeated Tab cycles through the alphabetical matches
    (wrapping around). Any other key ends the cycle. Powered by a pure cycle_completion state helper
    (unit-tested) fed by the live command registry.
  • /verbosity command: regulate how much of a turn's "thinking" shows in the feed —
    full (default; reasoning + every tool call kept as a run log), compact (reasoning shown, each
    tool call collapses to a single transient line above the Thinking… spinner, removed when done), or
    quiet (reasoning hidden, tool calls collapsed). Also settable via SCOOT_VERBOSITY; shown in
    /status and documented in /help + README/SPEC.
  • REPL/session UX: default launch now auto-resumes the latest session for the directory
    (/reset to start clean; SCOOT_RESUME=hint|off to opt out), and a resumed session now replays
    its full transcript
    on screen and seeds ↑-key history from prior prompts.
  • Status bar tokens now show both the current context size and the cumulative session total
    (▤ ctx N · Σ M tok); ctx is estimated from restored messages before the first API call.
  • Status bar context %: the context segment now shows its share of the auto-compact threshold
    (ctx N (P%)) and flips to a △ warning glyph at ≥80% so you can /compact before it auto-fires.
  • Status bar message count: the bar now shows the conversation size (✉ N).
  • Status bar errors: a failed turn now shows a ⚠ <ErrorType> segment in the bar (cleared when the
    next turn starts), mirroring the existing ◇ done/total plan counter. README documents the full
    status-bar segment legend.
  • Single turn label: the ⏺ scoot lead-in now prints once per turn — intermediate narration
    and the final answer print underneath it as one block, instead of repeating the gutter per message.
  • Visible tool-in-use: the auto-approved tool line is now pinned on its own row above the
    running… spinner for the whole call (previously it was drawn then instantly overwritten by the
    spinner/thinking…); the tool row is kept on screen (scrolls into the feed as a log of what ran)
    while only the spinner row is cleared, so fast tools no longer flash past before you can read them.
  • Auto-compact threshold raised 24k → 100k tokens (SCOOT_COMPACT_AT).
  • Default approval mode is now yolo (SCOOT_APPROVAL); the catastrophic-command denylist
    still confirms destructive shell commands.
  • Input editor: ↓ on a draft line clears it (keeping the text stashed); ↑ restores it.

Install: pipx install scootcli (or pip install scootcli), or download scoot.pyz below and run it with any Python 3.9+.