Via API

You can invoke your app by making a POST request to Kernel’s API. For automations and agents that take longer than 100 seconds, use async invocations.
Synchronous invocations time out after 100 seconds.
import { Kernel } from '@onkernel/sdk';

const {
    id,
    status,
    status_reason,
    output
} = await Kernel.invocations.create({
    app_name: app_name,
    action_name: action_name,
    version: "latest"
});

Asynchronous invocations

For long running jobs, use asynchronous invocations to trigger Kernel actions without waiting for the result. You can then poll its status for the result.
import { Kernel } from '@onkernel/sdk';

const {
    id,
    status, // status will be QUEUED
} = await Kernel.invocations.create({
    app_name: app_name,
    action_name: action_name,
    version: "latest",
    async: true,
});

Via CLI

Invoke an app action immediately via the CLI:
kernel invoke <app_name> <action_name>

Payload parameter

--payload allows you to invoke the action with specified parameters. This enables your action to receive and handle dynamic inputs at runtime. For example:
kernel invoke <app_name> <action_name> 
    --payload '{"tshirt_size": "small", "color": "black", "shipping_address": "2 Mint Plz, San Francisco CA 94103"}'
See here to learn how to access the payload in your action method.

Return values

If your action specifies a return value, the invocation returns its value once it completes. (The Kernel CLI uses asynchronous invocations under the hood)