Skip to main content

awspipe

awspipe is a small Python CLI that mimics the Steampipe workflow for AWS queries: point it at AWS CLI credentials, expose AWS resources as SQL tables, and execute queries against a local DuckDB cache.

What it does today

  • Uses AWS CLI-managed credentials through boto3
  • Exposes these tables:
    • aws_account
    • aws_region
    • aws_s3_bucket
    • aws_ec2_instance
    • aws_vpc
    • aws_subnet
    • aws_security_group
  • Provides a SQL-first CLI with query, shell, tables, inspect, doctor, and cache clear
  • Stores fetched data in a local DuckDB database with a short TTL cache
  • Works on Windows by default through normal Python and AWS CLI conventions

Requirements

  • Python 3.13+
  • AWS CLI configured with a working profile or default credentials
  • login_session-based AWS profiles are supported through the bundled awscrt dependency

Install

Install from PyPI:

pip install awspipe

Or with uv:

uv tool install awspipe

Quick start

Run the CLI directly after install:

$env:AWS_PROFILE = "awspipe-test"
$env:AWS_REGION = "eu-west-1"
awspipe tables
awspipe doctor
awspipe query "select account_id, arn from aws_account"
awspipe query "select name, region from aws_s3_bucket order by name"
awspipe query "select instance_id, state, vpc_id from aws_ec2_instance"
awspipe query "select instance_id, region, state from aws_ec2_instance order by region, instance_id" --all
awspipe shell

Windows notes

  • awspipe stores its DuckDB cache under the platform cache directory unless AWSPIPE_HOME is set.
  • If that directory is not writable, awspipe falls back to .awspipe in the current working directory.
  • On Windows, setting AWSPIPE_HOME is the easiest way to isolate test runs:
$env:AWSPIPE_HOME = "$PWD\.awspipe-home"
  • AWS credentials are loaded in this order:
    • --profile
    • AWS_PROFILE
    • default AWS SDK credential chain

Command reference

awspipe query "select * from aws_account" --profile awspipe-test --region eu-west-1
awspipe query "select instance_id, region from aws_ec2_instance" --profile awspipe-test --all
awspipe shell --profile awspipe-test --region eu-west-1
awspipe tables
awspipe inspect aws_vpc
awspipe doctor --profile awspipe-test --region eu-west-1
awspipe cache clear

The interactive shell supports these shell commands and meta commands:

  • quit or exit
  • .quit or .exit
  • .tables
  • .inspect <table>
  • .schema <table>
  • .connections
  • .refresh <table>

Project docs

Development workflow

$env:UV_CACHE_DIR='.uv-cache'
uv sync --extra dev
uv run pytest

For detailed contributor guidance, use AGENTS.md and the docs under docs/.

Live AWS testing

Stage 1 stops before live AWS validation is considered complete. After the implementation and non-live tests are in place, provide a working AWS CLI profile and region and continue with the steps in docs/testing-live-aws.md.

Current limitations

  • Authentication is AWS CLI credential-chain only; custom app config is deferred.
  • Multi-account aggregators and assume-role configuration are not exposed yet.
  • The backend is DuckDB-only in this first implementation.
  • The initial table set is intentionally small and AWS-only.

Metadata

Release files for awspipe 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for awspipe 0.1.2
File Size Uploaded
awspipe-0.1.2.tar.gz 23.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for awspipe 0.1.2
File Interpreter ABI Platform
awspipe-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 39.4 kB

Release files / awspipe-0.1.2.tar.gz

Download URL awspipe-0.1.2.tar.gz
Size 23.7 kB
Tags Source
SHA-256 checksum
How to use checksums
a0d9b45fe3a3f80ada45a7f0218916ab955f81001f7a8f7e63af3c25867ce002
BLAKE2b-256 checksum
How to use checksums
c959542605c007478ca0de921faff8c85dc07c33f71d670d8d1ef31c1f3e59b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.5 {"installer":{"name":"uv","version":"0.10.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / awspipe-0.1.2-py3-none-any.whl

Download URL awspipe-0.1.2-py3-none-any.whl
Size 15.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dad73e4c6c7439f91ebed9203de3e2279b9df8a13a676435cc477fcbc057966c
BLAKE2b-256 checksum
How to use checksums
a38cf2c3e0da968eaebd4c4336d9421c8c45deeceb8882baaff02122d821e617
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.5 {"installer":{"name":"uv","version":"0.10.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page