This repository holds the public, open-source modules of Land of Assets: the TypeScript SDK, the loa command-line tool, and the asset runtime. Use them to manage asset selections, load assets in applications, and integrate with the Land of Assets REST API from scripts and pipelines.
The Land of Assets platform itself is closed source. These modules are developed in the open so that integrating is easy, and so you can fix or improve them yourself. Public pull requests are welcome.
| Package | npm | Description |
|---|---|---|
@landofassets/sdk |
Typed, functional client for the REST API | |
@landofassets/cli |
loa command-line interface |
|
@landofassets/runtime |
Asset URL resolution and Vite integration |
The loa CLI keeps asset selections in Git with assets.json and assets-lock.json. Native LoA versions have verified hashes and share a global download store; HTTP(S) URLs use a project-local cache when pulled, and file: references stay live. Load remotely or pull the same selections for offline use.
loa add acme/furniture/chair@2.3.0 --as chair
loa pullRead the asset manager overview for the philosophy, source rules, workspaces, publication, and runtime integration.
npm install @landofassets/sdkimport { createSecretTokenInstance, listAssets } from '@landofassets/sdk';
const client = createSecretTokenInstance({ secretToken: process.env.LOA_TOKEN! });
const assets = await listAssets(client, { query: { orgName: 'my-org', projectName: 'my-project' } });See the SDK README for authentication options, uploads, and the full API surface.
npm install -g @landofassets/cli
loa auth login
loa assets list --org my-org --project my-projectSee the CLI README for every command, or run loa --help.
The packages require Node.js 22.12 or newer.
pnpm install
pnpm build
pnpm tsc
pnpm lint
pnpm testThe CLI talks to https://api.landofassets.com by default. Use loa config set --host <url> or the LOA_HOST environment variable to point it elsewhere.
Read CONTRIBUTING.md before opening a pull request. In short: open an issue, branch from main, use Conventional Commits, and make sure the local checks pass. Releases to npm are cut by the maintainers from main.