GSO-1
Division HQ Β· Ops Room Β· Your machine

GSO-1

The staff officer for your machine.

Every project you own, running, healthy, and one click from started. Your computer is your garrison. You are its commander. This does the staff work.

macOS Β· Windows Β· Linux: Apache 2.0, nothing leaves your machine

01 / The nameWhy it is called GSO-1

In a division headquarters there is an officer called the GSO-1, General Staff Officer Grade 1, a Lieutenant Colonel who heads the General Staff branch. He is the right hand of the GOC, the General Officer Commanding the division. He plans the operations, keeps the picture current, and drafts the orders the GOC signs. In peace and in war, the division runs through him.

He works from the Ops Room, the nerve centre where the maps, the traces, the unit locations, the strengths and the intelligence are displayed and kept up to date. It is where the commander is briefed, and where decisions get made, because it is the one place the whole situation can actually be seen.

Commands

You

You decide what gets built and what ships. You should not also be remembering which of thirty services is currently up.

β†’ GOC Β· your garrison
Serves

GSO-1

Finds every project, works out how each one starts, watches its health, and keeps the git picture current. Quietly.

β†’ the staff officer
Displays

Ops Room

One screen holding the whole situation: what is live, what is dirty, what crashed, what is holding a port.

β†’ where you decide
Read the long version Your Computer Is a Garrison. It Needs a Staff Officer. The naming, the staff doctrine behind the design, and what it took to ship a tool that ran on exactly one machine  /  12 min read on Medium

02 / The doctrineWhat makes a good staff officer

The old British staff manuals are unusually clear about this, and it turns out to be a decent product specification.

Serve the commander wisely and well. Point it at your machine and it works out how everything runs, so you never type npm run dev from memory again.
Stay invisible; the commander gets the credit. GSO-1 has no opinions about how you build software. It starts what you already built, and stays out of the way.
Shield the commander from unnecessary detail. Thirty repos, and the dashboard leads with the four that need you: the dirty ones, the stale ones, the one that crashed.
Never be a "yes man". A staff officer who only reports good news is worse than none. So the crashed process, the failed run and the port conflict show up plainly, in red, on the first screen.
The GSO-1 Ops Room: two applications running, three repositories with uncommitted work, the day's events, and the ports currently in use
The Ops Room. Everything that needs you, on one screen.
The GSO-1 Library listing six projects with their detected kind: node, script, static, python, go and rust
Six projects, six stacks. It worked out the kind on its own.
The GSO-1 first-run screen asking which folder holds your projects
One question on first run, then it gets out of the way.
The GSO-1 phone companion showing running applications, repositories needing a commit, and live RAM and CPU
The companion at /m, behind a token you set on purpose.

03 / The workWhat it actually does

β–Ά

Starts anything

Detects the run command for Node, Django, FastAPI, Flask, Streamlit, Rust, Go, static sites and plain Python: and always defers to a project's own run.sh or Makefile.

β—‰

Real health

Healthy, starting, crashed or stopped, from process tracking plus a port probe, not from hope.

⚠

Port conflicts

Finds what is already holding the port before you launch, instead of after the stack trace.

βŽ‡

Git at a glance

Branch, dirty count, ahead/behind and last commit across every repo, with fast-forward updates from the dashboard.

⛨

Agents with a seatbelt

Read-only tools run themselves; anything that writes a file or runs a command stops for an explicit approval.

βš™

No terminal required

Project folders, Telegram, your local model and phone access are all set from a Settings screen inside the app. Environment variables still win, and show as read-only when they do.

β–€

Your own hardware

A built-in Anthropic→llama proxy points an agent session at your local llama-server. How the Ops Room works →

04 / The lookGraphite

Version 0.3 rebuilds how GSO-1 looks, and how much of your machine it uses while you are not touching it. Near black surfaces, hairline edges instead of drop shadows, one cool indigo, and the only loud colours left are the ones that mean something: green for running, amber for needs you, red for failed. A tool whose job is to tell you which of three hundred projects is unhealthy only works if those three colours are the loudest things on screen.

0.3 is in testing. The Install button still gives you the current release; what follows is what the next one does, and what it measures.

The GSO-1 Library: a list of projects,
        each with its kind, its state and its git state, on a near black background with one
        indigo accent.
The Library at three hundred projects. Made up project names: nothing on this site is a picture of a real machine's list.
⌘

Jump to anything

⌘K reaches every screen, every project and the handful of actions worth a keystroke. It matches on the letters in order, so aapi finds aurora-api.

β–€

Your row height

Compact, default or comfortable. At three hundred projects the compact setting is a third less scrolling than before, and nineteen rows fit on a screen where eleven did.

⟲

Every screen has an address

The back button works, and a screen can be linked to. The app also opens where you left off.

◐

A real light theme

Both themes come from one definition, so neither is an afterthought. Every pair of text and background in the app is measured against the readability standard rather than eyeballed.

It is also much cheaper to leave open. Measured on a machine with three hundred projects, sitting idle with the window in front:

