Paste your decision. See what you're missing.
10 decisions per month. Start free.
One paragraph. That's it.
Your reasoning. Hidden assumptions. Expected outcomes. Key risks.
Compare what you expected with what actually happened.
Not opinions. Actual feedback on your thinking.
OMEGA is a tool that helps you make better decisions. You describe a decision — in plain English — and it shows you the hidden assumptions, the risks, what you should check before committing, and what to track afterwards.
An API is just a way for one piece of software to talk to another. Think of it like a plug socket — you plug in, electricity comes out. You plug a decision in, structured thinking comes out. You don't need to understand how it works any more than you understand how electricity works.
When you sign up, you get a unique code. It looks like this: om_live_abc123. This is your personal key. It identifies you and saves your decisions to your account. Think of it like a password — except you only need it once. After that, the tool remembers you.
No. You can use OMEGA in three ways:
Scroll up. Type a decision. Click the button. That's it. No code, no setup, no installation. Works right now.
If you're a developer, you can connect OMEGA to your website, internal tool, or AI agent using a few lines of code. Every decision your users make gets traced automatically.
If you're building autonomous AI systems, plug OMEGA in so every action the agent takes is checked, traced, and governed — before it executes.
10 decisions per month. Each decision gives you: a breakdown of your reasoning, a list of hidden assumptions, the key risks, what to check before committing, and a permanent tamper-proof record. Come back any time to check if your predictions were right.
Step 1: Enter your invite code below. You get your access code instantly.
Step 2: Scroll to the decision box at the top of this page.
Step 3: Pick an example or type your own decision.
Step 4: Click 'Decode this decision'. See your results in seconds.
Step 5: Come back any time. Your decisions are saved. You don't need to enter the code again.
No software to install. No account to create. No credit card. Just a code and a decision.
Anyone making a decision that matters. Founders deciding whether to expand. Scientists deciding which hypothesis to test. Teams deciding what to build next. Investors deciding where to put money. Compliance officers who need to prove decisions were made responsibly.
If the decision is important enough to get right, this is for you.
Send a decision to OMEGA and get structured results back. Here's all it takes:
// Send a decision
const response = await fetch('https://api.omegaprotocol.org/v1/assumptions/extract', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_CODE',
'Content-Type': 'application/json'
},
body: JSON.stringify({
text: 'Should we expand into the US market?',
session_id: 'strategy_decision_01'
})
});
// Get back: list of hidden assumptions, each one trackable
const result = await response.json();
That's it. One call. Works from any programming language, any platform, any tool. Full docs below ↓
Hash-chained, tamper-evident records for every action and decision. Replay any chain. Verify integrity. Export for audit. Real-time stream and compliance reports.
POST /trace/recordGET /trace/chain/{session}POST /trace/verifyPOST /trace/replayGET /trace/export/{session}GET /trace/compliance-report/{sessionId}?framework=eu_ai_actGET /trace/stream/{sessionId} (SSE)GET /dashboard/{sessionId}
Extract assumptions from any text. Track status over time. Test against new evidence. Surface what's unvalidated and risky.
POST /assumptions/extractPATCH /assumptions/{id}POST /assumptions/testGET /assumptions/registry/{session}GET /assumptions/risk
Multi-lens decision analysis with governance. Six analytical modes, assumption extraction, tension detection, and a decision state machine. Automatically creates traces and extracts assumptions.
POST /decide/analyzePOST /decide/stressPOST /decide/rerunGET /decide/{session}/tensionsGET /decide/{session}/summary
Record what was expected before a decision. Set a baseline. Score surprise when reality arrives.
POST /expectation/setPOST /surprise/score
Separate intent from action. Record provisional decisions and whether they were confirmed or abandoned before execution.
POST /confirmation/record
Score how far reality diverged from expectation. Surface which assumptions were invalidated by the outcome.
POST /surprise/score
Agent Guard: pre-execution checks for autonomous agents. Boundary enforcement, risk assessment, and escalation gates.
POST /agent/check
// Every session contains all seven artifact types { "session_id": "ses_trial_2026_03", "trace_records": [12 records, hash-chained], "assumptions": [8 extracted, 3 tested, 1 invalid], "decisions": [2 analyses, state: "CONDITIONAL"], "expectations": [3 baselines set, 1 resolved], "confirmations": [4 recorded, 2 acted, 2 no_act], "agent_checks": [6 proposed, 4 approved, 1 escalated, 1 denied] }
// Set an expectation baseline before a decision const exp = await fetch('https://api.omegaprotocol.org/v1/expectation/set', { method: 'POST', headers: { 'Authorization': 'Bearer om_live_...', 'Content-Type': 'application/json' }, body: JSON.stringify({ session_id: 'ses_trial_2026_03', decision_context: 'Phase II go/no-go', expected_outcomes: [ { description: 'Trial proceeds to Phase III', metric: 'primary endpoint met' }, { description: 'Safety profile acceptable', metric: 'no SAEs' } ] }) }); // Response { "expectation_id": "exp_...", "session_id": "ses_trial_2026_03", "expectation_hash": "sha256:..." }
// Run a governed decision analysis const decision = await fetch('https://api.omegaprotocol.org/v1/decide/analyze', { method: 'POST', headers: { 'Authorization': 'Bearer om_live_...', 'Content-Type': 'application/json' }, body: JSON.stringify({ decision: 'Raise Series A at £8M valuation or continue bootstrapping', scope: 'strategic', posture: 'balanced', modes: ['decision_record', 'challenge', 'audit_trace'], context: { mrr: 30000, growth: '15% monthly', runway: '18 months' } }) }); // Response { "state": "CONDITIONAL", "summary": { "recommendation": "Defer 3-4 months — growth trajectory suggests better terms ahead", "conditions": ["Validate growth sustainability", "Get competing term sheets"], "confidence": 0.62 }, "assumptions": 8, "tensions": 2, "trace_hash": "sha256:3e8f1a..." }
// Extract assumptions from a business plan const assumptions = await fetch('https://api.omegaprotocol.org/v1/assumptions/extract', { method: 'POST', headers: { 'Authorization': 'Bearer om_live_...', 'Content-Type': 'application/json' }, body: JSON.stringify({ text: 'We project 15% monthly growth sustained over 12 months, with customer acquisition cost remaining below £40 and no major competitor entering the market.', session_id: 'ses_plan_2026' }) }); // Response { "assumptions": [ { "id": "A1", "text": "15% monthly growth sustained for 12 months", "status": "UNTESTED" }, { "id": "A2", "text": "CAC remains below £40", "status": "UNTESTED" }, { "id": "A3", "text": "No major competitor enters market", "status": "UNTESTED" } ] }
// Record a hash-chained trace const trace = await fetch('https://api.omegaprotocol.org/v1/trace/record', { method: 'POST', headers: { 'Authorization': 'Bearer om_live_...', 'Content-Type': 'application/json' }, body: JSON.stringify({ action: 'Approved compound for Phase II trial', context: { domain: 'clinical', confidence: 0.82 }, session_id: 'ses_trial_2026_03' }) }); // Response { "id": "tr_a1b2c3", "hash": "sha256:9f4e2d...", "previous_hash": "sha256:7c1a8b...", "chain_position": 4, "integrity": "valid" }
// Pre-execution check for an agent action const check = await fetch('https://api.omegaprotocol.org/v1/agent/check', { method: 'POST', headers: { 'Authorization': 'Bearer om_live_...', 'Content-Type': 'application/json' }, body: JSON.stringify({ action: 'read config from environment', session_id: 'ses_agent_2026', context: 'Startup validation' }) }); // Response { "check_id": "chk_...", "session_id": "ses_agent_2026", "action": "read config from environment", "decision": "APPROVED", "reason": "Action is within defined boundaries", "flags": [], "timestamp": "2026-03-12T..." }
// Verify an entire trace chain const verify = await fetch('https://api.omegaprotocol.org/v1/trace/verify', { method: 'POST', headers: { 'Authorization': 'Bearer om_live_...', 'Content-Type': 'application/json' }, body: JSON.stringify({ session_id: 'ses_trial_2026_03' }) }); // Response { "session_id": "ses_trial_2026_03", "chain_length": 12, "integrity": "valid", "first_record": "2026-03-01T09:14:22Z", "last_record": "2026-03-12T16:45:01Z", "tampered": false }
// Get a framework-specific compliance report for a session const report = await fetch('https://api.omegaprotocol.org/v1/trace/compliance-report/ses_trial_2026_03?framework=eu_ai_act', { headers: { 'Authorization': 'Bearer om_live_...' } }); // Response { "report_id": "cr_...", "session_id": "ses_trial_2026_03", "framework": "eu_ai_act", "summary": { "total_traces": 12, "chain_integrity": "VALID" }, "framework_mapping": { "framework_name": "EU AI Act", "articles": [...] } }
All requests to the OMEGA Decision API must include a bearer token:
Authorization: Bearer YOUR_API_KEY
om_live_.Plan limits:
Record a hash-chained trace entry for any important action or decision. Each call appends a new link to the session's trace chain.
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
| action | string | YES | The action, event, or decision being traced. |
| session_id | string | NO | Groups traces into a chain. Auto-generated if omitted. |
| context | object | NO | Structured context about the action (inputs, environment, user, etc.). |
| metadata | object | NO | Additional tags and metadata for downstream analytics. |
| expectation_id | string | NO | Optional link to a prior expectation baseline. |
| confirmation_id | string | NO | Optional link to a confirmation record. |
| governance_stage | string | NO | observe | expectation | surprise | derive | assume | decide | confirm | act | no_act | invalidation |
{
"session_id": "ses_db_migration_2026_03",
"action": "DB_MIGRATION_DECISION_RECORDED",
"context": {
"decision": "Migrate primary PostgreSQL to CockroachDB overnight",
"risk_level": "high",
"team": "platform",
"window": "02:00–06:00 UTC Saturday"
},
"metadata": {
"lead_engineer": "sara_k",
"approved_by": "cto"
},
"governance_stage": "decide"
}
{
"id": "tr_m9x2c4a1b8f3",
"session_id": "ses_db_migration_2026_03",
"hash": "sha256:a7f3d92e1b4c8f0e5a2d6b9c3f1e8a4d7b0c5e2f9a6d3b8c1e4f7a0d3b6c9e2f",
"previous_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
"chain_position": 1,
"integrity": "valid",
"created_at": "2026-03-15T23:14:07.218Z"
}
Turn free-form text into a structured list of assumptions that can be tracked, tested, and invalidated over time.
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
| text | string | YES | Source text to scan for implicit or explicit assumptions. |
| session_id | string | NO | Session to attach assumptions to (for later decisions and traces). |
{
"text": "We will migrate the primary database overnight this Saturday. The migration window is 4 hours. We expect zero data loss. Rollback is possible within the first 2 hours if we detect issues. The new system can handle our current query load from day one.",
"session_id": "ses_db_migration_2026_03"
}
{
"session_id": "ses_db_migration_2026_03",
"assumptions": [
{
"id": "A_4f2a9c1e8b3d",
"label": "A1",
"text": "Migration will complete within the 4-hour window",
"status": "UNTESTED"
},
{
"id": "A_7c3b1f9e2a4d",
"label": "A2",
"text": "Zero data loss is achievable with the chosen migration approach",
"status": "UNTESTED"
},
{
"id": "A_1d8e4b2f6c9a",
"label": "A3",
"text": "Rollback is possible within the first 2 hours",
"status": "UNTESTED"
},
{
"id": "A_5a9f3c7d2e1b",
"label": "A4",
"text": "New system handles current query load from day one",
"status": "UNTESTED"
}
],
"count": 4,
"extraction_method": "gemini_v1",
"model_integration": "gemini"
}
Run a structured, multi-lens analysis of an important decision. DECIDE can surface risks, tensions, and recommended actions.
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
| decision | string | YES | The decision question you want analyzed. |
| session_id | string | NO | Session to attach this analysis to. |
| preset | string | NO | Domain preset: clinical, legal, procurement, product, finance, scientific, board. |
| scope | string | NO | operational | strategic | tactical (defaults are applied if omitted). |
| posture | string | NO | balanced | conservative | aggressive (affects risk sensitivity). |
{
"decision": "Should we migrate our primary PostgreSQL database to CockroachDB this Saturday during the 02:00–06:00 UTC maintenance window?",
"session_id": "ses_db_migration_2026_03",
"preset": "architecture",
"scope": "operational",
"posture": "conservative"
}
{
"id": "dec_9b3f1e7c4a2d",
"session_id": "ses_db_migration_2026_03",
"job_id": "job_8f2c1a9e4b3d",
"decision": "Should we migrate our primary PostgreSQL database to CockroachDB this Saturday during the 02:00–06:00 UTC maintenance window?",
"scope": "operational",
"posture": "conservative",
"state": "PROPOSED",
"trace_hash": "sha256:c4f8a2d1e9b3f7c0a5d2e8b4f1c7a3d9e6b0f2c8a4d7e1b5f3c9a6d0e4b8f2c5",
"status": "pending",
"analysis_status": "running",
"poll_url": "/v1/decide/job/job_8f2c1a9e4b3d",
"created_at": "2026-03-15T23:14:22.891Z"
}
Record what you expect before acting. Expectations are the baseline that surprise and calibration are measured against.
{
"session_id": "ses_db_migration_2026_03",
"decision_context": "PostgreSQL to CockroachDB migration, Saturday maintenance window",
"expected_outcomes": [
{
"dimension": "migration_duration_hours",
"expected_value": "4",
"confidence": 0.65,
"basis": "staging_environment_test",
"testable_by": "migration_completion_timestamp",
"horizon": "2026-03-21T06:00:00Z"
},
{
"dimension": "data_loss_records",
"expected_value": "0",
"confidence": 0.88,
"basis": "checksums_and_row_counts",
"testable_by": "post_migration_audit_query",
"horizon": "2026-03-21T08:00:00Z"
},
{
"dimension": "query_performance_p99_ms",
"expected_value": "under 200",
"confidence": 0.55,
"basis": "vendor_benchmarks",
"testable_by": "production_query_monitoring",
"horizon": "2026-03-22T00:00:00Z"
}
],
"baseline_state": {
"description": "Pre-migration state: PostgreSQL p99 query time 145ms, 2.3M rows in primary table, last full backup 18:00 UTC Friday",
"key_variables": {
"current_p99_ms": 145,
"primary_table_rows": 2300000,
"last_backup": "2026-03-20T18:00:00Z"
}
}
}
Separate DECIDE from ACT. Confirmation records capture whether intent was confirmed, failed, or expired — including non-actions.
{
"session_id": "ses_db_migration_2026_03",
"expectation_id": "exp_20260320_db_migration",
"intent": {
"description": "Begin live database migration — cut over production traffic to CockroachDB",
"action_type": "infrastructure_change",
"provisional_at": "2026-03-21T01:30:00Z"
},
"confirmation_window_seconds": 1800,
"confirmation_checks": [
{
"check": "staging_migration_passed",
"result": "pass",
"observed_value": "completed in 3h 42m, zero errors",
"expected_value": "completed within window"
},
{
"check": "backup_verified",
"result": "pass",
"observed_value": "full backup confirmed at 18:00 UTC",
"expected_value": "backup within 12 hours"
},
{
"check": "rollback_tested",
"result": "pass",
"observed_value": "rollback tested in staging, 8 minutes",
"expected_value": "rollback under 30 minutes"
},
{
"check": "on_call_engineer_available",
"result": "pass",
"observed_value": "sara_k and backup on-call confirmed",
"expected_value": "two engineers available"
}
],
"confirmation_status": "confirmed",
"confirmation_score": 0.95,
"acted": true,
"reason": "All four confirmation checks passed. Proceeding with migration at 02:00 UTC."
}
When outcomes resolve, compute a surprise score against the original expectation baseline. Use this for calibration and model governance.
{
"expectation_id": "exp_20260320_db_migration",
"actual_outcomes": [
{
"dimension": "migration_duration_hours",
"actual_value": "9.2",
"observed_at": "2026-03-21T11:12:00Z"
},
{
"dimension": "data_loss_records",
"actual_value": "0",
"observed_at": "2026-03-21T11:30:00Z"
},
{
"dimension": "query_performance_p99_ms",
"actual_value": "380",
"observed_at": "2026-03-21T14:00:00Z"
}
]
}
{
"expectation_id": "exp_20260320_db_migration",
"surprise_score": 0.67,
"surprise_by_dimension": [
{
"dimension": "migration_duration_hours",
"expected": "4",
"actual": "9.2",
"divergence": "high",
"direction": "above"
},
{
"dimension": "data_loss_records",
"expected": "0",
"actual": "0",
"divergence": "low",
"direction": "aligned"
},
{
"dimension": "query_performance_p99_ms",
"expected": "under 200",
"actual": "380",
"divergence": "high",
"direction": "above"
}
],
"calibration_note": "Significant divergence between expectation and outcome — migration took 2.3× longer than expected and query performance fell short. Review assumptions A1 and A4.",
"assumption_failures": [
"Expectation on migration_duration_hours was invalidated by the outcome.",
"Expectation on query_performance_p99_ms was invalidated by the outcome."
]
}
DECIDE analyses run asynchronously. Poll this endpoint until the job status is complete.
GET /v1/decide/job/job_206fbfdfb393 Authorization: Bearer YOUR_API_KEY
{
"job_id": "job_8f2c1a9e4b3d",
"status": "complete",
"result": {
"summary": "Migration is viable but high-risk. Staging tests are encouraging but four assumptions remain untested in production conditions. Recommend confirming rollback procedure before proceeding.",
"outputs": [],
"assumptions_surfaced": 4,
"trace_hash": "sha256:c4f8a2d1...",
"expectation_baseline": {
"what_is_assumed": [
"Migration completes within 4-hour window",
"Zero data loss achievable",
"Rollback possible within 2 hours",
"New system handles current query load"
],
"what_would_surprise": [
"Migration exceeds 6 hours",
"Any data integrity failures detected",
"Rollback window closes before issues detected"
],
"confirmation_checks": [
"Verify staging migration completed cleanly",
"Confirm backup within last 12 hours",
"Test rollback procedure before go-live"
]
},
"primitive_coverage": {
"governance": true,
"reasoning": true,
"traceability": true,
"expectation": true,
"confirmation": false
}
}
}
Return the full hash chain for a session to verify integrity end-to-end. Use this to audit every decision and action in a session.
{
"session_id": "ses_db_migration_2026_03",
"chain": [
{
"id": "tr_m9x2c4a1b8f3",
"action": "DB_MIGRATION_DECISION_RECORDED",
"hash": "sha256:a7f3d92e...",
"previous_hash": "sha256:00000000...",
"chain_position": 1,
"governance_stage": "decide",
"integrity": "valid"
},
{
"id": "tr_k4p7e1n9q2r5",
"action": "expectation_set",
"hash": "sha256:b8e4c1f9...",
"previous_hash": "sha256:a7f3d92e...",
"chain_position": 2,
"governance_stage": "expectation",
"integrity": "valid"
},
{
"id": "tr_r3s6t9u2v5w8",
"action": "confirmation_recorded",
"hash": "sha256:c9f5d2a8...",
"previous_hash": "sha256:b8e4c1f9...",
"chain_position": 3,
"governance_stage": "act",
"integrity": "valid"
}
],
"length": 3,
"integrity": "valid"
}
Generate a structured compliance report from trace, assumption, and decision data for a session. Supported framework query values: eu_ai_act, iso_42001, nist_ai_rmf, general (default), fda_21cfr11 (placeholder).
Server-Sent Events endpoint for real-time trace updates. Sends existing traces first, then polls and pushes updates every 2 seconds. Use ?api_key= for browser EventSource when needed.
HTML dashboard for a session: traces (newest first), assumption registry, decisions, chain integrity, and a "Generate Compliance Report" button. Auto-updates via SSE. Use ?api_key= for browser access.
Submit a proposed agent action. The API checks it against boundaries and returns APPROVED, DENIED, or ESCALATE. Optional Gemini risk assessment. Body: action (required), session_id (required), agent_id, context, boundaries.
Common HTTP statuses and error codes returned by the OMEGA Decision API.
| Status | Code | Meaning |
|---|---|---|
| 400 | bad_request | Missing or invalid fields in the request body. |
| 401 | unauthorized | Missing, invalid, or expired API key. |
| 404 | not_found | The requested resource does not exist. |
| 409 | code_already_used | This invite code has already been redeemed. |
| 429 | usage_limit_exceeded | Monthly plan limit reached — upgrade to continue. |
| 500 | internal_error | Unhandled server error — retry or contact support. |
Trace experimental decisions, surface hidden assumptions, and keep a reproducible reasoning trail alongside your lab notebook and data.
Pre-execution checks for autonomous agents. Boundary enforcement, risk assessment, and escalation gates. Hash-chained traces and verifiable audit chains for every action an agent proposes.
Decision records and assumption registries for trial design, diagnostics, and treatment choices that need to withstand regulatory review.
For robots, vehicles, drones, and spacecraft. Capture every control decision as a trace with forensic replay and safety checks.
Generate evidence for EU AI Act, FDA, ISO 42001, and NIST frameworks directly from trace and assumption data.
Generate framework-specific compliance reports from your trace data. EU AI Act, ISO 42001, NIST AI RMF.
Structured strategic decisions with tracked assumptions, exportable governance records, and replayable board histories.
Zero-dependency, air-gapped compatible decision tracing for systems that cannot rely on external services.
Inspectable underwriting, trading, and credit decisions. Assumption registries for model risk management.
Most tools reset every time you use them. OMEGA remembers.
Record a decision. Extract assumptions. Set an expectation. You have a baseline.
50 decisions traced. Your assumption registry shows which assumptions keep failing. Surprise scores reveal where your predictions are weakest. You start making better calls.
500 decisions. Full calibration history. You can see which types of decisions your team consistently gets wrong, which assumptions are always untested, and which domains carry the most surprise. New team members inherit the organisation's decision intelligence from day one.
Thousands of traced decisions with hash-chained integrity. Compliance reports generated instantly. No competitor can replicate your decision history. The data compounds — and it's yours.
The longer you use it, the more it knows. The more it knows, the better your decisions. That's compound intelligence.
All API communication over HTTPS/TLS. No plaintext. No exceptions.
Every key is unique, plan-scoped, and revocable. Keys are never logged or exposed in responses.
Every record is SHA-256 hash-chained. If any record is altered, the chain breaks and verification fails. Immutable by design.
Session data is isolated per API key. No cross-tenant access. We do not use your data to train models or share it with third parties.
Infrastructure hosted in European data centres. Aligned with GDPR and UK Data Protection Act 2018. Enterprise plan includes dedicated instance and data residency options.
The OMEGA Protocol is MIT licensed and independently verifiable. You can audit the trace format, hash algorithm, and data model yourself. No vendor lock-in.
preset parameter wires DECIDE for your domain without changing your code.
Summarise strategic decisions into a board-ready memo with assumptions and tensions explicitly called out.
Stress-test an investment or acquisition thesis with multi-lens analysis and an auditable assumption registry.
Structure panel decisions, surface hidden premises, and export a consistent record for every grant round.
Run technical design reviews with explicit risks, mitigations, and traceable decisions across services and systems.
Reconstruct what happened after an outage or failure with replayable traces and a structured incident report.
Generate, track, and test research hypotheses with a living assumption registry across trials and experiments.
Govern vendor and tooling choices with explicit criteria, challenges, and a clean audit trail for approvals.
Define your own preset for any domain, then reuse it across teams and environments.