Tool
A managed connection (database, SSH, HTTP, Kubernetes) that agents and operators reach with the connection string injected.
A Tool declares an external system an agent (or a human via the CLI) can talk to. The connection string is injected at call time, and the credential never leaves the cluster.
Overview
- A typed connection profile (host, port, database, credentials, TLS).
- The CLI (
exo tool connect/exec) and agents use it to run queries or commands. - An optional engine-native permission policy (
spec.permissions).
Declare a Tool

1apiVersion: v12kind: Secret3metadata:4 name: analytics-pg-creds5type: Opaque6stringData:7 password: REPLACE_ME8---9apiVersion: autonomic.sh/v1alpha110kind: Tool11metadata:12 name: analytics-postgres13spec:14 type: postgres15 description: "Analytics Postgres read-replica"16 tags:17 - databases18 - postgres19 - readonly20 probe: true21 config:22 hostname: pg-analytics.prod.internal23 port: 543224 username: autonomic_ro25 databaseName: analytics26 sslMode: require27 credentialsRef:28 name: analytics-pg-creds29 key: passwordIntegration types
Common values for spec.type include:
1ssh postgres mysql mariadb sqlserver mongodb2redis clickhouse kubernetes http snowflake bigquery3elasticsearch kafka oracle cockroachdb yugabytedb redshift4rabbitmq aws gcp azure customPlus managed and flavour variants (for example mongodb_atlas, documentdb, elasticache, and the *_aws_secrets_manager forms). The repo's autonomic/samples/tool-*.yaml has a worked example for each type, including tool-custom.yaml for arbitrary images.
Config & credentials
spec.config carries the connection details and a credentialsRef to a Secret. The reconciler reads the secret and, when spec.probe: true, runs a type-specific connectivity check before marking the Tool Ready. custom tools point at their own container image.
Integrations
Every supported type ships a minimal, valid Tool manifest, the same samples the dashboard's add-a-tool wizard provides. Each card maps to a spec.type above — filter by category or search, then open one for a ready-to-adapt sample: store the credential in a Secret, set the connection details, and kubectl apply.
34 integrations