Changelog

What's New

The latest releases and updates from our team. We ship often and keep things lean.

  1. Wizhut Gaming — Whokoban, a Sokoban With the Door Locked

    Wizhut.tech now has a games arm, and its first title is finished and heading to the App Store. Whokoban is Sokoban with one rule changed, and the change is the whole game: pushing every crate onto its goal does not complete the level, it unlocks the exit. Whoko then has to walk to the door through a warehouse he has just rearranged, where the crates he carefully parked are the walls now in his way — so a level can be lost by solving it perfectly and stranding yourself on the wrong side of the room. Everything else follows from taking that seriously. Each of the 5,000 levels was generated from a seed and then put through an exhaustive breadth-first solver, so the "best possible" the game quotes is the true minimum number of moves including the walk to the door, not an estimate; twice that number is the move cap, and reaching it without getting out loses the level. Ten tiers run from three crates to twelve, 500 levels each, and the game remembers which ones it has dealt you — a level only comes round again after the other 499 on its tier have been played. From tier 4 a monster shares the floor and from tier 8 there are two, but they cannot kill you: there is no timer and no death, only something in your way that you shove aside for free, or squeeze past when it has nowhere left to retreat. Finish inside 10% of the best possible and you rise a tier immediately, otherwise ten clears do it; clear tier 10 and Whoko gets out of the warehouse for good. There are 48 achievements, including one for the mistake this game invents — every crate parked and no moves left to reach the door. It is a one-time US$2.99 with no ads, no in-app purchases and no account, and it collects nothing: there is no network code in it at all, and every level is rebuilt on the phone from its seed, so it works with no signal.

    • Parking every crate unlocks the exit rather than finishing the level — you still have to reach the door
    • 5,000 levels across ten tiers, every one verified solvable and measured by an exhaustive solver
    • Par is the true minimum move count, walking to the door included; the move cap is twice it
    • A level repeats only after the other 499 on its tier have been played — across runs and launches
    • Monsters from tier 4 (two from tier 8) block rather than kill: shove them aside, or squeeze past a cornered one
    • 48 achievements, including one for parking every crate and then running out of moves
    • A one-time US$2.99 — no subscription, no ads, no in-app purchases, no account, no analytics
    • iPhone, iOS 17 or later — coming to the App Store
  2. trimmer 1.0.0 — Whitespace Off Both Ends, and Nothing Else

    Every shell script eventually needs the same small thing: take what came out of a command and remove the whitespace clinging to either end of it. The usual answers are a sed expression nobody remembers, an awk one-liner, or a $(...) that silently eats the trailing newline and works until the day the input has two. trimmer is that job as a single static binary — it reads stdin and writes stdout, so it drops into a pipeline like any other stage. By default the whole input is one value, so only the very start and the very end go; inner blank lines and indentation are left exactly as they were. Pass --lines and each line is trimmed on its own, with the line count preserved so blank lines stay blank rather than collapsing. The details are where a tool like this earns its place. Whitespace means what Unicode says it means, so CRLF endings, non-breaking spaces and line separators come off, not just spaces and tabs. --no-newline drops the final terminator, which is what makes VERSION=$(cat VERSION | trimmer -n) give back the exact value instead of one with a newline hidden in it. --left and --right restrict the trim to one side, for stripping indentation without touching alignment or the other way round. In --lines mode the input is streamed as it arrives, so a file bigger than memory is fine and a single multi-megabyte line survives intact — there is no 64 KiB line cap waiting to truncate your data, and a test holds that guarantee in place. And running it with nothing piped in prints the help instead of sitting there looking frozen. Six pre-built binaries, MIT licensed, no runtime and no telemetry.

    • Reads stdin, writes stdout — a pipe stage, not a program with a workflow
    • Whole input by default, or every line individually with --lines, with the line count preserved
    • Unicode-aware: CRLF, tabs, non-breaking spaces and line separators all count as whitespace
    • --no-newline gives command substitution the exact value, with nothing clinging to either end
    • --left and --right trim one side, for de-indenting without disturbing alignment
    • Streams in --lines mode: inputs larger than memory are fine, and a multi-megabyte single line survives intact
    • No piped input prints help rather than blocking on the terminal
    • Pre-built static binaries for macOS, Linux and Windows on both x86_64 and ARM — MIT licensed, no telemetry
  3. Practical UV v0.2.0 — Your Dependencies, Checked Against the Advisory Databases

    Practical UV already told you which dependencies were old. It now tells you which ones are known to be vulnerable. Declared dependencies are checked against OSV — the PyPA Advisory Database and GitHub Security Advisories — and each finding arrives with the CVE, its severity, and the version that fixes it: as a diagnostic in its own uv-security collection (kept apart from uv-pypi so you can filter the two in the Problems panel), in the package hover, as an "Upgrade … (fixes CVE-…)" quick fix, and in a new Security column in the dependency dashboard, every entry linking out to the advisory. What makes the findings worth acting on is that they are resolved rather than assumed: when a uv.lock sits next to your pyproject.toml, each declared range is pinned to the version you actually install, so a finding means you are affected rather than your constraint permits it — and an == pin resolves the same way without a lockfile. Only top-level dependencies are checked; the lock's transitive tree is used for version resolution and never queried, so nothing is reported that you cannot fix in the file in front of you. The feature is off by default, because enabling it is the first thing in the extension that sends anything about your project anywhere other than PyPI: with uv.security.enabled on, package names and versions go to api.osv.dev. A one-off UV: Check Dependencies for Security Advisories command, and a per-package check on ⌘. for a single dependency, both work without turning the setting on at all. The reporting is deliberately precise about what it did not establish: a dependency with neither a lockfile entry nor an exact pin says so, and tells you how many advisories its declared range permits, instead of implying a clean bill of health. This entry also covers 0.1.10, a documentation-only release that shipped the changelog the registries had never seen.

    • Known-vulnerability detection against OSV — the PyPA Advisory Database and GitHub Security Advisories
    • Every finding carries the CVE, its severity, and the version that fixes it, with a link to the advisory
    • Findings surface four ways: diagnostics, hover, an "Upgrade … (fixes CVE-…)" quick fix, and a Security column in the dashboard
    • uv.lock (or an == pin) resolves declared ranges to exact versions — "you are affected", not "your range permits it"
    • Top-level dependencies only: the transitive tree resolves versions but is never reported, so every finding is fixable where you are
    • Off by default — enabling it is what sends package names and versions to api.osv.dev, and nothing is sent while it is off
    • A per-dependency check on ⌘., and a one-off UV: Check Dependencies command, both without changing the setting
    • "No advisories" is distinguished from "no exact version to check" — an unresolvable dependency says so rather than looking clean
    • PEP 503 name normalization, so Flask and typing_extensions now match their lockfile and advisory entries
    • From 0.1.10: the changelog finally reaches both registries, and the README states the real VS Code requirement (1.125)
  4. EasyHomebrew 2.5.0 — Engineering Personas, or Setting Up a Mac in One Step

    A new Mac usually means remembering, one at a time, every tool you have installed on the last one. Personas replaces that with 27 curated bundles that install together — 17 for languages and runtimes and 10 for the roles that cut across them, from Terminal Foundation and Backend through DevOps, Security, Data & ML and Embedded. The idea is borrowed from Omarchy, whose install menu is organised by language and whose scripts install a runtime along with its package manager, framework CLI and language server rather than a bare compiler; each persona here works the same way. Pick Go and the language server, linter and debugger come with it. Pick Zig and zls comes too. Pick DevOps and you get kubectl, Helm, k9s, OpenTofu and a container runtime that actually has a client. Every package carries a one-line reason it belongs in that particular bundle instead of repeating what the package is; the essential ones are ticked for you, the rest are offered unticked, and anything already on your Mac is shown but never reinstalled. Installing a bundle uses the queue Upgrade All already had — the full list up front, per-package progress, elapsed time, and a Cancel button that leaves Homebrew intact. The catalogue behind it was checked package by package against Homebrew itself, which is how it knows Terraform has left homebrew-core and reaches for OpenTofu instead. This release also fixes a bug Spanish speakers have been living with quietly: the Spanish translation shipped inside the app but was never registered in the release build, so Spanish-language Macs fell back to English in every previous version.

    • 27 curated bundles that install together — 17 languages and runtimes, 10 engineering roles
    • Each bundle is a whole working setup: language server, linter, formatter and debugger, not just the compiler
    • Every package explains why it is in that bundle, in one line
    • Core packages ticked by default, optional ones offered unticked, and anything already installed left alone
    • One queue for the whole bundle — full list up front, per-package progress, elapsed time, and a Cancel that leaves Homebrew intact
    • Each bundle shows how much of it you already have, so a half-adopted persona is obvious at a glance
    • Language bundles carry their real logo, bundled into the app so they appear instantly and offline
    • Fixed: Spanish now ships in release builds — it was in the app but missing from the build, so Spanish Macs fell back to English until now
  5. Contain 0.4.0 — The Window Inside Stays Inside

    Grab the container's title bar and the window it was holding vanished behind the container's own empty content area, and stayed there until you clicked a tab. It looked like a failure to repaint; nothing failed to repaint. Clicking the container activates Contain, macOS puts an active app's windows in front of every background app's, and the container was simply being drawn over the window it was meant to be framing — which is also why the re-raise after each drag could never fix it, since AXRaise will not lift a background window in front of the active app's. Contain now orders itself below the window it contains, so the pair arrives at the front together and in the right order, measured at 14 ms from the click. Two neighbouring fixes come with it: containing one window of an app no longer disturbs its others — hiding is an app-level operation in macOS, so Contain now only hides an app when it holds all of it, and one with a window still out on the desktop stays put — and selecting a tab no longer buries the container behind the app it just brought forward. This entry also covers 0.3.5, which made moving and resizing the container track properly (writes rate-limited to one per display frame, 3.55 s of blocked main thread over a 60-event drag down to 0.95 s, and a window that follows the container back down after a zoom instead of keeping its widest size), and 0.3.4, which brought the "where macOS draws the line" list into the app itself — a Limitations pane in Settings and a ? beside the version, both built from one list so they cannot drift apart. The preview deadline is unchanged at 20 August 2026.

    • The contained window no longer disappears behind the container when you drag it — Contain orders itself below the window it holds, 14 ms from the click
    • Containing one window of an app leaves that app's other windows alone; an app is only hidden when Contain holds all of it
    • Selecting a tab no longer leaves the container buried behind the app it just activated
    • Contain also no longer unhides an app that you hid yourself before it ever saw it
    • From 0.3.5: moving and resizing keep up — one write per display frame instead of one per mouse-move, and a window that follows the container back down after a zoom
    • From 0.3.4: a Limitations pane in Settings and a ? beside the version, explaining the behaviours macOS forces on the app where you actually meet them
    • Still a time-limited beta — this build keeps the 20 August 2026 deadline rather than extending it, with a countdown in Settings → General
  6. EasyHomebrew 2.4.2 — Cancellable Upgrades and a Progress View That Follows You

    Long installs and upgrades stop being a one-way trip. Every install, update, removal and reinstall can now be cancelled, and cancelling interrupts Homebrew the way Ctrl-C does in a terminal — it unwinds and releases its lock rather than being killed mid-step. Stopping an Upgrade All finishes cleanly on the package it interrupted and leaves the rest queued, so starting it again picks up where you left off. The progress view also stopped depending on where you launched the action: an install started from a package row, the right-click menu or the batch bar used to get nothing but a one-line stripe at the bottom of the window, and now gets the same card as everywhere else, with the action's icon, the package name and rotating brewing verbs. Upgrade All moved out of the Updates pane into its own view over the window, so the queue stays visible from any section. Alongside that, the Updates page gained a Check for Updates button that re-runs brew update, the installed and outdated scans, and the vulnerability check in one go — and section actions across the app moved out of the window toolbar, where they read as chrome, into a consistent action bar on each page. This entry also covers 2.4.1, which added the New sidebar section listing formulae and casks Homebrew has published recently, kept current between releases without a server.

    • Cancel any install, update, removal or reinstall — Homebrew is interrupted cleanly, not killed mid-step
    • Cancelling Upgrade All leaves the remaining packages queued, so restarting it resumes where you stopped
    • The same progress card wherever you start an action, instead of a one-line status stripe
    • Upgrade All runs in its own view over the window — the queue stays visible from any section
    • A Check for Updates button that re-runs brew update, the installed and outdated scans, and the CVE check together
    • Section actions — Scan Now, Refresh, Add Tap, Doctor's Check — moved out of the window toolbar into a consistent action bar
    • From 2.4.1: a New sidebar section for recently-published packages, kept current between releases, with an Update Catalog button to check on demand
  7. Contain 0.3.3 — First Public Beta of the Window Container for macOS

    Contain is a small macOS app that holds your other windows. Open one resizable container, pick any window you already have open, and Contain pins it inside — each contained window getting its own tab, so three TextEdit documents are three tabs rather than one "TextEdit". The window stays the real, fully interactive app window: no screen capture, no proxy view. macOS has no public API for embedding another process's window, so Contain does what tiling window managers do and drives the Accessibility API, re-pinning any window that drifts within a second. The picker is a grid of tiles rather than a list, because a menu of "App — Window title" lines is fine at three entries and unreadable at thirty. Contain records where every window was before it adopted it and puts it back exactly there on release or quit, so containing a window leaves no trace once you stop. This first public build ships as a notarized, Developer ID-signed disk image and updates itself from here on — which matters more than usual for this app, since macOS ties the Accessibility grant to the code signature, so a stable signature is what lets an update land without you re-granting access. It is a time-limited beta: the build stops working on 20 August 2026, restoring every window it was holding as it quits.

    • One resizable container, one tab per contained window — windows, not applications
    • The genuine app window stays live inside the container; a snap loop re-pins it within a second if it drifts
    • Grid picker with recognisable app icons, plus optional live thumbnails if you grant Screen Recording — Contain never raises that prompt on its own
    • ↗ or ⌘W puts a window back at the exact position, size and display it had before adoption — Contain never terminates a contained app
    • Settings (⌘,) names every anonymous usage signal Contain sends and switches them off on the spot; the apps and windows you contain are never sent
    • Built-in auto-update: signed releases, checked daily, plus Check for Updates… on demand
    • Notarized and Developer ID-signed, so it opens without a Gatekeeper warning
    • Time-limited beta — this build expires 20 August 2026, with a countdown in Settings → General
    • Requires macOS 13 or later and Accessibility permission — Settings → General tells you whether the grant is still live
  8. EasyHomebrew 2.4.0 — Now Runs on macOS 14 Sonoma, Intel Macs Included

    EasyHomebrew's minimum macOS drops from 26 all the way to 14 (Sonoma) — and since Sonoma still runs on Intel, those Macs are supported again, with the app and its menu-bar agent both shipping as universal binaries. Nothing was cut to get there: browsing and searching the catalogue, installing and upgrading, categories, services, taps, Brew Doctor, and CVE checks all work the same, and Discover's semantic search still ranks results on-device. The Apple Intelligence extras — the Discover recommendation, automatic categorisation, logo detection, Doctor explanations, and tap summaries — still need macOS 26 (Tahoe), but they now switch off cleanly on older systems instead of being unavailable at all, and Settings → Intelligence tells you which applies to your Mac. The releases since 2.2.1 also brought the menu-bar agent a status row, a version readout with a restart button, and unattended auto-upgrades within a time window you choose; a refreshed catalogue of 16,196 packages; clearer handling when macOS App Management blocks a cask upgrade; and three Discover fixes, including exact package-name matches finally ranking first.

    • Minimum macOS drops from 26 to 14 (Sonoma) — everything except the Apple Intelligence features works the same
    • Intel Macs supported again — app and menu-bar agent both ship as universal binaries
    • Apple Intelligence features still need macOS 26 (Tahoe), and now switch off cleanly below it
    • Menu-bar agent gains a status row, a version readout with restart, and unattended auto-upgrades with a daily cap
    • Refreshed package catalogue — 16,196 formulae and casks, so fewer packages need classifying at launch
    • Clearer guidance — and a direct link to the right System Settings pane — when macOS App Management blocks a cask upgrade
    • Discover fixes: exact package names rank first, unfamiliar names no longer come up empty, and common words like make and find surface their packages
  9. Practical UV v0.1.9 — On the VS Code Marketplace, With a Clean Toolchain

    Practical UV is now published on both the VS Code Marketplace (as wizhut-tech.wiz-practical-uv) and the Open VSX Registry, built from the same source — so it installs wherever your editor looks, whether that's VS Code, VSCodium, or Cursor. v0.1.9 itself is a housekeeping release rather than a feature one: the build toolchain moved forward and clears 11 advisories (7 high, 4 moderate), and there are no runtime dependency changes — the extension still ships only @iarna/toml, which was unaffected. One thing to check before updating: the minimum supported VS Code is now 1.125, raised from 1.118. Editors on 1.118–1.124 keep the version they already have and stop receiving updates. From this release on, changes are tracked in CHANGELOG.md.

    • Published on both the VS Code Marketplace and Open VSX from one source — two install paths, one extension
    • Minimum supported VS Code raised to 1.125 (from 1.118) — editors on 1.118–1.124 stop receiving updates
    • Build toolchain updated (@types/node, @types/vscode, @vscode/vsce) — 11 advisories cleared, 7 high and 4 moderate
    • No runtime dependency changes — still just @iarna/toml, unaffected by the advisories
    • Changes tracked in CHANGELOG.md from this release onward
  10. EasyHomebrew 2.0 → 2.2.1 — Public Launch, Licensing & Auto-Update

    EasyHomebrew left beta on June 12 and the 2.x series has been moving fast since. It ships as a one-time €10 purchase — no subscription, lifetime updates within the major version — unlocked with a license key powered by Dodo Payments that the menu-bar agent honours too. As of v2.2.1 the app updates itself: it checks for new versions at launch and once a day and installs them in place, so this is the last version you'll ever download by hand. Along the way the 2.x releases added a right-click context menu on every package row, an Upgrade All that shows its whole queue with per-package status, an Updates list that finally includes outdated dependencies, a services quick-info popover with a built-in configuration viewer, Brew Doctor warnings turned into grouped one-click fixes, instant catalog filtering, a smarter Discover with an Apple Intelligence "Best pick", full localization in six languages, and a new brewing-tank app icon.

    • One-time €10 purchase — no subscription, lifetime updates within the major version
    • License key powered by Dodo Payments — activate once, the menu-bar agent honours it too
    • In-app auto-update — checks at launch and once a day, installs in place
    • Right-click quick actions on every package row, and a queue-first Upgrade All with per-package status
    • Updates list now includes outdated dependencies — no more hidden pending upgrades
    • Brew Doctor warnings become grouped, one-click fixes
    • Smarter Discover with an Apple Intelligence "Best pick", plus full localization in six languages
  11. Practical UV v0.1.8 — Now Works with requirements.txt + One-Click Convert to uv

    The biggest update since launch: Practical UV now treats requirements.txt as a first-class citizen. Outdated detection, hover info, code actions, and the dependency dashboard all light up automatically on requirements.txt, requirements-*.txt, and any *.txt under requirements/. Comments, pip directives (-r, -e, -c, --index-url), direct URL specs (pkg @ https://…), and PEP 508 environment markers are all parsed correctly. Open a requirements.txt and a "↑ Convert to uv" action appears in the status bar — one click runs uv init (if needed) and uv add -r in the integrated terminal, and your project is on uv. Saving a pyproject.toml with changed versions now politely offers to run uv sync for you. Already on Open VSX as version 0.1.8.

    • Full requirements.txt support — outdated detection, hover, code actions, dashboard
    • Status-bar "Convert to uv" action runs uv init + uv add -r in one click
    • Recognizes requirements.txt, requirements-*.txt, requirements_*.txt, and any *.txt under requirements/
    • Handles PEP 508 markers, pip directives, direct URL specs, and comments correctly
    • "Run uv sync" prompt fires automatically on save when pyproject.toml versions change
  12. EasyHomebrew v1.6.6 — Cleaner Updates & Friendlier Admin Installs

    The Updates page gets a long-overdue makeover with a prominent Upgrade All button, a one-click Update on every outdated row, and a clean Upgrade Selected action for batch mode — extending across Installed, All Packages, Categories, and Search Results. Casks that need root install end-to-end through a friendly authorisation flow (no more cryptic sudo failures), and a live background-activity panel in Settings shows every async job in flight. Plus a rebuilt categories database that recovers ~1,100 cask classifications, font casks that categorise correctly the first time, and a calmer macOS App Store-blue treatment for update badges.

    • Cleaner Updates page — Upgrade All up front, Update on every row, Upgrade Selected for batches
    • Friendly admin-privileges flow for casks that need root, with a clear progress sheet
    • Live background-activity panel in Settings — see every async job in flight
    • New homepage-enrichment cache you can clear from Settings → Storage
    • Categories database rebuilt — ~1,100 cask classifications recovered, font casks now correct on first launch
    • Calmer App Store-blue treatment for update badges and buttons
  13. EasyHomebrew v1.6.1 — App Store-Style Pages, AI Descriptions & Install Trends

    Every package now opens an App Store-style page with everything you need to make a decision in one place. A clean stat strip shows the essentials. An AI-written description tells you what the package actually does — no more squinting at one-liners. A screenshot gallery with a native carousel and arrow-key navigation lets you preview apps before you install. Install trends for the last 30, 90, and 365 days reveal what's genuinely popular. Variants of the same app appear as click-through mini-cards. And a brand-new Games category gives 117 titles a proper home.

    • App Store-style package page with everything in one place
    • AI-written descriptions in plain language, with smart screenshots
    • Native screenshot carousel with arrow-key navigation
    • Install trends for the last 30, 90, and 365 days
    • Tap between sibling versions and flavors with a single click
    • New Games category — 117 titles reclassified
    • Smart categorisation kicks in instantly for unfamiliar packages
  14. EasyHomebrew v1.6.0 — Grid View, Variant Grouping & Faster Upgrades

    Browse your packages your way: a new toolbar toggle switches every list between a compact row view and a visual card grid, and your choice sticks across launches. Variants of the same app — think Firefox, Firefox ESR, Firefox Developer Edition — now collapse into a single tidy entry with a +N expander, so your lists feel curated rather than crowded. The grouping is smart enough to keep unrelated projects apart, even when they share a host. Plus a definitive fix for the rare "Homebrew is busy" warning that was getting in the way of upgrades.

    • List or grid view, your choice — and it sticks
    • Variant grouping turns clutter into clean, expandable entries
    • Smarter grouping that keeps unrelated apps apart
    • Cleaner Discover badge and consistent labelling everywhere
    • No more "Homebrew is busy" warning blocking your upgrades
  15. EasyHomebrew v1.5.5 — Brew Doctor That Actually Fixes Things

    The Doctor tab is no longer a wall of warnings — it's a list of one-click fixes. Every diagnostic shows up as its own card with a "Run fix" button: deprecated casks and formulae, unlinked kegs, missing dependencies, stray files, PATH issues, and more. Spot something unfamiliar? Apple Intelligence explains it in plain English on macOS 26. Errors across the app are friendlier too — clear titles, readable messages, and details tucked away until you need them. And if something fails in a batch, just tap the row to see why.

    • One-click "Run fix" for every Brew Doctor warning
    • Install all missing dependencies in a single step
    • Apple Intelligence explains unfamiliar warnings in plain English
    • Friendlier error messages with clear titles and copy-ready details
    • Tap any failed row in Upgrade All to see exactly what went wrong
    • The UI stays in sync if you switch to Terminal mid-task
  16. EasyHomebrew v1.5.3 — Reinstall, Status Panel & Auto Vulnerability Scans

    Three quick follow-ups to the public beta, now rolled up into v1.5.3. The headline work landed in v1.5.2: a Reinstall button for misbehaving packages, a new EasyHomebrew status panel in the bottom-left showing app version, packages scanned and affected, and the disk space the app itself uses. Vulnerability scanning runs automatically alongside update checks, and the Updates list now shows only the apps and tools you installed yourself — internal dependencies no longer appear as separately upgradable, which prevents breakage from mismatched versions. v1.5.1 brought stability and performance polish across package browsing, services, and Discover. v1.5.3 adds opt-in anonymous usage analytics — aggregate events only, never package names or search queries, and fully opt-out from Settings → Privacy. Free to download, same install path as 1.5.

    • Reinstall button on the package page — fresh copy without removing it from your list
    • New bottom-left status panel: version, packages scanned, affected count, and app disk usage
    • Vulnerability scanning runs automatically when checking for updates
    • Updates list now shows only user-installed apps and tools — no internal dependencies
    • BETA label on Discover so you know semantic search is still experimental
    • Stability and performance polish across package browsing, services, and Discover (v1.5.1)
    • Opt-in anonymous usage analytics — aggregate events only, off in Settings → Privacy (v1.5.3)
  17. EasyHomebrew Beta is Live — Download v1.5 Now

    EasyHomebrew has entered public beta. v1.5 is available as a free download — no App Store, no waitlist. It includes all core features: package and cask management, CVE vulnerability scanning, services management, Brew Doctor with Apple Intelligence diagnostics on macOS 26, batch operations, and the new Discover feature powered by on-device semantic search. Give it a try and send us your feedback.

    • Free public beta — download the DMG and run it on macOS 26
    • Discover: describe what you need in plain language, find the right package instantly
    • Apple Intelligence in Brew Doctor explains issues and suggests fixes
    • CVE scanning, services management, and batch operations all included
    • Available in English, French, Greek, German, Italian, and Spanish
  18. Blog: Why Your AI Prompts Fail — And How to Fix Them

    Our latest blog post breaks down why most AI prompts produce underwhelming results — and it's not the model's fault. Language models are precise instruments: vague inputs reliably produce vague outputs. The article introduces seven measurable dimensions for evaluating prompt quality — clarity, precision, chain-of-thought reasoning, information completeness, constraint verifiability, structural compliance, and informational integrity — each targeting a specific failure mode. These aren't abstract rules but practical principles drawn from state-of-the-art research that fundamentally change how you write prompts.

    • Seven evaluation dimensions that cover every common prompt failure mode
    • Prompt quality is a learnable skill — not innate talent or guesswork
    • You don't need perfect scores to get dramatically better results from LLMs
    • Grounded in peer-reviewed research on prompt engineering
  19. Announcing EasyHomebrew — A Native Homebrew Package Manager for macOS

    We're building EasyHomebrew — a native macOS app that brings a clean, intuitive GUI to Homebrew. Browse, install, upgrade, and uninstall formulae and casks without touching the terminal. It also includes built-in CVE vulnerability scanning powered by the OSV database, services management, disk usage stats, and full-text search across all available packages. EasyHomebrew is coming soon.

    • Native SwiftUI app — lightweight, fast, and built for macOS
    • Built-in CVE vulnerability scanning against the OSV and NVD databases
    • Manage packages, casks, and Homebrew services from one place
    • Brew Doctor diagnostics, batch operations, and disk usage cleanup
    • Apple Intelligence features on macOS 26+ — smart diagnostics and logo detection
  20. Promptivo — Benchmarks & Prompting Guide

    Two major additions to the Promptivo universe. The new Benchmarks page opens the hood on our scoring engine — showing exactly how the seven quality dimensions perform against Google's IFEval (541 expert-written prompts) and MePO (2,000 prompt pairs before and after optimization). Key findings: zero expert prompts scored "Excellent," Constraint Verifiability is the hardest dimension to improve, and Information Completeness delivers the single biggest gain at +9.6%. Alongside it, the new Prompting Guide is a hands-on walkthrough with real before-and-after examples for every dimension, actionable checklists, and concrete techniques to level up your prompts immediately.

    • Benchmarks validated against IFEval and MePO — two peer-reviewed public datasets
    • Expert prompts averaged just 3.38/5 — room to improve exists at every level
    • Optimization produced 11× more "Good" grades and eliminated "Needs Improvement" entirely
    • Guide includes before/after examples, checklists, and score improvements for all 7 dimensions
    • Learn why "don't use X" fails and "use only Y and Z" doubles compliance rates
  21. Blog: The Science of the Ask — Why Promptivo Is the New Essential for AI Teams

    Our latest blog post dives into the research behind prompt quality and why it matters more than ever. Learn how Promptivo uses deterministic linguistic analysis — grounded in peer-reviewed studies of over 5,000 prompt pairs — to score your prompts across seven quality dimensions. Discover why clarity beats chain-of-thought scaffolding, how a few lines of structure outperform paragraphs of description, and what makes a prompt work consistently across models of all sizes.

    • Why clarity is the single highest-impact dimension for LLM output quality
    • How Promptivo turns academic research into instant, actionable feedback
    • The case for deterministic scoring: no AI calls, no latency, no cost
  22. Cloudproc — Beta Program Now Open

    The revamped Cloudproc website is live, and you can now express your interest to join the beta program. Cloudproc is an non-opinionated, application-level management and observability platform that gives you real-time, full-stack visibility into your infrastructure. Monitor, analyze, and optimize your applications from a single dashboard — with real-time metrics, traces, intelligent alerting that cuts through noise, and seamless integration with your existing tech stack.

    • Real-time monitoring with unified metrics, traces all in one dashboard
    • Smart alerting that reduces noise and notifies you before issues impact users
    • Easy integration with all major frameworks, languages, and cloud platforms
    • Sign up now to get early access to the beta
  23. Promptivo

    We just shipped Promptivo — a prompt scoring tool that analyzes your AI prompts across seven quality dimensions and gives you clear, actionable advice to improve them. No AI calls, no latency, no cost per evaluation — scoring uses deterministic linguistic analysis and returns results in milliseconds. Inspired by peer-reviewed research on prompt quality, Promptivo helps you write better prompts and get better results. We would love your feedback.

    • Score prompts across 7 quality dimensions: clarity, precision, context, reasoning, constraint verifiability, specificity, and more
    • Deterministic linguistic analysis — no LLM calls, no latency, no cost per evaluation
    • Research-backed: built on findings from studies of 5,000+ prompt pairs
    • Zero data retention — your prompts are never stored or sent to third parties
  24. Practical UV — VS Code Extension

    Our new VS Code extension brings the power of UV — the blazing-fast Python package manager by Astral — right into your editor. No more context switching to the terminal for dependency management. Get TOML syntax highlighting, automatic outdated dependency detection via PyPI, quick-fix upgrades, and run common UV commands straight from the command palette.

    • Outdated dependency detection with one-click upgrades
    • Run uv sync, add, and run from the command palette
    • Version selection from all available PyPI releases
    • Python and project version bumping built in