Skip to content

Repository files navigation

2026-08-11_005637 SAIPEN_Orange1

SAIWORK

Version 0.0.2 - a downstream fork based on CodeNomad's 0.18.0 development commit 67cb394e.

Fork provenance: SAIWORK preserves the upstream CodeNomad Git history on the backup/pre-squash-history branch. The default saiwork branch was squash-imported on August 10, 2026 and does not contain CodeNomad's commits or contributor history. GitHub commit counts for the backup branch therefore include upstream work and must not be interpreted as SAIWORK-specific development. Fork-specific changes are documented below.

Connect agents. Work on projects.

SAIWORK extends CodeNomad with SAIPEN integration, a persistent prompt queue, and fork-specific desktop and UI workflows.


Upstream / inherited

CodeNomad provides the desktop workspace foundation: multi-instance workspaces, remote access, session management, voice input, Git worktrees, SideCars, command palette, file browser, authentication, notifications, theming, and i18n. Those capabilities originate upstream. SAIWORK modifies some integrations but does not claim their baseline implementation.

What I changed

I maintain SAIWORK as a focused downstream fork of CodeNomad for long-running AI-assisted development.

My work in this fork focuses on:

  • integrating configurable live-path SAIPEN BOOT.md and STYLE.md instructions before new OpenCode process launches, with project, config, environment, and fallback resolution plus launch-state reporting;
  • adding a persistent per-session prompt queue with edit, reorder, delete, pause/resume, idle or manual dispatch, and rejected-send restoration to the queue front before pausing;
  • exposing SAIPEN shortcut controls, allowlisted project-state views and edits, discovered subSaipen state, and Goal Auto queueing controls in the UI;
  • adding a console-free Windows launcher, portable Electron userData routing, single-window geometry presets, snap controls, and menu visibility settings;
  • applying a Vintage structural UI layer with a Golden default and selectable palettes while leaving CodeNomad's token definitions unchanged;
  • adding split session panes and detached session windows; and
  • placing major fork feature cores in dedicated files while keeping substantial integration changes explicit in shared CodeNomad files.

Requirements

  • OpenCode CLI in your PATH
  • Node.js 20.19+ (20.x) or 22.12+
  • A SAIPEN install, if you want the protocol injection (clone github.com/vacterro/saipen)

Running it

Double-click START_HIDDEN.vbs on Windows for console-free startup, or run ./START.sh on macOS and Linux. Windows startup logs go to dev.log; use START.bat only when you want a visible debug console.

It checks Node, warns if opencode is missing, installs dependencies on the first run, and starts the desktop app.

Same thing by hand, if you prefer:

npm install
npm run dev

Electron is the primary shell for 0.0.2. The Tauri shell remains experimental.

Portable target

The Electron package defines a one-file Windows portable target named SAIWORK-portable-{arch}-{version}.exe. No SAIWORK binary release has been published. The current Electron version range must be pinned before electron-builder can produce the artifact, so this documentation pass did not claim or publish a working binary.

An empty saiwork-data folder beside an Electron executable redirects Electron's userData there; SAIWORK_DATA_DIR overrides that location. Server configuration, OpenCode data, and some client/window state retain separate home-directory paths, so this is not a fully self-contained USB profile.

Server mode

For browser or remote access:

npm run build --workspace @saiwork/saiwork
node packages/server/dist/bin.js --password <your-password>

There are no published npm packages yet — build from source.

Tests

npm test

Runs all four suites -- UI, server, OpenCode plugin, and Electron -- and fails on the first one that fails. The UI suite needs --conditions=browser: several tests import solid-toast, which calls a client-only API while the module loads, so under Node's default resolution solid hands back its server build and the file throws before a single test runs. The script already passes the flag.


Layout

Package Description
packages/server Core logic and CLI: workspaces, OpenCode proxy, API, auth, speech, SAIPEN resolution
packages/ui SolidJS frontend
packages/electron-app Desktop shell
packages/tauri-app Tauri shell (experimental)

Upstream reference

The upstream remote points at CodeNomad. Because the default saiwork branch was squash-imported and has no merge base with CodeNomad, upstream updates must be reviewed and ported explicitly rather than applied with a plain git merge.

git fetch upstream
git diff 67cb394e..upstream/dev

MIT License · upstream CodeNomad by Neural Nomads

About

SAIPEN-native CodeNomad fork with persistent prompt queues, protocol injection, agent-state visibility and recovery-oriented OpenCode workflows.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages