Skip to main content
Well, not exactly. Tilde does not require a Terraform provider, but all Tilde resource state is portable. This makes it easy to share a setup and reproduce it across development, staging, and production workspaces.

The tilde.state.yaml file

tilde.state.yaml describes the desired configuration for resources in a workspace. It can include ChatKit agents and providers, MCP servers, tool providers, skill registries, wikis, memory-bank bindings, reverse proxies, and their relationships. State files can declare variables for values that change between environments, such as an agent endpoint URL. They do not contain API keys, signing keys, third-party credentials, conversation history, or other runtime content. An import returns generated values separately and leaves credential-backed resources pending until you connect the corresponding accounts. Each exported resource may carry a tagged team, user, or user_team ownership value. Workspace export remains workspace-only unless personal or private resources are explicitly included. When importing personal or user_team resources, provide an explicit source-user-to-target-user mapping. Import fails if an owner is unmapped; it never silently promotes a personal resource to workspace ownership or creates an orphan. Hosted MCP provider connections preserve their catalog provider identity, endpoint configuration, authentication mode, tool provider, and MCP mappings. API keys, bearer tokens, OAuth client secrets, access tokens, and refresh tokens remain encrypted credential references rather than state values. Safe self-extension proposals export secret-free intent, the server-authored review preview, any secret-free provider-setup continuation, and source resource receipts as audit metadata. Approval identity, Human Approval tokens, leases, execution status, generated outputs, and source rollback authority are not portable. Import always creates a fresh pending proposal in the destination workspace, rebuilds its preview, and requires a new explicit human approval there. Imported source receipts never authorize deletion of destination resources. OAuth providers that use dynamic client registration must register a new client in the destination environment because the redirect URI and client registration belong to the source environment. Import recreates the provider and returns a one-time authorization URL. Manual OAuth providers keep their pre-registered client configuration and ask you to reconnect the user credential separately. Commit tilde.state.yaml with your application so reviewers can see which Tilde resources it expects.

Export state from a workspace

  1. Select the workspace you want to export.
  2. Go to Settings → Team settings → State.
  3. Open the Export tab and click Export.
Tilde downloads the workspace configuration as tilde.state.yaml.

Import state manually

  1. Select the destination workspace.
  2. Go to Settings → Team settings → State.
  3. Open the Import tab and upload tilde.state.yaml.
  4. Provide any variables requested by the file.
  5. Review the validation result and resource plan, then apply it.
  6. Save the generated import outputs and complete any items under Pending credentials.
You can perform the same workflow from the CLI:
The CLI shows the plan before applying it. Add --auto-apply only in a trusted automated workflow where the state change has already been reviewed.

Add a Deploy with Tilde button

Add the button to a project’s README.md when its repository contains a tilde.state.yaml file. Deploy with Tilde Clicking the button opens Tilde, asks the user to select a workspace, reads the state file from GitHub, collects its variables, and shows the import plan before creating resources. Common-provider integrations are exported as one installation plus a pending credential setup reference. For example, importing Linq restores the desired Tool, ChatKit, Signals, and Reverse Proxy bundle without exporting its API token or webhook signing secret. Reconnect the Linq credential once after import to materialize every generated surface. Use this Markdown and replace both query parameters with your repository and state-file path:
README.md
repository-url must point to a GitHub repository over HTTPS. state-path must be a relative path to a YAML file, so monorepos can use a value such as agents/code-review/tilde.state.yaml.

Manage multiple environments

Keep one reviewed state file as the shared baseline. Use variables for environment-specific endpoints and reconnect credentials separately in each workspace. Import the same state into development, staging, and production, then review each plan before applying it.
State imports can update or replace existing configuration. Review conflicts, destructive changes, requested variables, and pending credentials before applying a plan.