InvokeTool

SDK Setup

Configure an Invoke SDK host with marketplace access, integration verification, local auth storage, and a host-owned CodeMode core.

SDK Setup

Invoke SDKs are the host wrapper for marketplace discovery, signed integration download, local provider auth persistence, and MiniGo CodeMode execution through a host-provided CodeModeCore.

SDK packages include the same shared core WASM artifact. TypeScript can load it directly with loadSharedWasmCore; Python, Rust, Go, Java, and Swift expose the packaged bytes so hosts can instantiate them with their runtime of choice and inject the resulting CodeModeCore.

TypeScript

import {
  HmacArtifactVerifier,
  InMemoryAuthStore,
  InvokeClient,
  loadSharedWasmCore,
} from "@invoketool/sdk";

const core = await loadSharedWasmCore({
  hostCallHandler(call) {
    return invokeHostAction(call);
  },
});

const invoke = new InvokeClient({
  marketplace,
  authStore: new InMemoryAuthStore(),
  artifactVerifier: new HmacArtifactVerifier({
    "invoke-prod-root-2026-05": process.env.INVOKE_ARTIFACT_SIGNING_SECRET!,
  }),
  organizationId: "org_...",
  sdkName: "typescript",
  sdkVersion: "0.1.0",
  core,
});

const modules = await invoke.searchMarketplace("github slack");
const install = await invoke.installModuleArtifact(modules[0].id, modules[0].version);

Rust

use std::sync::Arc;
use invoketool_sdk::{ExecutionRequest, HmacArtifactVerifier, InvokeClient};

let mut invoke = InvokeClient::new(
    Some(marketplace),
    None,
    Some(Arc::new(HmacArtifactVerifier { signing_secrets })),
);
invoke.core = Some(Arc::new(core));

let install = invoke.install_module_artifact("github_to_slack", Some("0.1.0"))?;
let result = invoke.execute_code_mode(source, &ExecutionRequest {
    module_id: "github_to_slack".to_string(),
    action: "create_issue_and_notify".to_string(),
    input,
    cancelled: false,
})?;

Python

from invoketool import HmacArtifactVerifier, InvokeClient

invoke = InvokeClient(
    marketplace=marketplace,
    artifact_verifier=HmacArtifactVerifier(signing_secrets),
    core=core,
)

install = invoke.install_module_artifact("github_to_slack", "0.1.0")
result = invoke.execute_code_mode(source, {
    "module_id": "github_to_slack",
    "action": "create_issue_and_notify",
    "input": {"repo": "invoketool/invoketool"},
    "cancelled": False,
})

Go

client := invoketool.NewClient(
	marketplace,
	nil,
	invoketool.HMACArtifactVerifier{SigningSecrets: signingSecrets},
)
client.Core = core

_, err := client.InstallModuleArtifact("github_to_slack", "0.1.0")
if err != nil {
	return err
}

result, err := client.ExecuteCodeMode(source, map[string]any{
	"module_id": "github_to_slack",
	"action": "create_issue_and_notify",
	"input": map[string]any{"repo": "invoketool/invoketool"},
	"cancelled": false,
})

Java

InvokeClient client = new InvokeClient(
    marketplace,
    null,
    new InvokeClient.HmacArtifactVerifier(signingSecrets),
    core
);

client.installModuleArtifact("github_to_slack", "0.1.0");
InvokeClient.ExecutionResult result = client.executeCodeMode(source, request);

Swift

let client = InvokeClient(
    marketplace: marketplace,
    artifactVerifier: HmacArtifactVerifier(signingSecrets: signingSecrets),
    core: core
)

_ = try client.installModuleArtifact(moduleId: "github_to_slack", version: "0.1.0")
let result = try client.executeCodeMode(source: source, request: request)

SDK Responsibilities

  • Authenticate to InvokeTool with a Better Auth session or API key.
  • Search and inspect marketplace modules.
  • Pin module versions for an organization.
  • Download integration bundles and verify checksum plus signature before loading.
  • Download the matching install envelope, verify its WASM checksum/signature metadata against the signed integration descriptor, and register it locally.
  • Store module provider tokens only through host-owned local persistence.
  • Pass MiniGo CodeMode checks and execution to the injected CodeModeCore.
  • Keep runtime telemetry and host-call metering in the embedding application's own systems unless the host explicitly reports it elsewhere.

Hosted billing is limited to integration downloads; marketplace/API tool calls are metered for usage visibility but priced at zero by default.

The monorepo includes TypeScript, Python, Rust, Go, Swift, and Java SDK packages. Each SDK exposes the same core concepts: marketplace browsing, local auth storage, integration verification, module installation, and execution envelopes.

On this page