DEV Community

Cover image for Introducing Macsmith: Your favorite CLIs. One native Mac GUI.
Andrei Canta
Andrei Canta

Posted on

Introducing Macsmith: Your favorite CLIs. One native Mac GUI.

A typical local development setup on a Mac involves several tools: Homebrew for packages, mise or nvm for runtimes, Docker for containers, and databases running in the background.

Each tool has its own commands. When you need to check what’s running, switch a runtime, or find the process occupying a port, you move between them.

Macsmith brings those tools into one native Mac GUI.

I’m sharing Macsmith with the developer community and would love feedback from people who work with these tools every day.

What can you do with Macsmith?

  • Manage Homebrew packages through a graphical interface.
  • Switch runtimes with mise and nvm.
  • Run Docker through Colima and inspect Lima virtual machines.
  • Start and stop local databases, including PostgreSQL, MySQL, and MongoDB.
  • Find what’s using a port when your application can’t start.
  • Manage SSH keys and configure local HTTPS.
  • Expose localhost through ngrok for demos and development.
  • Edit hosts files and shell aliases from the same app.

The goal is to make everyday development tasks easier to access while giving you a clear view of your tools’ current state.

Where it fits into your workflow

Imagine you’re starting work on a project. You need to switch runtimes, start PostgreSQL, get Docker running, and investigate why a port is already occupied.

Macsmith gives you one place to handle those tasks. You can keep using the terminal for scripts, automation, and project commands, then open the GUI when you want to inspect or manage your local environment.

Macsmith is built with Swift and SwiftUI and requires macOS 14 or later.

Try it and share your feedback

Website: https://macsmith.app/

Download: https://macsmith.app/download

Which part of your local Mac development setup would you most want to manage through a GUI? And which tasks do you prefer to keep in the terminal?

I’d appreciate honest feedback on the workflow, missing integrations, and anything that feels harder than it should.

Top comments (0)