A terminal project launcher

Prawjector is a keyboard-driven project launcher for developers who prefer to stay in the terminal. It opens named, persistent Zellij sessions and recreates pre-configured tab layouts on each launch. Reattaching to an existing session resumes the exact tabs and shells that were active before.

Prawjector works with most existing Zellij configurations without modification and does not add a daemon or background process. Projects are declared in a single JSON config at ~/.prawjector/prawjector.json, and each project specifies a name, a path, and a list of tabs with optional launch commands.

INSTALL

cargo install --path .prawjector make-config
  • The install command uses the current checkout path. Build prawjector from a local clone of the upstream repository.
  • Zellij must be installed first. Prawjector relies on it for every launch.
  • Run prawjector validate-config after editing your projects to catch typos before launch.

CONFIGURE

Create and validate config

prawjector make-configprawjector validate-config
  • prawjector make-config writes ~/.prawjector/prawjector.json with a starter project to edit.
  • Each project needs name, path, and a tabs array.
  • Each tab uses a launch value. Set it to null to open a plain shell.
  • Launch commands resolve through your shell PATH, so bare commands like nvim or cargo work when your shell can find them.

Minimal project config

{
  "projects": [
    {
      "name": "Project 1",
      "path": "~/projects/project-1",
      "tabs": [
        { "launch": "claude" },
        { "launch": null }
      ]
    }
  ]
}

USAGE

Keyboard-first controls

Up / Down
Move the selection cursor up or down through the project list. Wraps at the top and bottom edges.
0-9
Jump straight to a numbered entry. 0 selects the Empty Session row; 1 through 9 select the first nine projects in the order they appear in the config.
Enter
Launch the highlighted project. Prawjector starts or attaches to the matching Zellij session, applies the configured tab layout, and exits.
Space
Toggle the new session flag on the highlighted project. When the flag is on, pressing Enter forces a fresh Zellij session instead of attaching to an existing one.
q / Esc
Exit the picker without launching anything. No Zellij session is started and no existing session is attached.

FAQ

Does Prawjector require Zellij?

Yes. Prawjector is built around Zellij and uses it to open every session, so you need Zellij installed before Prawjector will launch a project. Zellij is a terminal workspace manager: it gives a single terminal window multiple tabs and panes, with persistent named sessions, layouts, and per-tab commands. You can install Zellij from your system package manager (most major Linux distros and Homebrew on macOS ship recent builds), or download a release binary from https://zellij.dev. Once zellij is on your PATH, Prawjector takes care of the rest: it spawns a Zellij session per project, lays out the tabs you described in your config, and runs each tab's launch command inside Zellij.

Can Prawjector start an empty session?

Yes. The project picker always includes an Empty Session entry at the top of the list, mapped to the 0 key. Pick it, hit Enter, and Prawjector starts a fresh Zellij session with a single empty shell tab and no per-project setup applied. This is the right choice when you want Zellij's persistent-session behavior without committing to a specific project layout, for example when you are exploring an unfamiliar codebase or running one-off commands. The empty session is also useful as a fallback when a project's configured tabs would interfere with what you actually need to do in that moment. If you want a brand-new session for a configured project instead, press Space on a project entry before pressing Enter to toggle a fresh session for that project.

Does Prawjector support native Windows?

Prawjector has not been tested on native Windows. The upstream project does not publish Windows binaries and the source has not been validated against the Windows console environment. The supported way to run Prawjector on a Windows machine is through WSL (Windows Subsystem for Linux): install WSL2 with a Linux distribution, install Zellij and Cargo inside that distribution, then build and run Prawjector from the Linux side. Native Windows support may land later, but until it is explicitly tested and documented, treat any native Windows behavior as unsupported.