Tools
SDK (TypeScript)
@lifesi/genesis is one client for every Genesis service: genesis.call reaches any operation by id, and service helpers wrap the common ones.
npm install @lifesi/genesis@0.1.12ESM only; Node.js 20.19 or later; tested on 20, 22 and 24.
Configuration
import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({
apiKey: process.env.GENESIS_API_KEY, // or omit: GENESIS_API_KEY, then your `genesis login`
baseUrl: 'https://os.one.ml/api', // or GENESIS_BASE_URL; https only (http on loopback)
})| Option | Environment | Default | Notes |
|---|---|---|---|
apiKey | GENESIS_API_KEY | your genesis login | An organization API key. |
token | GENESIS_TOKEN | — | A WorkOS M2M or session access token. |
baseUrl | GENESIS_BASE_URL | https://os.one.ml/api | Must be https://, or http:// on loopback. |
fetch | — | global fetch | Your own fetch, for tests, proxies or tracing. |
headers | — | — | Headers added to every request. |
userAgent | — | @lifesi/genesis/0.1.12 |
Calling any operation
const result = await genesis.call(operationId, input, init)operationIdis the id shown for each operation in the API reference, for examplehives_create_project.inputholds path and query parameters by name, and the request body underbody.init.headersadds headers to this request, such asIdempotency-Key;init.signalcancels it.- The result is the parsed JSON body; a
204givesundefined.
const secrets = await genesis.call('hives_list_secrets', { project_id: 'prj_…', page: 1, per_page: 100 })operationTable lists every operation the client knows, with its method, path, parameters and input schema:
import { operationTable } from '@lifesi/genesis'
console.log(Object.keys(operationTable).length) // 463Service helpers
Helpers wrap operations with named arguments. They call the same operations as genesis.call.
const projects = await genesis.hives.projects.list()
const runs = await genesis.traces.runs.list()
const reply = await genesis.foundry.chat({ model: 'x', messages: [{ role: 'user', content: 'Hello' }] })genesis.minds 21
genesis.minds.groups.list()genesis.minds.groups.create()genesis.minds.groups.members.list()genesis.minds.groups.members.add()genesis.minds.groups.members.remove()genesis.minds.attachments.list()genesis.minds.attachments.attach()genesis.minds.attachments.detach()genesis.minds.agent.memory.insert()genesis.minds.agent.memory.get()genesis.minds.agent.memory.search()genesis.minds.list()genesis.minds.get()genesis.minds.usage()genesis.minds.create()genesis.minds.resume()genesis.minds.stop()genesis.minds.memory.insert()genesis.minds.memory.get()genesis.minds.memory.update()genesis.minds.memory.search()
genesis.blinds 17
genesis.blinds.credentials.list()genesis.blinds.credentials.store()genesis.blinds.credentials.revoke()genesis.blinds.oauth.connections()genesis.blinds.consent.pending()genesis.blinds.consent.records()genesis.blinds.consent.approve()genesis.blinds.consent.deny()genesis.blinds.consent.revoke()genesis.blinds.delegates.list()genesis.blinds.delegates.create()genesis.blinds.delegates.revoke()genesis.blinds.activity()genesis.blinds.ownerEnrollment.reserve()genesis.blinds.ownerEnrollment.sign()genesis.blinds.ownerEnrollment.attach()genesis.blinds.ownerEnrollment.ensureP256()
genesis.dials 37
genesis.dials.routing.list()genesis.dials.routing.create()genesis.dials.routing.disable()genesis.dials.people.list()genesis.dials.people.create()genesis.dials.agents.list()genesis.dials.agents.create()genesis.dials.voice.list()genesis.dials.voice.create()genesis.dials.messages.list()genesis.dials.messages.send()genesis.dials.messages.templates.list()genesis.dials.messages.templates.create()genesis.dials.messages.brands.list()genesis.dials.messages.brands.create()genesis.dials.messages.campaigns.list()genesis.dials.messages.campaigns.create()genesis.dials.messages.campaigns.assignNumber()genesis.dials.workflows.list()genesis.dials.workflows.deploy()genesis.dials.overview.summary()genesis.dials.overview.operatingSurface()genesis.dials.numbers.reconciliations()genesis.dials.numbers.drift()genesis.dials.numbers.updateCallerName()genesis.dials.numbers.reconcile()genesis.dials.numbers.list()genesis.dials.numbers.search()genesis.dials.numbers.provision()genesis.dials.numbers.assign()genesis.dials.numbers.delete()genesis.dials.numbers.release()genesis.dials.numbers.registerEmergencyAddress()genesis.dials.calls.list()genesis.dials.calls.validate()genesis.dials.calls.create()genesis.dials.calls.recover()
genesis.henry 8
genesis.henry.config()genesis.henry.credential()genesis.henry.receipts.verificationKey()genesis.henry.runs.list()genesis.henry.runs.create()genesis.henry.runs.get()genesis.henry.runs.command()genesis.henry.runs.approval()
genesis.fleets 18
genesis.fleets.agents.list()genesis.fleets.agents.launch()genesis.fleets.agents.get()genesis.fleets.agents.command()genesis.fleets.agents.stop()genesis.fleets.agents.recover()genesis.fleets.instances.list()genesis.fleets.instances.get()genesis.fleets.instances.stop()genesis.fleets.instances.start()genesis.fleets.connection.get()genesis.fleets.connection.set()genesis.fleets.connection.delete()genesis.fleets.tasks.list()genesis.fleets.tasks.submit()genesis.fleets.tasks.get()genesis.fleets.tasks.cancel()genesis.fleets.tasks.receipt()
genesis.runner 8
genesis.runner.permission.grant()genesis.runner.catalog()genesis.runner.jobs.list()genesis.runner.jobs.start()genesis.runner.jobs.get()genesis.runner.jobs.events()genesis.runner.jobs.result()genesis.runner.jobs.cancel()
genesis.beacons 13
genesis.beacons.fleets.list()genesis.beacons.fleets.update()genesis.beacons.fleets.peers()genesis.beacons.fleets.policy.get()genesis.beacons.fleets.policy.update()genesis.beacons.fleets.provision()genesis.beacons.devices.revocations()genesis.beacons.devices.acknowledge()genesis.beacons.devices.challenge()genesis.beacons.devices.enroll()genesis.beacons.devices.list()genesis.beacons.devices.update()genesis.beacons.devices.revoke()
genesis.flocks 10
genesis.flocks.readiness.get()genesis.flocks.nodes.list()genesis.flocks.nodes.rename()genesis.flocks.nodes.revoke()genesis.flocks.nodes.heartbeat()genesis.flocks.nodes.enroll()genesis.flocks.nodes.activate()genesis.flocks.nodes.rotateCredential()genesis.flocks.joinTokens.exchange()genesis.flocks.joinTokens.create()
genesis.rigs 1
genesis.rigs.list()
genesis.panes 1
genesis.panes.list()
genesis.shells 1
genesis.shells.list()
genesis.gears 9
genesis.gears.workflows.list()genesis.gears.workflows.get()genesis.gears.workflows.register()genesis.gears.runs.list()genesis.gears.runs.get()genesis.gears.runs.history()genesis.gears.runs.start()genesis.gears.runs.signal()genesis.gears.records()
genesis.lanes 24
genesis.lanes.records.get()genesis.lanes.records.write()genesis.lanes.records.snapshot()genesis.lanes.records.restore()genesis.lanes.retrieve()genesis.lanes.frames.create()genesis.lanes.answer()genesis.lanes.ledger.frame()genesis.lanes.ledger.snapshot()genesis.lanes.ledger.restore()genesis.lanes.cache.lookup()genesis.lanes.cache.write()genesis.lanes.cache.snapshot()genesis.lanes.cache.restore()genesis.lanes.recovery.restore()genesis.lanes.tenant.export()genesis.lanes.tenant.delete()genesis.lanes.policy.evaluate()genesis.lanes.foundryRoutes.enforce()genesis.lanes.promotions.list()genesis.lanes.promotions.propose()genesis.lanes.promotions.review()genesis.lanes.operations.records()genesis.lanes.operations.get()
genesis.flares 34
genesis.flares.list()genesis.flares.get()genesis.flares.send()genesis.flares.sendBatch()genesis.flares.acknowledge()genesis.flares.act()genesis.flares.conversations.list()genesis.flares.conversations.get()genesis.flares.conversations.create()genesis.flares.conversations.send()genesis.flares.conversations.close()genesis.flares.commitments.list()genesis.flares.commitments.get()genesis.flares.commitments.create()genesis.flares.commitments.accept()genesis.flares.commitments.start()genesis.flares.commitments.progress()genesis.flares.commitments.fulfill()genesis.flares.commitments.fail()genesis.flares.presence.heartbeat()genesis.flares.presence.get()genesis.flares.trust.score()genesis.flares.trust.check()genesis.flares.trust.endorsements()genesis.flares.trust.endorse()genesis.flares.trust.revoke()genesis.flares.choreography.workflows.list()genesis.flares.choreography.workflows.create()genesis.flares.choreography.workflows.start()genesis.flares.choreography.executions.list()genesis.flares.choreography.executions.get()genesis.flares.choreography.executions.completeStep()genesis.flares.choreography.executions.failStep()genesis.flares.choreography.executions.cancel()
genesis.foundry 10
genesis.foundry.billing.profile()genesis.foundry.billing.ensureProfile()genesis.foundry.billing.checkoutCredits()genesis.foundry.billing.creditBalance()genesis.foundry.models.list()genesis.foundry.chat()genesis.foundry.chatStream()genesis.foundry.embeddings()genesis.foundry.registry.models()genesis.foundry.registry.model()
genesis.hives 127
genesis.hives.cells.list()genesis.hives.cells.get()genesis.hives.cells.create()genesis.hives.cells.remove()genesis.hives.cells.reconcile()genesis.hives.cells.cors.get()genesis.hives.cells.cors.set()genesis.hives.cells.objects.list()genesis.hives.cells.objects.put()genesis.hives.cells.objects.remove()genesis.hives.cells.objects.download()genesis.hives.cells.objects.putFlat()genesis.hives.cells.objects.removeFlat()genesis.hives.cells.presign()genesis.hives.queues.consumer.get()genesis.hives.queues.consumer.configure()genesis.hives.queues.consumer.remove()genesis.hives.queues.list()genesis.hives.queues.get()genesis.hives.queues.create()genesis.hives.queues.configure()genesis.hives.queues.remove()genesis.hives.queues.stats()genesis.hives.queues.consumers()genesis.hives.queues.pause()genesis.hives.queues.resume()genesis.hives.queues.purge()genesis.hives.queues.send()genesis.hives.queues.operations.get()genesis.hives.queues.receive()genesis.hives.queues.ack()genesis.hives.queues.nack()genesis.hives.queues.deadLetters()genesis.hives.queues.deadLetterStats()genesis.hives.queues.replay()genesis.hives.queues.deleteDeadLetter()genesis.hives.queues.purgeDeadLetters()genesis.hives.topics.list()genesis.hives.topics.get()genesis.hives.topics.create()genesis.hives.topics.remove()genesis.hives.topics.subscriptions.list()genesis.hives.topics.subscriptions.add()genesis.hives.topics.subscriptions.remove()genesis.hives.topics.publish()genesis.hives.runtimes.list()genesis.hives.runtimes.project()genesis.hives.runtimes.get()genesis.hives.runtimes.select()genesis.hives.settings.get()genesis.hives.settings.update()genesis.hives.crons.list()genesis.hives.crons.get()genesis.hives.crons.create()genesis.hives.crons.update()genesis.hives.crons.delete()genesis.hives.crons.pause()genesis.hives.crons.resume()genesis.hives.crons.trigger()genesis.hives.crons.runs()genesis.hives.metrics.project()genesis.hives.metrics.dashboard()genesis.hives.metrics.requests()genesis.hives.metrics.latency()genesis.hives.metrics.errors()genesis.hives.metrics.function()genesis.hives.metrics.invocations()genesis.hives.metrics.deployment()genesis.hives.metrics.resources()genesis.hives.metrics.realtime()genesis.hives.volumes.list()genesis.hives.volumes.get()genesis.hives.volumes.create()genesis.hives.volumes.mount()genesis.hives.volumes.unmount()genesis.hives.volumes.remove()genesis.hives.marketplace.list()genesis.hives.marketplace.get()genesis.hives.marketplace.versions()genesis.hives.marketplace.featured()genesis.hives.marketplace.categories()genesis.hives.marketplace.publish()genesis.hives.marketplace.install()genesis.hives.marketplace.update()genesis.hives.marketplace.installed()genesis.hives.marketplace.getInstallation()genesis.hives.marketplace.reconcile()genesis.hives.marketplace.uninstall()genesis.hives.context.get()genesis.hives.context.set()genesis.hives.context.detach()genesis.hives.environment.list()genesis.hives.environment.upsert()genesis.hives.environment.reveal()genesis.hives.projects.list()genesis.hives.projects.get()genesis.hives.projects.create()genesis.hives.projects.update()genesis.hives.projects.activity()genesis.hives.projects.delete()genesis.hives.secrets.list()genesis.hives.secrets.get()genesis.hives.secrets.create()genesis.hives.secrets.update()genesis.hives.secrets.delete()genesis.hives.secrets.reveal()genesis.hives.secrets.bulkUpsert()genesis.hives.deployments.list()genesis.hives.deployments.get()genesis.hives.deployments.upload()genesis.hives.deployments.create()genesis.hives.deployments.promote()genesis.hives.deployments.rollback()genesis.hives.deployments.cancel()genesis.hives.deployments.stop()genesis.hives.deployments.delete()genesis.hives.deployments.logs()genesis.hives.deployments.invoke()genesis.hives.functions.list()genesis.hives.functions.get()genesis.hives.functions.create()genesis.hives.functions.update()genesis.hives.functions.delete()genesis.hives.functions.invoke()genesis.hives.functions.operations.get()genesis.hives.functions.operations.release()genesis.hives.regions.list()
genesis.silos 5
genesis.silos.databases.list()genesis.silos.databases.get()genesis.silos.projects.list()genesis.silos.projects.create()genesis.silos.projects.get()
genesis.traces 6
genesis.traces.runs.create()genesis.traces.runs.list()genesis.traces.runs.get()genesis.traces.runs.evidence()genesis.traces.search()genesis.traces.usage.events()
genesis.relays 11
genesis.relays.enrollment.get()genesis.relays.enrollment.activate()genesis.relays.zones.list()genesis.relays.zones.get()genesis.relays.zones.dnssec()genesis.relays.zones.create()genesis.relays.zones.delete()genesis.relays.records.list()genesis.relays.records.create()genesis.relays.records.update()genesis.relays.records.delete()
genesis.keys 3
genesis.keys.list()genesis.keys.create()genesis.keys.revoke()
Errors
Every failure throws a GenesisError:
| Property | Notes |
|---|---|
status | The HTTP status; 0 when the SDK refused before sending. |
type | A stable token such as unauthorized, forbidden, not_found, invalid_request. |
code | The gateway's error code, when the gateway raised the error. |
message | From the gateway's error catalog where there is one. |
requestId | The request's x-request-id. |
errorCatalog(error) returns { code, required_scope, docs_url }. See Errors.
Idempotency
await genesis.call('gears_startRun', { body }, { headers: { 'Idempotency-Key': key } })idempotencyHeaders(operationId, key) builds the header and refuses, before anything is sent, a missing required key or a malformed one. See Idempotency.
The OpenAPI document
import spec from '@lifesi/genesis/spec.json' with { type: 'json' }The full document the client is generated from, with descriptions and schemas, for your own tooling.
Context selection
Selection-bound services act in a chosen workspace and project. A signed-in session (not an API key) selects one, either an organization alone or a full Sandbox selection:
await genesis.context.select({ organizationId: 'o_…' })
await genesis.context.select({
organizationId: 'o_…', workspaceId: 'w_…', projectId: 'pr_…',
platformId: 'pf_console', fleetId: null, environmentId: 'sandbox',
})See Organizations and projects.
One Superintelligence, Inc. · Built from Genesis 0.1.12 and the live gateway on 2026-10-20. Support