> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ns.rocks/llms.txt
> Use this file to discover all available pages before exploring further.

# CrewAI

> Deploy CrewAI projects as managed Nullspace jobs.

CrewAI projects usually fit the Agent Deployment `job` shape: run `crewai run`,
produce artifacts, and exit. Use this path when a crew should execute as a
repeatable product workflow with logs, outputs, status, and backing machine
debugging.

## Deploy As A Job

```toml theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
name = "crewai-report-job"
mode = "job"
template = "base"
workdir = "/workspace/project"
install = "python -m pip install -e ."
entrypoint = "crewai run"

[env]
required = ["OPENAI_API_KEY"]

[outputs]
paths = ["result.json", "reports"]
```

Then deploy and run the project:

```bash theme={"theme":{"light":"one-light","dark":"one-dark-pro"}}
nullspace agent deploy .
nullspace agent run crewai-report-job \
  --input-json '{"topic":"release risks"}' \
  --env OPENAI_API_KEY="$OPENAI_API_KEY" \
  --json

nullspace agent logs crewai-report-job --run adrun_123
nullspace agent outputs crewai-report-job --run adrun_123
```

Use `[outputs]` for files or directories the job should publish, such as
reports, task summaries, or structured JSON. Keep provider credentials in env
vars, not in project files.

See the [CrewAI job example](../examples/agent-deployment-crewai-job) for a
complete project.

## State And Memory

CrewAI flow state and memory remain app-owned. Store state in your application
database, a mounted Nullspace volume, or another durable store when it must
survive one disposable job machine. Nullspace run IDs identify deployment runs;
they are not CrewAI flow or conversation IDs.

## Related

* [Agent Primitives](./primitives)
* [Agent Deployments](./deployments)
* [Agents overview](./overview)
* [CrewAI job example](../examples/agent-deployment-crewai-job)
* [Volumes](../volumes/overview)
