Weles documentation
Give your agents a reliable path through the internet.
Weles turns approved browser work into versioned trajectories. It combines patched Chromium and Firefox builds, managed sessions, explicit authorization boundaries, and retained evidence so agents can complete real web workflows without rediscovering every journey.
01 — Access
Connect an approved deployment
Weles is an operated service. An approved deployment provides an endpoint, an organization identifier, and an organization-scoped token. Keep these values in your service environment; do not place tokens in requests, prompts, or logs.
export WELES_API_BASE=<deployment-endpoint>
export WISENT_ORGANIZATION_ID=<organization-uuid>
export WELES_TOKEN=<organization-scoped-token>Access begins through the Weles site or an enterprise implementation call. Both the executor and the public client source are MIT-licensed, but a source checkout does not include a hosted endpoint, approved trajectories, managed credentials, evidence retention, or an SLA.
02 — Client
Submit an authorized workflow
Use the public Weles client to bind each request to an exact origin and action. The client-side allowlists make caller intent explicit; the service independently enforces its own policy.
import { WelesClient } from '@wisent-ai/weles-client';
const client = new WelesClient({
endpoint: process.env.WELES_API_BASE,
bearer: process.env.WELES_TOKEN,
organizationId: process.env.WISENT_ORGANIZATION_ID,
allowedOrigins: ['https://console.example.com'],
allowedActions: ['export-approved-report'],
});
const accepted = await client.submit({
origin: 'https://console.example.com',
action: 'export-approved-report',
input: { report: 'monthly' },
credentialRefs: ['customer-console-account'],
evidencePolicy: 'receipt',
justification: 'Export authorized by the account owner.',
}, { idempotencyKey: 'caller-retained-operation-id' });Use an idempotency key
Retain one operation ID per intended action so retries do not create duplicate browser work.
Name the authorization
Every submission includes a human-readable justification. Technical success does not establish permission to automate a target.
03 — Lifecycle
From admission to a terminal state
- 1
Admit
Weles checks the organization, origin, action, credential references, and request policy before adding work to the action log.
- 2
Claim
A worker on an approved host leases the task. One idempotency key identifies the caller's intended operation.
- 3
Execute
The worker resolves a reviewed trajectory and a verified browser release. Draft discovery may map a journey, but it does not authorize production execution.
- 4
Close
The action reaches an explicit terminal state. Configured deployments can also issue a signed receipt and evidence digest for offline verification.
Credentials resolve through scoped Skarbiec grants. Plaintext credentials never belong in the submitted input.
04 — Outcomes
Understand and verify what happened
Every production run closes with a terminal action-log state. Depending on deployment policy, retained evidence can include screenshots, video, DOM captures, logs, and a signed receipt. The client can verify a signed outcome and evidence digest without reading worker logs.
- Trace the exact point where a run failed.
- Replay approved keeper sessions and trajectories.
- Verify signed outcomes offline when receipts are enabled.
- Keep evidence retention and redaction bound to organization policy.
05 — Boundaries
Keep browser work inside explicit limits
- Exact allowlists. Production admission is constrained by organization, origin, and action.
- Scoped credentials. Requests carry credential references, not secrets; credentials follow the Skarbiec lifecycle.
- Reviewed trajectories. Discovery and production execution are separate. A discovered path is not automatically authorized.
- Private reports. Report vulnerabilities through a private GitHub Security Advisory. Never attach credentials, trajectories, recordings, or target details to a public issue.
06 — Status
Current compatibility contract
- Client
- The public Weles client source defines the 0.1.0 minimum contract. An operator provisions the hosted endpoint and its service agreement.
- API
- Versioned task, cancellation, status, and receipt schemas expose stable
currentaliases. - Executor
- The worker ships as immutable
worker-v*artifacts promoted through candidate, development, canary, and production rings. - Browsers
- Chromium and Firefox launch only when the local receipt matches the exact Stado release coordinate and checksum selected for the worker.
For discussion and integration help, join the Wisent Discord. Report operational defects in the Weles issue tracker with the action-log row ID, worker instance ID, and release coordinate—never recordings or credentials.