Metadata-Version: 2.4
Name: darsay
Version: 0.16.0
Summary: Download, archive, and curate full model ecosystems as reproducible, auditable bundles
Author: Jeremy Norris
License-Expression: Apache-2.0
Project-URL: Homepage, https://darsay.io/
Project-URL: Documentation, https://darsay.io/docs/
Project-URL: Issues, https://github.com/darsay-io/darsay/issues
Project-URL: Changelog, https://github.com/darsay-io/darsay/blob/main/CHANGELOG.md
Keywords: huggingface,archive,models,datasets,reproducibility,curation
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: System :: Archiving
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: huggingface_hub>=1.23
Requires-Dist: wasmtime<49,>=48
Provides-Extra: fast-hash
Requires-Dist: blake3; extra == "fast-hash"
Provides-Extra: smoke
Requires-Dist: tokenizers; extra == "smoke"
Provides-Extra: inference
Requires-Dist: transformers; extra == "inference"
Requires-Dist: torch; extra == "inference"
Provides-Extra: datasets
Requires-Dist: pyarrow; extra == "datasets"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0; extra == "dev"
Requires-Dist: ruff>=0.16.5; extra == "dev"
Requires-Dist: tomli>=2.0; python_version < "3.11" and extra == "dev"
Provides-Extra: release
Requires-Dist: build>=1.0; extra == "release"
Requires-Dist: twine>=5.0; extra == "release"
Dynamic: license-file

<h1 align="center">
  <a href="https://darsay.io/"><img src="docs/darsay-logo.png" alt="darsay" width="880"></a>
</h1>

<p align="center"><strong>Keep a model forever. Run it tomorrow.</strong></p>

<p align="center">
  <a href="https://pypi.org/project/darsay/"><img src="https://img.shields.io/pypi/v/darsay?style=flat-square&color=22d3ee" alt="PyPI"></a>
  <a href="https://github.com/darsay-io/darsay/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/darsay-io/darsay/ci.yml?style=flat-square&label=CI" alt="CI"></a>
  <a href="https://github.com/darsay-io/darsay/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-38bdf8?style=flat-square" alt="Apache 2.0"></a>
  <img src="https://img.shields.io/badge/python-3.10%2B-00b4ff?style=flat-square&logo=python&logoColor=white" alt="Python 3.10+">
</p>


<p align="center">
  <a href="https://darsay.io/">Website</a> ·
  <a href="https://darsay.io/docs/getting-started/">Getting started</a> ·
  <a href="https://darsay.io/docs/">Documentation</a> ·
  <a href="https://darsay.io/docs/learn/">Learn the field</a>
</p>

darsay preserves models, datasets, and source repositories as pinned,
checksummed bundles in a vault you control. Published files retain their
formats, with licenses, provenance, and verification evidence recorded beside
them. Supported models run offline in isolated environments.

A vault holds archives and curated collections. Browse everything on disk or
open a collection to choose files, set priorities, and coordinate work. The
browser interface is shared with darsay.io boards; reported progress stays
separate from the vault's archive inventory.

## Install

Python 3.10+ on macOS or Linux:

```bash
pipx install darsay
# or
uv tool install darsay
```

Try the CLI without a permanent install with `uvx darsay --help`.
[Installation and upgrades](https://darsay.io/docs/distribution/) covers
Homebrew and other installation paths.

## Quick start

```bash
darsay estimate Qwen/Qwen3-0.6B
darsay archive Qwen/Qwen3-0.6B
darsay run qwen--qwen3-0.6b "Say hello"
```

The default vault is `~/darsay`; use `--vault /path/to/vault` to choose another.
Interrupted archives resume with the same command. The first run prepares its
runtime environment; inference then uses the archived files offline.
[The guided first bundle](https://darsay.io/docs/getting-started/) explains each step.

Browse an existing vault:

```bash
darsay --vault ~/darsay serve --open
```

Open the private launch URL and use **All archives** or a named collection.
[The vault UI guide](https://darsay.io/docs/vault-ui/) covers local operation,
read-only browsing, collection exports, and agents.

## Documentation

The full guides and reference live at **[darsay.io/docs](https://darsay.io/docs/)**.

| You want to… | Read |
|---|---|
| Understand vaults, bundles, and collections | [Concepts](https://darsay.io/docs/concepts/) |
| Find a command or workflow | [Examples](https://darsay.io/docs/examples/) |
| Curate and coordinate a collection | [Catalogs](https://darsay.io/docs/catalogs/) · [Boards and agents](https://darsay.io/docs/board/) |
| Resume, move, or back up archives | [Incremental transfer](https://darsay.io/docs/incremental/) · [FAQ](https://darsay.io/docs/faq/) |
| Understand and run a model | [Learn the field](https://darsay.io/docs/learn/) · [Hydration](https://darsay.io/docs/hydration/) |
| Recover an archive independently of darsay | [Manifest](https://darsay.io/docs/manifest/) · [MVB format](https://darsay.io/docs/mvb-format/) |

The CLI documentation's source remains in [`docs/`](docs/README.md) and
[`examples/`](examples/README.md), available offline with this repository.
For development, see [Contributing](CONTRIBUTING.md); for changes, see
[the changelog](CHANGELOG.md).

## License

[Apache License 2.0](LICENSE). Archived works retain their own upstream licenses,
recorded separately in each bundle's manifest.
