Quickstart
Add JamJet Cloud governance to any AI app in 5 minutes. TypeScript or Python.
Cloud Quickstart
This guide adds JamJet Cloud governance — policy, budget, approvals, audit trail — to an existing AI app. ~5 minutes. No restructuring required.
1. Sign up
Create a free account at app.jamjet.dev. Free tier is sufficient for this quickstart and for development.
After signup, create a project on the Settings page. Your API key is shown once when the project is created, so copy it then. It looks like jj_xxxxxxxxxxxx.
The key is shown only once and is not retrievable afterward. Store it somewhere safe.
2. Install + initialize
pnpm add @jamjet/cloudimport { init } from '@jamjet/cloud'
init({
apiKey: process.env.JAMJET_API_KEY!,
project: 'my-app',
})pip install jamjetimport jamjet.cloud as jamjet
import os
jamjet.configure(
api_key=os.environ['JAMJET_API_KEY'],
project='my-app',
)3. Add governance
Wrap your existing OpenAI / Anthropic client and add a policy + budget:
import OpenAI from 'openai'
import { wrap, policy, budget } from '@jamjet/cloud'
policy('block', 'wire_*') // block tools matching wire_*
budget(50) // $50 ceiling for this project
const openai = wrap(new OpenAI())
// Use it normally — every call is governed + observed.
await openai.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: 'Hello!' }],
})from openai import OpenAI
jamjet.policy('block', 'wire_*') # block tools matching wire_*
jamjet.budget(max_cost_usd=50) # $50 ceiling for this project
client = jamjet.wrap(OpenAI())
client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': 'Hello!'}],
)That's it. Every call from the wrapped client now appears in the dashboard at app.jamjet.dev with full attribution, cost, and policy decisions.
Verify
Open the dashboard and go to Runs. You should see a span for the call you just made; it appears within about 5 seconds. Click it to see the request payload, the response, the cost, and the agent attribution (default agent: default). Once your project has traces, the home dashboard also shows a spend summary.
If calls are not showing up:
- Check the API key matches your project (
jj_..., shown once when you created the project in Settings). - Confirm
init()/configure()runs before the first LLM call. - The SDK is fail-open: if
api.jamjet.devis unreachable, your agent keeps running but spans are dropped after retries.
Next steps
Add an agent identity
`agent('researcher')` for multi-agent network graph attribution.
Require human approval
`requireApproval('production_deploy')` for sensitive actions.
Vercel AI SDK middleware
`jamjetMiddleware()` for `streamText` / `generateText`.
Cloud vs Open Source
Decide if you also need the open-source runtime.