# Jinn docs > Jinn runs agent work as a call: a prompt and a folder in, a folder out, each run in its own Linux machine. Every page is Markdown at the address below. The API is described by https://docs.usejinn.com/openapi.json. ## Pages - [Jinn](https://docs.usejinn.com/index.md): Jinn runs agent work as a call. You send a prompt and a folder. An agent works on it in its own Linux machine. You get back the files you asked for. - [Functions](https://docs.usejinn.com/functions.md): A function is a definition with a name. Each publish makes a new **version**. A version never changes. A run names a version, or uses the latest. - [Runs](https://docs.usejinn.com/runs.md): A run is one call of a function: a prompt and an optional input folder in, an output folder out. Every start is a new run with a new id (`run_…`). - [API](https://docs.usejinn.com/api.md): The API is at `https://api.usejinn.com/v1`. It takes and returns JSON. The [OpenAPI document](/openapi.json) describes every route and field. - [Webhooks](https://docs.usejinn.com/webhooks.md): Start a run with a `webhook` and Jinn posts its result there once: `run.succeeded` or `run.failed`. The body is the run, as `GET /v1/runs/{id}` returns it. - [CLI](https://docs.usejinn.com/cli.md): `jinn` is one file for Linux, macOS and Windows. It uses the [API](/api). - [SDKs](https://docs.usejinn.com/sdk.md): The SDKs wrap the [API](/api): functions, runs, uploads, logs, outputs and webhook checks. Both have no dependencies. - [Console](https://docs.usejinn.com/console.md): The console is at [app.usejinn.com](https://app.usejinn.com). Sign in with your email: Jinn sends you a code. There is no password. - [Examples](https://docs.usejinn.com/examples.md): Each example is a `function.json` for `jinn publish`. Replace the provider with yours. ## Optional - [OpenAPI](https://docs.usejinn.com/openapi.json): every route and field - [All pages in one file](https://docs.usejinn.com/llms-full.txt)