---
lastModified: 2026-10-09
---

# Quickstart

This takes about five minutes. You need an email address, a card for $5 of credit, and an API key from OpenAI, Anthropic or xAI.

## 1. Sign up and add credit

Open [app.usejinn.com](https://app.usejinn.com) and enter your email address. Jinn emails you a code to enter. Name your account, then add $5 of credit under **Account**: runs start only while the account has credit. A run of the examples costs about a cent.

## 2. Install the CLI and sign it in

```sh
$ curl -fsSL https://github.com/usejinn/jinn-cli/releases/latest/download/install.sh | sh
jinn v0.4.0 is in /usr/local/bin/jinn. Next: jinn login
$ jinn login
Open https://app.usejinn.com/cli/login_8502eb454bbc39a9ec36b428
Check that it shows BDMT-FLXL, then approve.
Signed in. The key is in /home/you/.config/jinn/key
```

Open the link, check that the console shows the same code, and approve. The CLI now has an API key for your account.

## 3. Add a provider

A provider holds the model and your vendor key. The CLI reads the key from stdin, so it stays out of your shell history:

```sh
$ echo "$OPENAI_API_KEY" | jinn provider openai --vendor openai --model gpt-5.2 --effort medium
→ openai prv_8c1f04d2a7b93e650f1a2c47 v1 · use prv_8c1f04d2a7b93e650f1a2c47@latest in a function's provider
```

## 4. Get a function and publish it

Download the [support ticket example](/examples#answer-a-support-ticket): a function that answers a billing ticket, a sample ticket and the billing policy. Its `function.json` names no provider, so it uses the one you just added, at its latest version.

```sh
$ curl -sL https://docs.usejinn.com/examples/support-triage.tar.gz | tar -xz
$ cd support-triage
$ jinn publish function.json
→ support-triage fnc_a3b59df3be29992f250c2e1e v1
```

## 5. Run it

`--in` sends the input folder; `--out` is where the files the run returns go.

```sh
$ jinn run support-triage --prompt "Ticket #4812: charged twice" --in ./in --out ./result
run_3b6e0e25251acd12d58a87f3 queued · support-triage v1
run_3b6e0e25251acd12d58a87f3 running
agent  read {"file_path":"/workspace/in/ticket.json","limit":null,"offset":null}
agent  read {"file_path":"/workspace/in/policy.md","limit":null,"offset":null}
agent  lookup_customer {"email":"maria.lopez@brightpath.io"}
agent  write {"file_path":"/workspace/out/actions.json","content":"[\n {\"charge\": \"ch_3Q8xK22\", \"amount\":…
agent  write {"file_path":"/workspace/out/reply.md","content":"Hi Maria,\n\nThanks for getting in touch, and so…
agent  submit_result 
✓ succeeded in 17.6s
result/actions.json 146 B
result/reply.md 910 B
$ cat result/actions.json
[
  {"charge": "ch_3Q8xK22", "amount": 348, "reason": "Duplicate charge: second Team plan October charge on 2026-10-01, duplicates ch_3Q8xK21"}
]
```

`result/reply.md` is the reply to send. The [examples page](/examples#answer-a-support-ticket) shows it, and how the agent got the customer's charges from a custom tool.

## Next

- Run the other [examples](/examples): a pull request review, a weekly report and a phone check of a web page.
- Add packages to the VM with [setup commands](/functions#bases-and-setup).
- Start runs from your own code with the [API](/api) or an [SDK](/sdk).
- Get each result posted to you with a [webhook](/webhooks).
