Use this file to discover all available pages before exploring further.
Credentials are the automation layer for Agent Auth. Store login information securely, and Kernel handles authentication automatically—no user interaction needed.Three ways to provide credentials:
Save during login — Capture credentials when a user logs in via Hosted UI or Programmatic
Pre-store in Kernel — Create credentials before any login for fully headless automation
Connect 1Password — Use credentials from your existing 1Password vaults
1Password Integration
Connect your 1Password vaults to automatically use existing credentials with Agent Auth. Credentials are matched by domain—no manual setup per site.
Once saved, the profile stays authenticated automatically. When the session expires, Kernel re-authenticates using the stored credentials—no user interaction needed.
Credentials don’t need to contain every field. Store what you have, and the flow pauses for missing values.Example: Credential has email + TOTP secret, but no password:
const credential = await kernel.credentials.create({ name: 'my-login', domain: 'example.com', values: { email: 'user@example.com' }, // No password totp_secret: 'JBSWY3DPEHPK3PXP',});const agent = await kernel.agents.auth.create({ domain: 'example.com', profile_name: 'my-profile', credential_name: credential.name,});const invocation = await kernel.agents.auth.invocations.create({ auth_agent_id: agent.id,});// Poll until password is neededlet state = await kernel.agents.auth.invocations.retrieve(invocation.invocation_id);while (state.status === 'IN_PROGRESS') { if (state.step === 'awaiting_input' && state.pending_fields?.length) { // Only password field will be pending (email auto-filled from credential) await kernel.agents.auth.invocations.submit( invocation.invocation_id, { field_values: { password: 'user-provided-password' } } ); } await new Promise(r => setTimeout(r, 2000)); state = await kernel.agents.auth.invocations.retrieve(invocation.invocation_id);}// TOTP auto-submitted from credential → SUCCESS
This is useful when you want to:
Store TOTP secrets but have users enter their password each time
Pre-fill username/email but collect password at runtime
Merge user-provided values into an existing credential using save_credential_as