9 KB a minute

It was 547 KB. Nothing was compressed, nothing ever said "this has not changed", and the five questions the page asked every eight seconds are now one.

77 KB to open

It was 261 KB, sent raw.

4 MB left behind

Closing the 3D world used to leave 57 MB of scene, textures and graphics memory held until you quit the app.

Nothing under 32 pixels

127 buttons and tick boxes were smaller than anyone can reliably hit, including Stop and Delete. None are now.

05 / ProPersonal Communication

Your email and chats in one inbox, inside GSO-1. Gmail, iMessage and SMS, Telegram and WhatsApp land in the same list, already sorted by a model running on your Mac: what needs a reply, what is important, what can wait. Open a conversation and it drafts an answer in your own style, in the language you were writing in. Nothing is sent until you press Send.

20 seconds of GSO-1 Pro. Made-up people and messages throughout.
The Personal Communication
        inbox in GSO-1: a list of conversations from WhatsApp, Gmail, Telegram and iMessage, each
        with a one-line summary; an open conversation with Sam Lee about dinner on Saturday, a
        drafted reply below it, and on the right the plan it found (dinner with Sam) and a
        promise to book the restaurant.
Made-up people and messages. The summary, the draft, the dinner plan and the promise were all found by the model on this Mac.
βœ‰

One inbox

Every app in one list, with Needs reply, Unread, Later and Done. Reply to one message, react with an emoji, search everything you were ever sent.

✎

Drafts that sound like you

It learns from what you send and what you change. You can also train a model on your own past replies, on your Mac, and use it for drafts.

☷

Your day, sorted

A morning brief, events and to-dos found in messages, the promises you made, and a notification only for what matters, never in quiet hours.

⛨

Stays on your Mac

Messages, photos and the model all stay on your machine. It has its own lock, nightly encrypted backups, and it never sends anything on its own.

GSO-1 Pro Part of GSO-1 Pro, for macOS on Apple Silicon. WhatsApp support uses an unofficial connection that WhatsApp's terms do not allow; linking it is your choice.

06 / Coming nextThe World

GSO-1 knows which repositories you have, and which agents are working in them. The World is that, as a place. Every project with a Claude session becomes a settlement in a valley, and the figure standing in it is the agent: swinging while it edits, walking between jobs, standing idle when the session goes quiet.

A wide green valley seen from above: a
        lake with sandy shores, dense pine and broadleaf forest, grey mountains around the rim, and
        three small settlements labelled chat, auth-service and ledger.
One valley, one settlement per project. The names here are placeholders.
A walled castle with stone towers and a
          gate, standing beside a lake, with a trodden stone path leading up to it through the
          trees.
A project you have lived in for months earns a castle. One you cloned and left stays a hamlet: the tier comes from how much work has actually happened there.
A village of market stalls, a windmill
          and a watchtower, with a small robot figure at work among them and stone paths running
          between the buildings.
The agent at work. The animation follows the tool it just called, so editing does not look like running a command.
The valley from a lower angle, looking
        across water towards wooded hills and distant mountains.
Paths join each settlement to its neighbours. You can also walk it: WASD, mouse to look, and the villages are solid.

It is built from what GSO-1 already knows, so nothing here is decoration. The stack decides the colours, the transcripts decide the scale, and the tool an agent is running right now decides what it is doing on screen. Scenery is Quaternius' CC0 kits.

In development Not in a release yet. It lives on main if you build from source.

07 / DeploymentInstall

PlatformDownload v0.1.7
macOS (Apple Silicon) GSO-1-0.1.7-arm64.dmg
macOS (Intel) GSO-1-0.1.7.dmg
Windows GSO-1.Setup.0.1.7.exe
Linux .AppImage · .deb

Checksums for every file are in SHA256SUMS.txt. Older versions are on the releases page.

On first run GSO-1 asks which folder holds your projects. That is the whole setup, no Python, no terminal, no config file.

macOS 15 and later: approve it once in Settings

GSO-1 is signed ad-hoc rather than with a paid Apple Developer ID, so macOS blocks the first launch with "Apple could not verify GSO-1 is free of malware". Right-click and Open no longer works on these versions, and that dialog only offers Done and Move to Bin. Instead:

  1. Drag GSO-1 into Applications, try to open it once, click Done.
  2. Open System Settings → Privacy & Security.
  3. Scroll to Security near the bottom. You will see "GSO-1" was blocked to protect your Mac with an Open Anyway button.
  4. Click it, authenticate, then confirm Open.

It only happens once. On Windows, SmartScreen needs "More info" then "Run anyway".

08 / From sourceOr build it yourself

# requires Python 3.11+
git clone https://github.com/rafsunsheikh/gso-1.git
cd gso-1
cp .env.example .env
./run.sh

09 / Standing ordersA note on what it can do

GSO-1 starts processes and runs commands as you. That is the feature, and it is also the threat model.

Loopback only by default, unreachable from your network. Remote access is refused outright unless you set a token, and agent writes and commands require explicit approval. Full detail in the security policy.