By default a run executes on the cloud's managed engine. Pass engine, model and engineKey when you build the client and the run executes on your own provider account instead — same agent, same events, your inference bill.
const { Driver } = require('@crtrs/driver');
// Runs execute on YOUR provider account: your engine, your model, your key.
const driver = new Driver({
apiKey: 'dr_••••••••',
engine: 'openrouter', // openai | mistral | claude | openrouter
model: 'openai/gpt-oss-120b', // required when engine is set
engineKey: 'sk-or-••••••••', // required when engine is set
});
const done = await driver.run('what is https://creators.industries about?');
console.log(done.result);engine is one of openai, mistral, claude or openrouter. Choosing one REQUIRES its engineKey: the SDK throws at construction and the API answers 400 without it, so a run can never silently execute your engine choice on someone else's key. model is required as well: name the exact model the runs execute on.
The key is held in memory for the run and discarded when it ends: never persisted, never logged, never visible in the dashboard. Execution billing is unchanged — one accepted run is one execution from your plan; what changes is who pays the inference underneath.