# Install

**callcash is not published to npm yet.** `npm i callcash` will not work until it is. Until then, install it from the callCash repo.

## Requirements

- Node.js 20 or later.
- An ES module project, or `import()` from CommonJS. The package is ESM only.
- Server-side code. It uses `node:crypto`, so never import it into a client component or a browser bundle.
- No runtime dependencies.

## From a folder next to your app

```bash
cd callcash/sdk
npm install
npm run build        # writes dist/, which the package points at

cd ../../your-app
npm i ../callcash/sdk
```

npm links the folder, so rebuilding `sdk/` updates your app. Run `npm run build` in `sdk/` after every pull.

## As a tarball

```bash
cd callcash/sdk
npm install && npm run build
npm pack             # writes callcash-0.1.0.tgz

cd ../../your-app
npm i ../callcash/sdk/callcash-0.1.0.tgz
```

Use this when you want a fixed copy, for example on a deploy server.

## Once it is on npm

```bash
npm i callcash
```

## Imports

```ts
import { callCash, CallCash, configure, CallCashError, isCallCashError, MemoryStore } from "callcash";
import { firestoreStore } from "callcash/firestore";
```

The types ship with the package (`dist/index.d.ts`), so your editor shows what every field means.

## For your coding agent

```bash
npx callcash agents
```

Adds callCash's rules to your agent's instructions file. See [Use with AI agents](https://callcash.riverrr.co.za/docs/ai-agents).

## Check the package itself

```bash
cd callcash/sdk
npm test             # builds, then runs the tests against stand-in gateways
```
