Documentation Index Fetch the complete documentation index at: https://docs.svantic.com/llms.txt
Use this file to discover all available pages before exploring further.
No Code with Forge
The fastest way to create agents and tools. Forge generates production-ready code from API specs or plain English — in seconds.
All paths go through the same intermediate format — the Tool Spec — which you can edit, validate, and combine before generating code.
Pick any source. Forge produces a .tool-spec.yaml you can inspect, edit, and version control.
OpenAPI / Swagger
List available operations, then generate:
# See what's available
svantic forge tool --list zendesk-openapi.yaml
# Generate spec for selected operations
svantic forge tool --spec zendesk-openapi.yaml --pick create_ticket,list_tickets --out ./tools/
Forge reads securitySchemes and maps auth automatically:
Scheme Generated env HTTP bearer Bearer token env apiKey in headerapi_key + header nameHTTP basic Username/password env pair OAuth2 Client ID, secret, and related envs
Override with --auth-type or --auth-env. Swagger 2.0 is supported and converted internally.
Filter operations with --pick, --tag <name>, or --path-prefix /api/v2/tickets.
Natural Language
Describe what you need. Optionally point to API docs for accuracy:
# Basic prompt
svantic forge tool --prompt "Monitor Datadog alerts and query metrics" --out ./tools/
# With documentation for better accuracy
svantic forge tool --prompt "Monitor Datadog alerts" --docs https://docs.datadog.com/api --out ./tools/
Uses Gemini by default (GOOGLE_API_KEY). Override with --model gemini-2.5-pro.
The CLI shows proposed tools for review: Y (accept) / n (reject) / edit .
Create an Agent
Combine one or more Tool Specs into a deployable agent.
Standalone project
Generates a complete project with server.ts, package.json, Dockerfile, and .env.template:
svantic forge agent --name ops-bot --tools zendesk.yaml,billing.yaml,slack.yaml --standalone
Embedded in existing app
Same command without --standalone writes capability modules into your existing codebase:
svantic forge agent --name ops-bot --tools zendesk.yaml --out ./src/agents/
Handling name collisions
If multiple specs define the same tool name, Forge fails fast. Resolve with:
--prefix domain → zendesk_create_ticket, jira_create_ticket
--rename zendesk:create_ticket=create_zendesk_ticket
Edit the .tool-spec.yaml directly
Conversational Generation
The Svantic terminal runs the same workflow interactively:
> Read my source code in src/monitoring/ and propose tools
> Remove health_check, rename get_metrics to fetch_metrics
> Now generate the tools
> Compose these with my zendesk tools into monitoring-bot
The Tool Spec is a YAML file that describes your tools. Forge generates it, but you can edit it manually to customize before generating code.
Namespace for your tools. Used as a prefix when combining multiple specs (e.g., zendesk_create_ticket).
Spec version for tracking changes. Default: 1.0
API base URL. All tool paths are relative to this. Example: https://your-subdomain.zendesk.com/api/v2
Authentication configuration. Authentication method. Allowed values: bearer, api_key, basic, oauth2, none
Environment variable name for the token/key. Example: ZENDESK_API_TOKEN
Header name (for api_key type). Example: X-API-Key
The capabilities your agent will have. Tool name in snake_case. The mesh calls this capability by name. Example: create_ticket
What this tool does. The LLM reads this to decide when to use it. Example: Create a new support ticket in Zendesk
HTTP method. Allowed values: GET, POST, PUT, PATCH, DELETE
API path, relative to base_url. Use {param} for path parameters. Example: /tickets/{ticket_id}
Path and query parameters. Keys are parameter names. Each value is an object with: Allowed values: string, integer, number, boolean
Whether the parameter is required.
Allowed values for this parameter.
JSON body fields. Keys are field names. Each value is an object with: Allowed values: string, integer, number, boolean, object, array
Whether the field is required.
Allowed values for this field.
Events that fire prompts into the mesh. Trigger type. Allowed values: webhook (HTTP callback), schedule (cron), emit (in-process event), queue (message queue), file (file watcher)
Event name for identification. Example: ticket_created
Webhook endpoint path (for webhook type). Example: /webhooks/zendesk
Cron expression (for schedule type). Example: 0 9 * * MON-FRI
The prompt sent to the mesh when this trigger fires. Use double-brace placeholders for dynamic values.
Example
domain : zendesk
version : "1.0"
base_url : https://your-subdomain.zendesk.com/api/v2
auth :
type : bearer
env : ZENDESK_API_TOKEN
tools :
- name : create_ticket
description : Create a new support ticket
method : POST
path : /tickets
body :
subject :
type : string
required : true
priority :
type : string
enum : [ low , normal , high , urgent ]
default : normal
triggers :
- type : webhook
event : ticket_created
path : /webhooks/zendesk
prompt : "New ticket: {{subject}}. Triage it."
Validate and regenerate
# Check for errors without generating
svantic forge tool --validate my-spec.yaml
# Regenerate code after editing the spec
svantic forge tool --spec my-spec.yaml --out ./tools/