Skip to content

Releases: Abrar118/QuickDev

v0.3.2 — kitty terminal support (Linux)

04 Jun 14:22
a378ba3

Choose a tag to compare

Highlights

  • kitty terminal support on Linux. quickdev launch now opens a single kitty window with one tab per configured terminal — each tab gets its own working directory and startup command — via a generated kitty --session file. No kitty.conf changes or remote control required.
  • kitty is auto-preferred on Linux. When kitty is installed, auto-detect chooses it first (ahead of Ptyxis windows and gnome-terminal tabs). Set emulator = "kitty" to force it explicitly, or omit for auto-detect. Single kitty windows are also supported as a fallback.

Security

  • Terminal tab titles (which can originate from a shared .quickdev.toml) are sanitized of control characters so they cannot inject additional directives into the generated kitty session file.

Other

  • kitty is now a recognized value for the emulator setting (ghostty | terminal | gnome-terminal | ptyxis | kitty).
  • Because kitty is not single-instance, QuickDev skips the emulator-readiness wait for it, so launches are not delayed.

Full changelog: v0.3.1...v0.3.2

v0.3.1

02 Jun 21:03
6d90c63

Choose a tag to compare

Linux terminal tabs 🐧

Fixes the Linux side of quickdev launch tabbing: gnome-terminal now opens a project's terminals as tabs in one window, each tab in its own directory running its own command — resolving the v0.3.0 limitation where Linux terminals could only open as separate windows.

What's fixed / new

  • Linux · gnome-terminal: one window, N tabs via gnome-terminal --load-config — each tab starts in its own working directory and runs its own command. Used when you select it explicitly, or when it's the only supported terminal installed.
  • Explicit terminal selection: the emulator setting now accepts "gnome-terminal" and "ptyxis" (alongside "ghostty", "terminal", and auto-detect).
  • Linux · Ptyxis & Ghostty: open one window per terminal (each with the correct directory + command). Their CLIs can't carry per-tab directory+command, so choose gnome-terminal for a single tabbed window. Auto-detect still prefers Ptyxis.
  • macOS & Windows: behavior unchanged; explicitly selecting a Linux-only terminal there returns a clear error.
  • Launch failures fall back to per-terminal windows rather than failing.

Notes

  • 154 tests; CI green on macOS, Linux, and Windows.

Changelog: #15

v0.3.0 — Terminal tabs

02 Jun 18:03
9c38816

Choose a tag to compare

Terminal tabs 🗂️

quickdev launch now opens a project's terminals as tabs in one window instead of a pile of separate windows — per platform, with graceful fallback to windows when tabbing or permissions aren't available.

What's new

  • macOS · Ghostty (≥1.3): drives Ghostty's native AppleScript API — one window, one tab per terminal, each starting in its configured directory with its command run in a live shell. Prompts once for the Automation permission; falls back to separate windows if denied.
  • macOS · Terminal.app: preference-aware — auto-tabs when AppleWindowTabbingMode = always (offers to enable it for you), otherwise drives ⌘T via System Events.
  • Linux: prefers Ptyxis (--tab) when installed; gnome-terminal still supported.
  • Windows: wt tabs (unchanged).
  • Automation failures never report phantom success — a denied permission or script error cleanly falls back to opening windows.

Notes

  • Known limitation: gnome-terminal's programmatic --tab can still open separate windows in some sessions (Wayland/X11 + D-Bus timing). Ptyxis is the recommended Linux terminal.
  • 138 tests; CI green on macOS, Linux, and Windows.

Changelog: #11

v0.2.0

01 Jun 14:16
98be20d

Choose a tag to compare

