Skip to content
OPC-Fellows中文

v0.8.0 · macOS Apple Silicon

OPC-Fellows

Hire occupations as members, then point them at your own folders and sites.

OPC-Fellows

What it is

You are the developer and the company. This is where a one-person company keeps its members, todos, projects and files — on your own machine.

Members, not tabs

Every occupation is a member with its own main thread. When several members work on one job, that is a project — and its lead member is who hears you unless you @ someone.

Two members out of the box, a roster you extend

Host reads and edits your workspace, runs commands, and plans before it acts. Social ammo turns your product catalog into multi-platform copy. Two is the shipped default, not the limit: a member is an occupation backed by a module, so you add your own without touching the kernel.

Data stays on the machine

Business data lives in local userData. There is no first-party backend holding it for you.

Download

Only macOS (Apple Silicon) builds are available. Windows and Linux are not available yet.

macOS (Apple Silicon)✓ Available
Windows✕ Not available yet
Linux✕ Not available yet

If macOS blocks the first launch

This build is signed and notarized by Apple, so macOS opens it without any extra step. If the first launch is still blocked (for example while offline), run the command below and open the app again.

Terminal
xattr -cr "/Applications/OPC-Fellows.app"

About the app name and upgrades The installed app is OPC-Fellows. Upgrading from v0.7.3: that build was named “OPC Agent Team - Solokit”, so this release starts with a fresh workspace — the old data directory stays on disk and is not read.

latest-mac.yml — latest-mac.yml is this release’s macOS update manifest.

How it works

Electron is a thin shell. Chat and tools run on DeepSeek Harness; the roster, todos and the module registry hang on the same tree.

CordisKernelModule AModule BModule CModule Dcapabilitycapabilitycapabilitycapability
  1. 01

    A module declares the capabilities it needs in its manifest.

  2. 02

    Calls outside that grant are rejected by the kernel.

  3. 03

    High-risk permissions are confirmed when the module is installed.

The open-source roster

These are the identities that ship in the open-source tree, straight from the project README — nothing added or removed. The roster itself is data, not a fixed list: a member is a module plus a roster entry.

Host

Reads and edits your workspace, runs commands, plans then acts — the default lead on every project

Social ammo

Multi-platform copy, built from the product catalog you register in the app

Your own member

An occupation is a module plus a roster entry. Nothing in the kernel is per-occupation, so a member you write gets the same main thread, projects, todos and capability checks as the two above

Security & data

Permissions follow a capability allowlist. Your work, files and secrets stay on this machine.

01

No first-party backend

Business data stays in local userData. There is no first-party backend.

02

High-risk grants need confirmation

Third-party modules go through a capability allowlist. High-risk permissions are confirmed at install time.

FAQ

Why macOS only?+

The published installer is macOS (Apple Silicon) only. Windows and Linux are not available yet.

It will not open after install. What now?+

The build is signed and notarized by Apple. If the first launch is still blocked (for example while offline), run xattr -cr "/Applications/OPC-Fellows.app" in Terminal, then open the app.

Where is the data stored?+

Business data stays in local userData. There is no first-party backend.

Can I use it commercially?+

Yes. The project is MIT-licensed, which allows commercial use. The LICENSE file in the repo is the source of truth.

How do I write my own module?+

See CONTRIBUTING in the public repo. Modules declare capabilities in a manifest; the kernel rejects out-of-grant calls; high-risk permissions are confirmed at install time. Read CONTRIBUTING

Only two members ship. Can I add my own?+

Yes. The roster is data, and the two shipped members are the default set rather than a limit. Write a module that declares its capabilities, add its roster entry, and it gets a main thread like any other member — no kernel changes.