DEV Community

Art
Art

Posted on

I built a Norton Commander clone in Go for my dev ecosystem — and I'm looking for a maintainer

Some tools you build because you need them. Some tools you build because they need to exist.

ForgeCommander is both.


What it is

A terminal UI file manager and editor, built in Go with tview and Chroma for syntax highlighting.

If you ever used Norton Commander, Total Commander, or Midnight Commander - you already know the feeling. File tree on the left, editor on the right, everything keyboard-driven. SAA-style. Fast. No mouse required.

ForgeCommander v2026.3.28   F2 Save   Ctrl+C Quit   editing: main.go
Enter fullscreen mode Exit fullscreen mode

Written in Go. No Electron. No framework. Starts instantly.


Why it exists

I'm building the Forge 4D ecosystem: a declarative UI language (SML), a compiled language (SMS → LLVM → native ARM), and a runtime (ForgeRunner in C++/Godot).

The files at the center of everything are .sml, .sms, and .md. Books, apps, UI layouts, CMS pages - all of it is text.

I needed an editor that:

  • Feels like home (Commander-style, keyboard-first)
  • Understands the file types I work with
  • Can reach into a remote Codeberg repo without a local clone
  • Can launch ForgeRunner as a live preview

ForgeCommander is that editor. The core works. You can open files, edit them, save them. The editor is already better than what Jetpack Compose ships as a basic text field.


The vision

This is what the roadmap looks like:

Startup modes

./forgecommander                          # current directory
./forgecommander /path/to/project         # given path
./forgecommander manifest.sml             # virtual tree from SML manifest
./forgecommander codeberg.org/CrowdWare/sites  # remote repo as tree
Enter fullscreen mode Exit fullscreen mode

That last one is the interesting one. Browse a remote Codeberg repo as if it were a local filesystem. Open a file, edit it, write it back via the Git API. No clone required.

Virtual tree via manifest.sml

Folder {
    name: "My Workspace"
    File { url: "codeberg.org/CrowdWare/atesti/index.sml" }
    File { url: "ipfs://Qm.../chapter1.md" }
    File { url: "/local/notes.md" }
}
Enter fullscreen mode Exit fullscreen mode

Mix local files, remote git files, and IPFS content in one tree. Edit any of them. Save back to origin.

ForgeRunner integration

Press F5. ForgeRunner opens with the current file as input. Live preview of your SML layout or SMS app - without leaving the terminal.

Also planned

  • Syntax highlighting (Chroma is already imported, just needs wiring)
  • Git status indicators in the tree
  • Speech-to-text input
  • Configurable key bindings

Why I'm not the right person to maintain it

My focus is on the Forge 4D Core and the Forger Poser app.

ForgeCommander is a desktop tool. It deserves someone who loves the terminal, loves Go, and wants to own something from the beginning.

The skeleton is clean. The editor works. The vision is clear.


What you'd be taking on

  • A working Go TUI app (~200 lines of main.go to start)
  • A clear TODO with concrete next steps
  • A real use case: editing SML/SMS/MD files for the Forge ecosystem
  • Freedom to design the UX - key bindings, workspace config, everything
  • A community of builders around Forge 4D to give you feedback

Want to own this?

Repo: codeberg.org/CrowdWare/ForgeCommander

Open an issue, introduce yourself, or just send a pull request. The TODO.md is your starting point.

If you've ever wanted to build a tool that developers actually use every day - this is it.


Part of the Forge 4D ecosystem - declarative UI, native compilation, no cloud required.

Top comments (0)