Quickstart
1. Start the emulator#
The emulator runs locally and accepts any Bearer token — no credentials needed for development.
bash
npx @cpod/emulator
# or: git clone https://github.com/cpod-ai/cpod-sdk && cd emulator && npm startPython/Go/.NET install via the commands above; the emulator is a portal toggle.
The emulator starts at http://localhost:4000 with 100+ seed records across all EDM domains.
Verify it's running:
bash
curl http://localhost:4000/v1/health
# {"status":"ok","version":"emulator-1.0.0","uptime":3,"entities":{...}}2. Install the SDK#
bash
npm install @cpod/sdkbash
pip install cpod-sdkbash
go get github.com/ZySec-AI/cpod-sdk/sdks/gobash
dotnet add package Cpod.SDK3. Set environment variables#
bash
export CPOD_API_URL=http://localhost:4000
export CPOD_CLIENT_ID=emulator-client
export CPOD_CLIENT_SECRET=emulator-secret4. Make your first call#
typescript
import { CpodClient } from '@cpod/sdk'
const sdk = CpodClient.fromEnv()
// List people from the EDM
const people = await sdk.people.persons.list({ type: 'employee' })
console.log(`Found ${people.items.length} employees`)
// Store something
await sdk.storage.db.collection('my-app').set('config', { theme: 'dark' })
const config = await sdk.storage.db.collection('my-app').get('config')
console.log(config) // → { theme: 'dark' }python
import asyncio
from cpod import CpodClient
async def main():
sdk = CpodClient.from_env()
people = await sdk.people.list(type="employee")
print(f"Found {len(people['items'])} employees")
prefs = sdk.storage.db.collection("my-app")
await prefs.set("config", {"theme": "dark"})
asyncio.run(main())go
package main
import (
"context"
"fmt"
cpod "github.com/cpod-ai/cpod-sdk-go"
"github.com/cpod-ai/cpod-sdk-go/people"
)
func main() {
client, _ := cpod.NewFromEnv()
ctx := context.Background()
result, _ := client.People.List(ctx, people.ListOptions{Type: "employee"})
fmt.Printf("Found %d employees\n", len(result.Items))
}csharp
using Cpod.SDK;
var sdk = new CpodClient(
apiUrl: Environment.GetEnvironmentVariable("CPOD_API_URL"),
clientId: Environment.GetEnvironmentVariable("CPOD_CLIENT_ID"),
clientSecret: Environment.GetEnvironmentVariable("CPOD_CLIENT_SECRET")
);
var people = await sdk.People.ListAsync();
Console.WriteLine($"Found {people.Items.Count} people");You're connected. The emulator returns realistic seed data — iterate freely without touching production.
Next Steps#
- EDM Domains — explore the full data model
- Storage — files, documents, key-value
- Platform Services — skills, workflows, jobs, masking
- Authentication — set up OAuth for production
- Local Emulator — full emulator reference and all available endpoints