AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
한 번 정의하면 캐시·확장·공유까지 가능한 Seamless
Seamless — define your computation once, cache it, scale it, share it. Documentation for Seamless: wrapping Python and bash pipelines as content-addressed, cacheable, remotely-executable transformatio
개발 도구Shell · PythonGitHub @sjdv1982온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Wrap Python functions and shell commands as content-addressed transformations. Cache results, run them locally or on a cluster, and share them by checksum.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Seamless: define your computation once — cache it, scale it, share it.
Most computational pipelines are already reproducible — the same inputs produce the same outputs. Wrap your code as a step with declared inputs and outputs, and Seamless gives you caching (never recompute what you've already computed) and remote deployment (run on a cluster without changing your code). Remote execution also acts as a reproducibility test: if your wrapped code runs on a clean worker and produces the same result, it is reproducible.README 전문 보기 ↗Seamless: define your computation once — cache it, scale it, share it.
Most computational pipelines are already reproducible — the same inputs produce the same outputs. Wrap your code as a step with declared inputs and outputs, and Seamless gives you caching (never recompute what you've already computed) and remote deployment (run on a cluster without changing your code). Remote execution also acts as a reproducibility test: if your wrapped code runs on a clean worker and produces the same result, it is reproducible. If not, Seamless has helped you find the problem — whether it's a missing input, an undeclared dependency, or a sensitivity to platform or library versions.
Seamless wraps both Python and command-line code. In Python, direct runs a function immediately; delayed records the function for deferred or remote execution. From the shell, seamless-run wraps any command as a Seamless transformation — no Python required. In both cases, the transformation is identified by the checksum of its code and inputs: identical work always produces the same identity.
Sharing works at two levels. The lightweight path is to exchange checksums: if two researchers have computed the same transformation, they already have the same result — no data transfer needed. The concrete path is to share the seamless.db file, a portable SQLite database that maps transformation checksums to result checksums. Copy it to a colleague, a cluster, or a publication archive, and every cached result travels with it. Combined, these two paths let a lab build up a shared computation cache that grows over time and never recomputes what anyone has already computed.
Compiled languages (C/C++, Fortran, Rust, Go, ...) are also supported, they are called by Seamless from Python.
This is Seamless 1.x, running on a new code architecture. Seamless 0.x offered an interactive, notebook-first workflow experience with reactive cells, Jupyter widget integration, filesystem mounting, and collaborative web interfaces. These features are being ported to the new architecture. If your work is primarily interactive/exploratory, you can use the legacy version today, or watch this space for updates.
pip install seamless-suite
This installs all standard Seamless components. For a minimal install, the core user-facing packages are:
| Package | Import | Provides |
|---|---|---|
seamless-core | import seamless | Checksum, Buffer, cell types, buffer cache |
seamless-transformer | from seamless.transformer import direct, delayed, parallel | direct, delayed, parallel, parallel_async, TransformationList, seamless-run, seamless-upload, seamless-download |
seamless-config | import seamless.config | seamless.config.init(), seamless.config.set_nparallel(), seamless-init |
All source code is on GitHub: seamless-core, seamless-transformer, seamless-config, seamless-remote, seamless-jobserver, seamless-dask
directfrom seamless.transformer import direct
@direct
def add(a, b):
return a + b
add(2, 3) # runs the function, returns 5
add(2, 3) # cache hit — returns 5 instantly
seamless-runexport SEAMLESS_CACHE=~/.seamless/cache # global persistent caching
seamless-run 'seq 1 10 | tac && sleep 5' # runs, caches result
seamless-run 'seq 1 10 | tac && sleep 5' # cache hit — instant
Full documentation — including getting-started guides, cluster setup, remote execution, compiled transformers, compression, and reference API — is at:
https://sjdv1982.github.io/seamless/
For changes, see RELEASE-NOTES.md.
Seamless includes an agent skill (seamless-adoption) for AI coding assistants. It guides assessment of codebase fit and planning/executing ports — covering both the Python face (direct/delayed) and the Unix face (seamless-run). See skills/seamless-adoption/SKILL.md.