Skip to content

Starting the app

See Installing if you haven't installed Janissary yet.

Run

> janus

from the project directory.

By default each launch starts fresh: a single janus tab, with any state from the previous session cleared. To pick up where you left off instead, use --relaunch (below).

Arguments

ArgumentWhat it does
<project-dir>Target directory to work against (default: current directory).

Flags

FlagWhat it does
--port=<n>Listen on port n (1–65535). Without it, a free port is picked automatically.
--no-openStart the server without opening the app window.
--relaunchRestore the previous session instead of starting fresh.
--helpPrint usage and exit.
--versionPrint the name and version and exit.

A mistyped flag, a bare --port with no value, or a port outside 1–65535 stops the launch with an error and a pointer to --help — nothing is started and no state is touched.

Resuming a session with --relaunch

janus --relaunch

--relaunch rebuilds your tabs as you left them: every agent tab comes back in its saved order with its dot color, group, transcript, command history, and working directory. Tab aliases and scheduled commands are restored too. What doesn't come back: view tabs (images, Markdown, editors, web pages), harness tabs, and workspace clones — those are live views and processes, not saved state.

Troubleshooting

If startup fails, the error names the app and version, says what went wrong, and suggests what to do next. The two you're most likely to see:

  • The port is already in use — something else is listening on the port you asked for. Pick another with --port=<n>, or drop --port entirely and let the app choose a free one.
  • Another instance is already running here — a second janus launched against the same directory as a still-running instance is rejected with the live process's ID. Run janus <dir> to start a second instance against a different directory.

Configuration

Settings live in .janissary/config.json inside the directory you launch from; a default file is created on first launch. All three settings are editable:

SettingDefaultWhat it does
transcriptMaxLines25000How many transcript entries each tab keeps. Past the cap, the oldest entries are dropped.
tabNameMaxLength16The longest tab name shown in the strip when a tab is created; the strip truncates to fit. Renaming via rename or double-click accepts up to 50 characters regardless of this setting.
syntaxTheme"github-dark"The syntax-highlighting theme for editor tabs. Change it at runtime with syntax theme <name>.

If the file isn't valid JSON, the app warns on startup and falls back to defaults for that session — your file is left untouched so you can fix it.