Skip to main content

Secrets API

The Secrets API lets you manage environment variables for your agents. Access via client.secrets:
const client = new CastariClient({ apiKey: '...' });
const secrets = client.secrets;

Methods

list(slug)

List all secrets for an agent.
const secrets = await client.secrets.list(slug);
Parameters:
NameTypeDescription
slugstringThe agent’s slug
Returns: Promise<Secret[]> Example:
const secrets = await client.secrets.list('my-agent');

for (const secret of secrets) {
  console.log(`${secret.key} - created ${secret.created_at}`);
}
Secret values are never returned by the API. Only keys and metadata are included.

set(slug, key, value)

Set a secret for an agent.
await client.secrets.set(slug, key, value);
Parameters:
NameTypeDescription
slugstringThe agent’s slug
keystringSecret name (e.g., OPENAI_API_KEY)
valuestringSecret value
Returns: Promise<void> Example:
await client.secrets.set(
  'my-agent',
  'OPENAI_API_KEY',
  'sk-abc123...'
);
Setting a secret with an existing key will overwrite the previous value.

delete(slug, key)

Delete a secret from an agent.
await client.secrets.delete(slug, key);
Parameters:
NameTypeDescription
slugstringThe agent’s slug
keystringSecret key to delete
Returns: Promise<void> Example:
await client.secrets.delete('my-agent', 'OLD_API_KEY');

Full Example

import { CastariClient } from '@castari/sdk';

async function setupAgentSecrets() {
  const client = new CastariClient({
    apiKey: process.env.CASTARI_API_KEY,
  });

  const agentSlug = 'my-agent';

  // Set multiple secrets
  await client.secrets.set(agentSlug, 'OPENAI_API_KEY', process.env.OPENAI_API_KEY);
  await client.secrets.set(agentSlug, 'DATABASE_URL', process.env.DATABASE_URL);

  // List to verify
  const secrets = await client.secrets.list(agentSlug);
  console.log(`Agent has ${secrets.length} secrets configured`);

  // Clean up old secret
  await client.secrets.delete(agentSlug, 'DEPRECATED_KEY');
}

setupAgentSecrets();

CI/CD Example

Setting secrets in a GitHub Actions workflow:
- name: Configure agent secrets
  env:
    CASTARI_API_KEY: ${{ secrets.CASTARI_API_KEY }}
    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
  run: |
    npx ts-node scripts/setup-secrets.ts
// scripts/setup-secrets.ts
import { CastariClient } from '@castari/sdk';

const client = new CastariClient({
  apiKey: process.env.CASTARI_API_KEY,
});

await client.secrets.set('my-agent', 'OPENAI_API_KEY', process.env.OPENAI_API_KEY);

See Also