DEV Community

Nadav Cohen
Nadav Cohen

Posted on

ForgeTerm: An Open-Source Terminal Emulator for Multi-Project Workflows

If you work on multiple projects simultaneously, you know the pain: opening a terminal, cd-ing into each project, launching the dev server, starting the test watcher, opening a shell β€” and doing it all over again every time you start a new session. That's exactly the problem I set out to solve with ForgeTerm.

What is ForgeTerm?

ForgeTerm is an open-source terminal emulator built for developers who juggle multiple projects at once. It's built on Electron + React + xterm.js, and it focuses on one thing: making it effortless to go from "I want to work" to "I'm working" across all your projects at once.

GitHub: https://github.com/codama-dev/forgeterm

Key Features

Workspaces & Auto-Tiling

Group related projects into a workspace and open them all with a single click. ForgeTerm automatically tiles your windows across the screen β€” side-by-side for two projects, master-detail for three, a 2Γ—2 grid for four, and so on up to six per screen. If you have multiple monitors, you can choose which display each workspace targets.

Automatic Sessions

Inside each project, you define named terminal sessions that auto-launch when you open the project. Something like:

{
  "projectName": "My App",
  "sessions": [
    { "name": "Dev Server", "command": "pnpm dev", "autoStart": true },
    { "name": "Tests", "command": "pnpm test --watch" },
    { "name": "Shell" }
  ],
  "window": {
    "emoji": "πŸš€",
    "themeName": "ocean"
  }
}
Enter fullscreen mode Exit fullscreen mode

Drop a .forgeterm.json in any repo and the config travels with it.

Per-Project Theming

Every project gets its own color theme so you can tell windows apart at a glance. There are 10 built-in presets, a hex color generator, and Peacock sync for VS Code users. 43 project emojis round out the visual differentiation.

Import from VS Code Project Manager

Already using the VS Code Project Manager extension? Import all your projects and tags in one click. It works with VS Code, Cursor, Windsurf, and other forks. Tags with 2+ projects automatically become workspaces.

Sidebar Modes

Cycle between full, compact, and hidden sidebar with Cmd+B. Full mode shows session names and controls. Compact shows dot indicators. Hidden gives you maximum terminal real estate.

Tech Stack

  • Electron (main process, window management, PTY via node-pty)
  • React 18 + TypeScript
  • xterm.js for terminal rendering
  • Zustand for state management
  • Vite for bundling

Download & Build

ForgeTerm v0.2.0 ships as a macOS DMG for Apple Silicon. For Windows, Linux, or Intel Mac, clone the repo and build locally:

git clone https://github.com/codama-dev/forgeterm.git
cd forgeterm
pnpm install
pnpm build
Enter fullscreen mode Exit fullscreen mode

Contributing

ForgeTerm is actively looking for contributors! Whether it's a bug fix, a new feature, better docs, or just a suggestion β€” all contributions are welcome. Check the open issues for things to work on; issues labeled good first issue are a great starting point.

Give it a star, try it out, and let me know what you think in the comments!

Top comments (0)