Skip to content

Repository files navigation

ThingFlash

License: Apache-2.0 Open Source AWS CDK v2 AWS IoT Core

Production-ready AWS IoT infrastructure in three commands.

Building an IoT backend on AWS means wiring together 15+ services — IoT Core, X.509 certificates, IoT policies, Device Shadows, Rules, Lambda, S3, DynamoDB, CloudWatch — and getting the security right on every one of them.

ThingFlash compresses that into a declarative workflow:

pipx install thingflash

thingflash init
thingflash plan
thingflash apply

From an empty AWS account to a secure MQTT-connected device with telemetry flowing into a database — in under 15 minutes.


What is ThingFlash?

ThingFlash is an open-source, opinionated CLI for provisioning and operating AWS IoT infrastructure. You describe your device fleet in a single version-controlled YAML manifest — ThingFlash safely creates and manages everything else.

It is not a Terraform replacement. It's a specialized layer for connected products that knows how IoT should be built:

  • Secure by default — one certificate per device, least-privilege IoT policies, topic access scoped by Thing name
  • Plan before apply — every change is previewed with security warnings; nothing touches your infrastructure silently
  • Batteries included — device registry, certificate lifecycle, MQTT topics, telemetry pipelines, image upload, monitoring
  • Automation-first — every command is idempotent, non-interactive, and supports --output json for CI/CD and AI agents

ThingFlash Logo

Who is it for?

Developers and teams building connected products — from ESP32 microcontrollers to Raspberry Pi gateways, sensors, cameras, and robot fleets — who need a real cloud backend without becoming AWS IoT experts first.

# thingflash.yaml — your entire IoT backend in one file
fleet:
  thingType: camera
  policies:
    mode: least-privilege

telemetry:
  rules:
    - name: telemetry-to-dynamodb
      source: devices/+/telemetry
      destination:
        type: dynamodb

Get involved

Contributing

Contributions are welcome! To get started:

# 1. Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate

# 2. Install the package in editable mode with dev dependencies
pip install -e ".[dev]"

# 3. Verify the CLI works
thingflash --help

# 4. Run the tests and linter
python3 -m pytest        # Run tests
python3 -m ruff check .  # Lint

See CONTRIBUTING.md for the full workflow.

License

Apache 2.0 — open source.

About

CLI for AWS IoT device lifecycle — fleets, X.509 certificates, policies, and telemetry from one YAML manifest

Resources

Contributing

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages