Build an app on Beisla.
Give your users AI features powered by their own AI subscriptions. Build intelligence into your app without buying inference on every user’s behalf, metering tokens, or managing inference billing.
Charge for the value of your app without worrying about inference at all.
Own the experience.
Create your product's interface, with your own brand and workflows. Your users stay in your app, and you keep the customer relationship.
Define the agent your product needs.
Instructions
Set how the agent should behave and what it should know about your product.
Skills
Give the agent reusable workflows for tasks in your app.
Tools
Connect the agent to your app’s data and actions, with your code handling each tool call.
Integrate with TypeScript or Swift.
Use our SDKs to connect your app to a user’s agent. Send prompts, stream responses, and provide tools directly from inside your app.
Users sign in with Beisla and approve access. Your app connects to their agent without receiving their provider credentials. Users can manage and revoke access from their Beisla account.
TypeScript
const agent = await beisla.connect({
instructions: "Help the user find and understand their notes.",
skills: ["summarize"],
tools: {
searchNotes: {
description: "Search the user's notes.",
parameters: {
type: "object",
properties: { query: { type: "string" } },
required: ["query"],
},
execute: ({ query }) => notes.search(query),
},
},
});
const response = agent.prompt("What did I decide about the launch?");
for await (const chunk of response) {
if (chunk.type === "text") {
conversation.append(chunk.text);
}
}Swift
struct SearchNotes: Codable {
let query: String
}
let searchNotes = Tool(
name: "searchNotes",
description: "Search the user's notes.",
parameters: SearchNotes.self
) { input in
try await notes.search(input.query)
}
let agent = try await beisla.connect(
instructions: "Help the user find and understand their notes.",
skills: ["summarize"],
tools: [searchNotes]
)
let response = agent.prompt("What did I decide about the launch?")
for try await chunk in response {
if case let .text(text) = chunk {
conversation.append(text)
}
}These snippets are illustrative placeholders until the SDK APIs are finalized.
Start building with Beisla.
Beisla is in development. Public SDKs and integration guides are coming with developer access.