QuickDev v0.2.0 brings cross-platform application discovery, a new capture command, project diagnostics, and a major internal refactor with cross-platform CI. Everything since v0.1.1 (PRs #1#9).

New features

  • Cross-platform add app discovery (#9) — the interactive quickdev add picker now discovers installed apps on Linux (XDG .desktop files) and Windows (Start Menu .lnk shortcuts), not just macOS. Discovered launch args (Flatpak flatpak run …, Snap, Squirrel Update.exe --processStart …) are carried through and saved to the config.
  • quickdev capture (#7) — snapshot the macOS GUI apps you currently have running and add the selected ones into the project's .quickdev.toml, so quickdev launch can reopen them (--all or interactive multi-select).
  • Diagnostics & inspection (#5) — a single liveness notion (project path + .quickdev.toml both exist) backs a new set of commands:
    • quickdev prune — remove global-index registrations whose project path or .quickdev.toml no longer exists.
    • quickdev doctor (+--fix) — report global-config / fzf / per-project health; --fix creates a missing global config, prunes dead registrations, and normalizes project configs.
    • quickdev validate — check the current project's config (terminal paths stay within root, supported emulators, app paths exist, known placeholders); exits non-zero on errors.
    • quickdev list --missing / list --json — filter to unhealthy projects, or emit a JSON array; the default table now distinguishes path missing from .quickdev.toml missing.
  • quickdev config (#4) — config set|get|unset emulator <ghostty|terminal> with validation.
  • App-arg placeholders (#4) — {root}, {config}, {name}, {cwd} substituted in application args at launch (a bare "." still means project root).
  • launch --dry-run (#2) — preview what would launch without spawning anything.

Improvements & fixes

  • Editor tools (VS Code / Cursor / Zed) respect configured args, else default to opening the project root (#4).
  • Graceful fzf cancellation — ESC / ctrl-c prints Cancelled. and exits 0 instead of an error (#4).
  • Richer / launch summary showing each item's resolved path / command (#2).
  • Path-based CLI substitution at launch, so Flatpak/Snap/Squirrel wrapper entries aren't hijacked into e.g. code run com.visualstudio.code (#9).
  • Robustness batch (#1): index-based project picker (handles names with spaces), launch <name> shows the picker, re-register syncs the project name, shell-words arg parsing, $EDITOR/$VISUAL with arguments, AppleScript/PowerShell escaping, terminal path-traversal guard, and the multi-terminal cold-start race fix.
  • Launch-preview robustness (#3): Windows rooted/drive-prefixed path validation, gnome-terminal readiness probe, and resolved app args shown in --dry-run.
  • list --json escapes all JSON control characters below U+0020 (#6).

Internal

  • Split the 718-line main.rs into a 32-line entry point + cli.rs (clap types) + commands/ (one file per command) (#2).
  • Cross-platform CI workflow — fmt / clippy -D warnings / test on Ubuntu, macOS, and Windows (#2).
  • Test suite grew from 53 → 127 tests.

Docs

  • Added the MIT LICENSE file and license = "MIT" in Cargo.toml (#8).

Known limitations

  • Linux/Windows app discovery type-checks and is unit-tested on pure parsing, but hasn't yet been exercised against real .desktop/.lnk installs on those platforms.
  • Windows .lnk argument splitting uses POSIX tokenization (shell_words) — correct for common/unquoted args, not a faithful Windows command-line parser.

Binaries

Prebuilt binaries for macOS (x86_64, aarch64), Linux (x86_64, aarch64), and Windows (x86_64) are attached below, along with checksums-sha256.txt.

v0.1.1

25 May 16:12

Choose a tag to compare

Add release workflow for pre-built binaries, update README install in…

v0.1.0 — First Release

25 May 16:07

Choose a tag to compare

QuickDev v0.1.0

The first release of QuickDev — a cross-platform CLI tool that saves and launches your project's terminal tabs and applications with a single command.

Features

  • quickdev init — Initialize a project with .quickdev.toml, clone configs with --from
  • quickdev launch — Launch terminals and apps with fzf selection or --all
  • quickdev list — Show all registered projects with terminal/app details
  • quickdev add — Add terminals or apps interactively (fzf) or via CLI flags
  • quickdev remove — Remove items interactively (fzf multi-select) or by name
  • quickdev edit — Open project or global config (--global) in $EDITOR
  • quickdev deregister — Remove a project from the global index

Terminal Emulator Support

Emulator macOS Linux Windows Tabs
Ghostty yes yes no
Terminal.app yes yes
gnome-terminal yes yes
Windows Terminal yes yes
PowerShell 7 yes no

Highlights

  • Per-project .quickdev.toml config with instructional comments
  • Global project index at ~/Documents/quickdev/config.toml
  • Per-terminal emulator override with global default fallback
  • Auto-detection of VS Code, Cursor, and Zed editors
  • macOS app discovery from /Applications for interactive add
  • fzf-based project picker when not in a project directory
  • Tab support for Terminal.app, Windows Terminal, and gnome-terminal
  • Cross-platform: macOS, Linux, Windows

Installation

git clone https://github.com/Abrar118/QuickDev.git
cd QuickDev
cargo install --path .

Requires Rust 1.70+. Optional: fzf for interactive features.