azblob-tui
azblob-tui is a dependency-free terminal browser for Azure Blob Storage.
The installed command is abt.
This is an independent community project and is not an official Microsoft product.
Install
uv tool install azblob-tui
Alternatively:
pipx install azblob-tui
Authenticate before starting the TUI:
az login
abt
Scan folder usage
abt scan performs a metadata-only scan, aggregates folder depths in one pass,
and writes resumable SQLite checkpoints:
abt scan \
--subscription <subscription-id> \
--all \
--max-depth 3
AML per-snapshot UUID Containers are excluded by default. Reusing the same
--state resumes continuation markers, skips completed Containers, and retries
failed or interrupted Containers. Progress is written to abt-scan.log by
default and can be displayed live by the TUI. Scan files are stored under
${XDG_STATE_HOME:-~/.local/state}/azblob-tui/scans/<subscription-id>/, so
their location does not depend on the shell working directory.
abt
Explicit --state, --output, and --log paths have highest priority.
Otherwise, abt uses the paths last saved for the subscription, then recognizes
legacy scan files in the current directory, and finally uses the subscription
default directory.
Features:
- Select an Azure subscription and Storage Account inside the TUI.
- Remember the selected subscription between launches.
- Cache Storage Accounts and AML workspace mappings for 10 days; press
ron the account screen to refresh immediately andSto change subscription. - Hide Azure ML per-snapshot UUID containers by default.
- Search accounts, containers, and the current Blob page.
- Browse virtual folders with paginated
List Blobsrequests. - Coalesce short Azure service pages caused by partition boundaries into one logical TUI page, so immediate-child folder totals are complete.
- View Blob size, type, access tier, timestamps, ETag, URL, and metadata.
- Read optional usage/status data from
blob_folder_usage.pySQLite state. - Show live queue metrics only in the lower-right panel and provide an
auto-refreshing per-account statistics screen (
s). - Adapt table columns to the terminal width.
- Sort each screen by cycling columns with
oand toggling direction withO. - Keep selected-item metadata in the upper-right pane and live queue metrics in the lower-right pane.
- Show scanner-provided depth 1-3 folder sizes and human-readable Blob counts.
- Use
qto go back,hfor full help, andCtrl+Cto exit. - Scroll extended Blob properties and metadata with
[/]. - Delete an individual Blob or Container with
Dand typed confirmation. Partial/in-progress scanner Containers are protected from deletion.
Configuration is stored under ${XDG_CONFIG_HOME:-~/.config}/azure-blob-tui.
Noncredential resource metadata is cached under
${XDG_CACHE_HOME:-~/.cache}/azure-blob-tui. Access tokens are never persisted
by this application.
The lower-right queue panel uses the latest Progress: record from
--scan-log for live processed, active, failed, Blob, page, size, rate, and
elapsed-time values. The per-account statistics table uses SQLite checkpoints,
so it can lag the live log by up to one checkpoint interval.
Run from source
PYTHONPATH=src python -m azure_blob_tui
Open a known account directly:
PYTHONPATH=src python -m azure_blob_tui \
--subscription <subscription-id> \
--account <storage-account>
Show live scanner queue statistics:
PYTHONPATH=src python -m azure_blob_tui \
--state ../blob-folder-usage-depth1-3.sqlite \
--scan-log ../blob-folder-usage-depth1-3-scan.log
Architecture
azure.py: Azure CLI catalog, subscriptions, accounts, workspace mappings, and token lifecycle.blob.py: paginated Blob REST client and response parsing.state.py: optional scanner-state integration.stats.py: read-only real-time queue statistics.scan_paths.py: subscription-aware scan path resolution and legacy fallback.table.py: terminal-width-aware column fitting and rendering.ui.py: curses navigation and screens.cli.py: argument parsing and application assembly.
Keyboard shortcuts are available with h or ?.
Safety
Browsing is read-only. Deletion is available only through the uppercase D
shortcut and requires typed confirmation. Blob deletion uses the displayed
ETag to reject changes made after the page was loaded. Ambiguous network
responses are never retried automatically.
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file azblob_tui-0.2.4.tar.gz.
File metadata
- Download URL: azblob_tui-0.2.4.tar.gz
- Upload date:
- Size: 39.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff0cb1ac52ea7267c00ace1fe13a2dec70a79ec4cf134ffa4fc73a0cc564a12e
|
|
| MD5 |
9e3ba612295b2d8011d19910f36b8dc6
|
|
| BLAKE2b-256 |
48990e05d165200a9e0b0753ef61304d5dddaf692ba58f61528cddcb78c1e3cc
|
Provenance
The following attestation bundles were made for azblob_tui-0.2.4.tar.gz:
Publisher:
release.yml on HSPK/azblob-tui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
azblob_tui-0.2.4.tar.gz -
Subject digest:
ff0cb1ac52ea7267c00ace1fe13a2dec70a79ec4cf134ffa4fc73a0cc564a12e - Sigstore transparency entry: 2582576712
- Sigstore integration time:
-
Permalink:
HSPK/azblob-tui@81765fd6be65d47817cf255c8d8eb47a5885fded -
Branch / Tag:
refs/tags/v0.2.4 - Owner: https://github.com/HSPK
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@81765fd6be65d47817cf255c8d8eb47a5885fded -
Trigger Event:
push
-
Statement type:
File details
Details for the file azblob_tui-0.2.4-py3-none-any.whl.
File metadata
- Download URL: azblob_tui-0.2.4-py3-none-any.whl
- Upload date:
- Size: 41.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ef2bf387e440e4b1caec298c4b654e24d5fead06b924ef27a05d71daf36bb8d
|
|
| MD5 |
7b03d8dd88f4cb02a477ac1b5331da6b
|
|
| BLAKE2b-256 |
1720c977158642c6b0719e57f85fd1c74984efafd6e341e73b1d7b6d262d1907
|
Provenance
The following attestation bundles were made for azblob_tui-0.2.4-py3-none-any.whl:
Publisher:
release.yml on HSPK/azblob-tui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
azblob_tui-0.2.4-py3-none-any.whl -
Subject digest:
1ef2bf387e440e4b1caec298c4b654e24d5fead06b924ef27a05d71daf36bb8d - Sigstore transparency entry: 2582576718
- Sigstore integration time:
-
Permalink:
HSPK/azblob-tui@81765fd6be65d47817cf255c8d8eb47a5885fded -
Branch / Tag:
refs/tags/v0.2.4 - Owner: https://github.com/HSPK
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@81765fd6be65d47817cf255c8d8eb47a5885fded -
Trigger Event:
push
-
Statement type: