Skip to main content

Python client and CLI for Loom workspace data and sync workflows.

Project description

loom-data

loom-data publishes the loom Python package and the loom CLI.

Loom is designed for large local datasets:

  1. Keep raw source files under raw_data/<workspace> or any folder with loom.md.
  2. Scan them into compact cards under loom/<workspace>.
  3. Let agents search summaries first.
  4. Download raw files only when they are actually needed.

Install

Recommended with uv:

uv add loom-data

Then run the CLI with:

uv run loom --help

The package name is loom-data, but the Python import and CLI name are both loom.

Initialize a project

uv run loom init

This creates and uses:

loom/
  <workspace>/
  .loom/
raw_data/
  <workspace>/

loom init asks which assistant you use, which default workspace name you want, and whether to install the tutorial dataset. It installs the helper skill only for the assistant you choose. For Codex, Loom writes both $CODEX_HOME/skills/loom-data and the workspace-local .agents/skills/loom-data.

Common commands

Scan the default raw-data layout:

uv run loom scan raw_data/energy

Scan a source directory into an explicit workspace:

uv run loom scan raw_data/energy to energy

Confirm one workspace:

uv run loom confirm energy

Confirm all pending explore changes:

uv run loom confirm

Push:

uv run loom push [workspace]

Pull:

uv run loom pull [workspace]

Pull raw files:

uv run loom pull-raw [workspace]

Set the default API endpoint:

uv run loom set-api https://loom-api-free.onrender.com

Python API

import loom

local_path = loom.get("energy/technology-data/costs.csv")
print(local_path)

loom.get(...) prefers local cache and fetches only the file you ask for.

Workflow recommendation

  • Put source data into any directory with loom.md and CSV files.
  • Run loom scan <path> [to <workspace>] to generate cards.
  • Read loom/ first.
  • Search the generated cards and summaries.
  • Decide which exact raw file is needed.
  • Use loom.get(...) only for the raw files you really need.
  • Or fetch a single file on demand with loom get energy/technology-data/costs.csv.
  • If a user writes loom ask <question> or loom <question>, inspect loom/ first before touching raw files.
  • More broadly, if a user is asking a data-related question, prefer the Loom workflow first even when they do not mention loom explicitly.

If you omit to <workspace>, Loom reuses the most recently scanned or created workspace. If there is no history yet, it creates temporary. One workspace can track multiple source directories, but dataset paths inside that workspace must stay unique.

Scan state is incremental per workspace and per source directory. Generated cards and manifests store source-relative raw paths such as technology-data and technology-data/costs.csv, so moving or copying the project does not force a rebuild of unchanged datasets just because the absolute filesystem path changed.

loom ask <question> now performs a real local lookup:

uv run loom ask OCGT cost
uv run loom OCGT cost

Loom searches loom/, fetches the best matching raw file if needed, and prints matching rows plus a Likely answer when the best hit is unambiguous.

Web app

Explore data online at https://loom-web.onrender.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

loom_data-0.1.7.tar.gz (51.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

loom_data-0.1.7-py3-none-any.whl (53.3 kB view details)

Uploaded Python 3

File details

Details for the file loom_data-0.1.7.tar.gz.

File metadata

  • Download URL: loom_data-0.1.7.tar.gz
  • Upload date:
  • Size: 51.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for loom_data-0.1.7.tar.gz
Algorithm Hash digest
SHA256 1dabb30df186c0e2da079efb71131ce40ed09bd4ad0b20694a927ad3d98f2a35
MD5 591ebaa0511f0aef878cb039bc8d0d26
BLAKE2b-256 8e0eddc02973978308ae7f93f447b0059243ce21331bee8a9c26992537af309c

See more details on using hashes here.

File details

Details for the file loom_data-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: loom_data-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 53.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for loom_data-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 41fd1c81a403feb2218b296b74bb8bf287a1dc6ef3a17eb45a0f3fd76e46710d
MD5 7d2c9960cf927a32468a7009ebc506c4
BLAKE2b-256 37bc9995c305d45c8ad6672299eac86428712b775f1194b1292c3fac01620c79

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page