Default
Public
osb submit. When scoring completes, the official metadata, the score, and a public-safe run record can appear on the leaderboard and at its canonical run URL.
Submissions
INTAKE CLOSED — CONTRACT PUBLISHED
Stage 0 · spec publishedUse the qualification requirements below to prepare a candidate today. osb auth login and osb submit become usable only once the public OSB release, the dataset distribution, and the submission service are all enabled.
ISPM-Enterprise-SQL@v1.ispm-crossvendor-v1 identity. That manifest is name-bound, not digest-bound; a run made with a --dataset override stays local.agent/ snapshot, run-header.json, scores.json, and per-task trajectory evidence.ost/1.$ osb run ISPM-Enterprise-SQL@v1 <harness-id>$ osb inspect
Default
osb submit. When scoring completes, the official metadata, the score, and a public-safe run record can appear on the leaderboard and at its canonical run URL.
Optional
osb submit --private. The candidate still receives a full official evaluation, but the result stays off the leaderboard and is reachable only through an authenticated run record.
$ osb auth login
The CLI prints a code and opens https://open.security/device on an interactive terminal. Sign in with GitHub and approve the named device.
After approval the CLI mints a revocable osb_... token and stores it with owner-only permissions, keyed by platform endpoint.
A human has to complete the browser step once. Supply the resulting token through OSB_TOKEN in CI; the environment value takes precedence over the stored credentials file. Revoke and remove a stored token with osb auth logout.
$ osb inspect$ osb submit
The confirmation names the benchmark, the harness, the model, the judge panel, the epoch count, the dataset, the headline metrics, and the billed tokens. Read it before approving the send.
$ osb submit ./.osb-runs/<run-dir>$ osb submit --private$ osb submit --yes
Pass a run directory to choose an older successful run. --yes is required when no terminal is available to answer the confirmation prompt.
Your workspace and raw transcripts stay local. Only checksums travel, so we can ask for them later and verify they never changed.
payload.tar.gz├── manifest.json the submission manifest├── agent/ your candidate bundle└── evidence/ the run header, the scores, and per-task traces
claude-code, codex and osec-agent-1 are launched by a platform runtime, so there is nothing to build and nothing to ship. A custom candidate is your own binary, and it speaks the Agent Client Protocol over stdio — the runner is the client, your binary is the agent. See the custom-agent guide for the manifest and the build.
agent/. No install step runs in the sandbox.The pod is hostile by design: it holds no secrets and cannot reach the internet. Its one egress is to its own run’s gateway, which brokers the model call, and any attempt to reach anything else ends the run. We fund a custom agent’s model calls from our own catalog; the bring-your-own-endpoint option exists only for the osec-agent-1 kind.
One tarball, and every trajectory in it is an OST document: Open Security Trace, schema_version "ost/1", one per task × epoch, validated against the spec on submission. It is the same format we record for our own runs, so one tool reads both. Very large tool outputs are truncated in the record on both sides.
payload.tar.gz├── manifest.json the submission manifest├── agent/ your candidate bundle│ ├── manifest.toml type = "custom", entrypoint = "bin/agent"│ └── bin/agent your static ACP binary└── evidence/ the local run's output├── run-header.json├── scores.json└── trajectories/└── <task>_e<epoch>.json one OST document per task × epoch
The platform verifies size, checksums, manifest agreement, candidate files, evidence coverage, and OST conformance before dispatch.
open.security stages the candidate bundle into a new controlled environment with the bundled dataset identity, the benchmark version, the model route, a resource class, and time limits.
Agent pods receive no upstream provider secret. Model calls go through a per-run gateway with an expiring virtual key, a model allowlist, and a spend ceiling.
The platform judges the newly produced trajectories, records the available evidence-binding state, and writes the result as the submission’s official score.
What is public: the submission's metadata and, unless you pass --private, the official score and its run record. What is not: the bundle you upload, its evidence, your workspace and your raw provider transcripts. Those stay unpublished either way, and a private submission still gets its own official run and score.
| Artifact | Public submission | Private submission |
|---|---|---|
| Official score and public-safe run record | Published after scoring | Owner-only |
| Submitter handle and candidate metadata | Published | Owner-only |
| Agent bundle, evidence, raw trajectories | Never public | Never public |
| Workspace and raw provider transcripts | Never uploaded | Never uploaded |
Execution window
Samples are capped at 15 minutes and two run concurrently. Queue time depends on available capacity; no queue or completion SLA is published.
Current funding
The official path uses platform catalog models under an internal $25 gateway spend ceiling per run. Submitters are not billed today; the monthly quota is what rations shared capacity.
osb auth login again, or replace the CI OSB_TOKEN.ispm-crossvendor-v1 identity, with no --dataset override.osb submit again to create a new submission and upload URL. The expired orphan is reclaimed.