Termy
FeaturesIntegrationsPricingGuides

Automation compatibility.

Contract
Fail closed
Verified
23 July 2026

A documented subset, not ansible-playbook

Termy runs a finite subset of Ansible playbook YAML through its own SSH engine. It does not embed ansible-playbook and does not promise general Ansible compatibility. Before any host is contacted, the in-app preflight marks every step Supported, Conditional, or Blocked.

Unknown or unsupported behavior blocks the entire run. Termy never silently skips a step and continues with a partial production change.

01. Supported execution model

  • Plays, variables, facts, passwordless sudo become, handlers, block/rescue/always, serial batches, and module defaults.
  • Conditions, loops, register, task/block tags, notify/listen, retries, environment, no_log, delegate_to, run_once, dry-run, diff, and throttle.
  • Static inventory and inventory-script JSON, group_vars, host_vars, roles, static imports/includes, project assets, Ansible Vault AES256, and configured HashiCorp Vault lookups.
  • Fully qualified module names only when they resolve to a Termy built-in module listed below.

02. Built-in modules

command, shell, raw, file, copy, template, lineinfile, get_url, service, systemd, apt, package, setup, debug, stat, user, group, set_fact, include_vars, fail, assert, replace, blockinfile, git, unarchive, pip, cron, uri, apt_key, apt_repository, docker_compose_v2, postgresql_user, postgresql_pg_hba, fetch, ufw.

Each module validates a finite argument set. A listed name does not imply support for every upstream Ansible parameter.

03. Conditional steps

Steps controlled by when, loops, retries/until, handlers, block-rescue paths, or dynamic include_tasks are marked Conditional. Project requirements.yml files are also reported because Termy does not run ansible-galaxy; dependencies must already be present.

04. Blocked before SSH

  • Unknown modules or keys, multiple modules in one task, invalid arguments, malformed YAML, and unsupported templates or expressions.
  • Unsupported directives including async, poll, timeout, remote_user, port, delegate_facts, collections, action, local_action, and debugger.
  • Play-level tags, role-level when/tags, block-level ignore_errors, extended loop variables, unsupported connections, and module-default groups.
  • Inventory plugins, unresolved role meta dependencies, and dynamic imports other than conditional include_tasks.
  • roles and vars_files in the single-file editor; import a project folder so Termy can resolve and validate them.

05. Compatibility promise

This is Termy's contract, not upstream Ansible's. A construct absent from the supported sections remains unsupported until the preflight accepts it and regression coverage exists.

Termy.

A native macOS DevOps cockpit. SSH, files, containers, databases and automation in one window.

Join the DiscordTermy - Native DevOps cockpit | Product Hunt

Product

  • Features
  • Automation compatibility
  • Compatibility & channels
  • Integrations
  • Pricing
  • Updates

Learn

  • Workflows & guides
  • SSH client for Mac
  • SFTP for Mac
  • Termius alternative
  • FAQ
  • About Termy
  • Releases
  • Download
  • Contact

Legal

  • Privacy
  • Terms
  • Refunds

© 2026 Termy. Native macOS, built in Swift.

No Electron.