Substage - A Natural Language Command Line Tool for Finder That Makes Life Easier
Substage Substage is a command bar that attaches underneath your Finder window. To use Substage, you select files, type what you want in plain English, and Substage generates a Terminal command, simulates its side effects, and runs it (with confirmation where needed). Think of it less as an AI assistant and more as a natural language interpreter between what you want and the Unix tools built into macOS. The key insight--the one that separates this from a chatbot bolted onto a file manager--is that the AI's job ends when the command is generated. After that, it's real shell tools doing the work: sips, ffmpeg, zip, qpdf, pandoc, git. No hallucinated output, no AI "trying its best." The command either works or it doesn't, same as the Terminal always has. Developer: Selkie Design - Joe Humfrey (u/joethephish) Platform: macOS 15.0 or later Pricing: BYOK - $39.99. Currently on sale for $5 at Bundlehunt Developer's Website substage.app Let's Get one Thing Straight No matter how many years you've been typing commands into a terminal, you'll have to admit that it can sometimes be laborious.Using natural language AI tools to get things done in the terminal doesn't make one lazy nor ignorant. It's a productivity tool. Personally, I use Substage at times when I'd otherwise reach for a separate converter, a manual sips call, when preparing to work in a folder that's six levels deep. My motivation is reducing friction, not a resistance to learning shell commands. Features That Matter Substage Predicts The feature that makes Substage stand out to me is the prediction model. Before any command runs, substage simulates it using an interpreter written by the developer that understands pipes, redirections, and individual tool arguments for hundreds of commands. It lets you see which fonts will be created, renamed, moved, or deleted before anything happens. Substage has an auto-mind system that lets you determine your personal risk threshold. Based on your ability to interpret commands. Read only will auto-run, and anything that deletes files will always ask for confirmation. Substage respects this every time. Instant Actions For basic tasks, Substage knows when to stay out of its own way. Short commands like jpg, zip, or mp4 are handled locally, so there's no model lookup, no network delay, and no waiting around for something macOS could do instantly anyway. Command History Substage uses the same command recycling model that the terminal does - up-arrow to cycle previous commands and reuse them on different files. Small feature, but it makes batch workflows a lot more practical. Model Flexibility I have not used the subscription model, but based on the documentation, it defaults to GPT 4.1 Mini (snappy, handles the majority of use cases well). I have the BYOK license, which lets you point it at your own API keys or local models via Ollama or LM Studio. OpenRouter and Perplexity Pro also work via custom config. Global Shortcut Ctrl-Space by default. Summons Substage docked beneath whatever Finder window is active. Real-World Use Cases These save me so much time and keep me from having to find some GUI wrapper for FOSS tools like ffmpeg and pandoc. Video conversion with explicit control over resolution, fps, and bitrate Batch image resizing across an entire folder PDF manipulation (merge, split, rotate pages, password protection, extract text) Document conversion via Pandoc (DOCX to Markdown, Markdown to HTML, EPUB) File metadata inspection ("Where did I download this?", "Why is this file greyed out in Finder?") Git operations (commit, push, branch switching) System queries (basically information you'd get from system report - without having to run system report) Calculations via macOS's built-in bc--deterministic, no AI guessing Honest Limitations I really admire the developer's transparency when it comes to describing Substage's limitations. Complex multi-step prompts are not consistently reliable--"convert, rename, and zip these in sub-folders" may work, but the more steps you chain, the higher the risk of the AI getting one detail wrong. Recommendation from the dev himself: break it into separate commands, run them one at a time. No Finder replacement support (Path Finder, Forklift). If you're not using stock Finder, Substage can't see your selection. Default Folder X users: there are known conflicts. The FAQ calls this out explicitly. I've been using DFX for 20+ years (and you should be too), so I have to take this into account. Substage does NOT offer multimodal context--no image content analysis, no Whisper transcription (noted as planned), no image generation. It's a file operations tool, not an AI research assistant. The Verdict Substage is a well-considered tool solving a real problem: the gap between what macOS's built-in tools can do and what most users know how to ask them. The natural language layer handles the syntax; the bash simulator handles the safety; the local tool execution handles the reliability. It won't replace a Hazel rule for automated recurring tasks, and it's not trying to. What it replaces is the moment when you reach for a dedicated converter app, dig through a menu, or attempt to remember a sips flag you used six months ago. Caveats: It can lag when following Finder. The Default Folder X conflict is a dealbreaker for some. And anything beyond a single-step file operation should be treated as experimental. If you are frequently in Finder and occasionally want to convert, inspect, compress, or manipulate files without reaching for five different apps--Substage quietly removes a whole category of annoyances.
Collected discussion
Aside from the fancy bar below a window and allowing for natural language commands, do you prefer Substage over ToAnything? The latter is also on offer on Bundlehunt ($2.50).
For file conversion, I don't think anything is easier to use than Consul. You just change the file extension and it converts the file. The only drawback is that consul is a huge (750MB) app. Consul
For anyone stumbling onto this: There were multiple improvements to app size over the past months and Consul is only ~80 MB now (despite having grown in features) :) (And thanks for the kind words, btw!)
🙏
Really like this. Pretty convenient for people that work with their file system a lot. Does this support semantic search, where you can actually search by the contents of the file?
It can do whatever you can do with Terminal, so it would use grep if you searched file contents.
Grep is amazing, but what about non-text-based files, like videos, photos, or screenshots? I take tons of screenshots. It would be cool if there were some kind of low-level layer that could automatically caption my images.
How much better is this than using something like Fish.app, which simplifies Terminal access?
I have not used Fish (the correct URL is https://fishshell.com). It looks like it does autocompletion of commands and allows for abbriviations, but you still have to know shell command (As you should). Substage though, just lets you type "make this script executable" and it will do it for you.
The "AI's job ends when the command is generated" framing is the right way to think about LLM tooling for file ops. Most NL-to-shell tools fail because they let the model also interpret the result, which is where hallucinations creep in. Curious what the simulator covers, just file system reads or also network calls?
Maybe u/joethephish will chime in and let us know.
Thanks for the nudge, have done so!
It covers a range of side effects and one of them is network access. It’s based on a hand crafted analysis tool that looks at all the arguments to a specific known yet relatively large set of commands. So for example, if you use ping or curl etc, then it will know that network access will be a side effect. It’s also not more detailed than that, it doesn’t analyse exactly what type of network access is happening, what server is being reached, what’s being sent etc. And for more complex commands like node which can’t really be simulated, I simply list it as such, and commands won’t ever be run automatically.
Hand-crafted is the right call for predictability, but the maintenance tail is real. Every new ffmpeg/git/curl flag means catching up. Have you considered shipping a "fallback to confirm dialog" path for unknown commands or flags so users aren't blocked when the analyzer hasn't seen something yet?
Those limitations and caveats make me hesitate to buy, even at a big discount. I wonder if it truly has real world practical use. I do hate when it messes up a task, forcing me to do it the old-fashioned way, wasting more time and effort.
It looks interesting but I rely on DFX. What breaks?
I’ll try it for $5. Was debating it with the bundlehunt discount. I only wish it worked with Bloom! I hardly ever mess with the finder anymore.