OpsControls
OpsControls is a local-first dashboard and control plane for Codex-powered AI employees.
It uses the deployed OPC evidence page as the UI template, then replaces static data with live local state from:
- real employee files under
.opc/employees; - real Codex CLI discovery and task execution;
- local task, prompt, inbox, graph, loop, and event records;
- a localhost HTTP/SSE backend.
Run Locally
pip install -e .
opc dashboard
The dashboard opens at http://127.0.0.1:8765.
If port 8765 is already in use, OpsControls automatically selects the next available port and prints the URL.
If another installed tool shadows the opc executable in your shell, use:
opc-dashboard dashboard
On this machine, /Users/curtisqiu/.nvm/versions/node/v22.22.0/bin/opc currently appears before the Python opc script. To make opc dashboard resolve to OpsControls, move /Library/Frameworks/Python.framework/Versions/3.13/bin earlier in PATH or remove/rename the older Node opc command.
Offline Editable Install
If you are installing without internet access and already have setuptools available:
python3 -m pip install -e . --no-deps --no-build-isolation
PyPI Build
This project is packaged as:
- package name:
opscontrols - version:
0.1.2 - primary command:
opc dashboard
Build locally:
python3 -m pip install build twine
python3 -m build
python3 -m twine check dist/*
Upload manually:
python3 -m twine upload dist/*
Use a PyPI API token when prompted. Do not commit the token.
Multiple Codex Accounts
OpsControls can switch between separate local Codex profiles. Each profile uses its own CODEX_HOME, so you can log into different ChatGPT/Codex accounts and choose which one OpsControls uses for future tasks.
Create a profile:
opc codex-account add "Backup Codex"
Log into that profile using the printed command, for example:
CODEX_HOME="/path/to/.opc/codex-accounts/backup-codex" codex login --device-auth
Switch active profile:
opc codex-account switch backup-codex
You can also switch profiles from OpsControls Settings -> Codex Accounts.
Metadata
Release files for opscontrols 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| opscontrols-0.1.2.tar.gz | 27.5 kB | Without provenance | Details for opscontrols-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| opscontrols-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for opscontrols-0.1.2-py3-none-any.whl |
Total release size: 59.5 kB
Release files / opscontrols-0.1.2.tar.gz
| Download URL | opscontrols-0.1.2.tar.gz |
|---|---|
| Size | 27.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e89be8b34e867133633f7e80b4e4f948bd513c4738b2c5c0ffdd7b5ea3cf67c
|
|
BLAKE2b-256 checksum How to use checksums |
eb377952c435351cd839e0cc6a28719dc05b7889a98bc154c2fada0b1c0296c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Release files / opscontrols-0.1.2-py3-none-any.whl
| Download URL | opscontrols-0.1.2-py3-none-any.whl |
|---|---|
| Size | 32.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
22244a9c10b07ec9e95578d875a75ac0fa2dcc94b4ca164f63d26d15beb63b96
|
|
BLAKE2b-256 checksum How to use checksums |
e4f747b90ab1de5e22102200352cb63823a7175094d1b3ab037f3f284b677a45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Security for opscontrols 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.