Tarmac CLI (tarmac-cli)
Tarmac is a declarative, idempotent Python CLI for bootstrapping and governing enterprise multi-account AWS Organizations.
Define your organizational units, account factory, SCP guardrails, baseline security (CloudTrail, GuardDuty, Security Hub), and IAM Identity Center (SSO) in simple YAML manifests—then reconcile your entire AWS estate with a single command.
Quickstart
1. Installation & Setup
Install from source with uv:
git clone https://github.com/nickdchristian/tarmac-cli.git
cd tarmac-cli
uv sync
You can then run commands with uv run tarmac or install it into your local environment:
uv pip install -e .
tarmac --help
(Once published to PyPI, you can install globally with uv tool install tarmac-cli)
2. Initialize Configuration
Scaffold a production-ready starter project with baseline YAML manifests and CloudFormation templates:
tarmac init --with-templates
This generates:
config/organization.yaml: Organization settings, alternate contacts, OU hierarchy, and SCP guardrails.config/accounts.yaml: Account Factory catalog, OU placement, monthly budgets, and security baselines.config/identity.yaml: IAM Identity Center permission sets, users, groups, and multi-account assignments.
3. Validate & Inspect Readiness
Verify your configurations and audit your AWS Management Account before deploying:
# Validate YAML syntax, Pydantic schemas, and cross-references
tarmac validate
# Run 17 automated pre-flight readiness checks (MFA, quotas, contacts, hygiene)
tarmac preflight
4. Deploy Your Landing Zone
Preview proposed actions with a dry run, then execute the automated rollout:
# Preview what will be created and configured
tarmac deploy run --dry-run
# Execute the full 6-phase deployment pipeline
tarmac deploy run
Deployment Pipeline
Tarmac executes an idempotent multi-phase deployment:
[Phase 0: Preflight] ──► Validate AWS prerequisites, quotas, & credentials
[Phase 1: Org & Root] ──► Bootstrap AWS Organizations, contacts, & root access
[Phase 2: OUs & SCPs] ──► Idempotently sync OU tree & attach guardrail SCPs
[Phase 3: Central Log] ──► Deploy Log-Archive bucket & Org-wide CloudTrail
[Phase 4: Accounts] ──► Provision member accounts, purge default VPCs, set budgets
[Phase 5: Hardening] ──► Delegate Security Hub / GuardDuty & anomaly monitors
[Phase 6: Identity] ──► Sync IAM Identity Center permission sets & assignments
You can target a specific phase at any time:
tarmac deploy run --phase 4 # Run only Account Factory provisioning
Command Reference
| Command | Description |
|---|---|
tarmac init |
Scaffold starter configuration manifests and CloudFormation templates. |
tarmac validate |
Validate configuration manifests against Pydantic schemas and cross-references. |
tarmac preflight |
Run 17 diagnostic checks for management account operational readiness (doctor alias). |
tarmac info |
Display caller identity, AWS account details, and Organization status. |
tarmac deploy run |
Execute the automated multi-phase landing zone rollout (--dry-run to preview). |
tarmac status |
Inspect live landing zone reconciliation and phase completion status. |
tarmac drift |
Audit IAM Identity Center permission sets and member account budget drift. |
tarmac deploy destroy |
Safely destroy deployed governance stacks (protected by production safety locks). |
Granular Service Commands
For targeted management outside the end-to-end pipeline:
- Organizations & OUs:
tarmac org bootstrap— Enable AWS Organizations and trusted services.tarmac org contacts— Synchronize alternate contacts (Billing, Security, Ops).tarmac ou sync— Idempotently synchronize OU tree hierarchy.tarmac org scp apply— Reconcile and attach Service Control Policies.
- Account Factory:
tarmac account plan— Preview proposed account actions (Create, Move, No-op).tarmac account apply— Provision missing accounts and assign to OUs.tarmac account sync-tags— Synchronize governance tags with member accounts.
- Security & Baseline:
tarmac baseline cloudtrail— Deploy organization-wide CloudTrail.tarmac baseline backend— Deploy Terraform S3 state and DynamoDB locks.tarmac baseline security— Deploy GuardDuty, Security Hub, and log hardening.
- IAM Identity Center:
tarmac identity status— View Identity Center instance status and region.tarmac identity sync— Synchronize permission sets, users, groups, and assignments.
Safe Teardown
Tarmac includes built-in safeguards to prevent accidental infrastructure or state loss:
- Production Environment Lock: Refuses to destroy any environment tagged with
productionorprodunless--forceis explicitly provided. - Remote State Preservation: Pass
--preserve-backendto destroy infrastructure while protecting remote Terraform state buckets and lock tables. - Non-Empty Bucket Protection: Halts if unmanaged data exists in S3 buckets unless explicitly confirmed.
# Preview teardown actions
tarmac deploy destroy --dry-run
# Execute teardown preserving Terraform state
tarmac deploy destroy --preserve-backend
Development & Testing
# Sync environment dependencies
uv sync
# Run the 247-test Pytest suite
uv run pytest
# Run static analysis and formatting
uv run ruff check .
uv run ruff format --check .
uv run basedpyright
License
Licensed under the Apache License, Version 2.0.
Metadata
Release files for tarmac-cli 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| tarmac_cli-0.1.4.tar.gz | 150.1 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tarmac_cli-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 282.0 kB
Release files / tarmac_cli-0.1.4.tar.gz
| Download URL | tarmac_cli-0.1.4.tar.gz |
|---|---|
| Size | 150.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
45fc63654d887cc4ed9d6b744a7c933b7ddb6e83e53b5cecf3dc42e67562e97e
|
|
BLAKE2b-256 checksum How to use checksums |
34082eea20bbcbd94190f5be9b82e8ee6ec15f141b4efa554f14b0e0e9c9a4b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / tarmac_cli-0.1.4-py3-none-any.whl
| Download URL | tarmac_cli-0.1.4-py3-none-any.whl |
|---|---|
| Size | 131.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1397d201100d3c6620e8925e4dc70545bb21a6bb8cb14e442fe5ac67cadc59ae
|
|
BLAKE2b-256 checksum How to use checksums |
4ce67c948d36ada7a323bd0b8ec82db63633360a840b03dfdeb9b5f01b77cef9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logSecurity for tarmac-cli 0.1.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for tarmac_cli-0.1.4.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.