docs/en/concepts/cli.mdx
The CrewAI CLI provides a set of commands to interact with CrewAI, allowing you to create, train, run, and manage crews & flows.
To use the CrewAI CLI, make sure you have CrewAI installed:
pip install crewai
The basic structure of a CrewAI CLI command is:
crewai [COMMAND] [OPTIONS] [ARGUMENTS]
Create a new crew or flow.
crewai create [OPTIONS] TYPE NAME
TYPE: Choose between "crew" or "flow"NAME: Name of the crew or flowExample:
crewai create crew my_new_crew
crewai create flow my_new_flow
Show the installed version of CrewAI.
crewai version [OPTIONS]
--tools: (Optional) Show the installed version of CrewAI toolsExample:
crewai version
crewai version --tools
Train the crew for a specified number of iterations.
crewai train [OPTIONS]
-n, --n_iterations INTEGER: Number of iterations to train the crew (default: 5)-f, --filename TEXT: Path to a custom file for training (default: "trained_agents_data.pkl")Example:
crewai train -n 10 -f my_training_data.pkl
Replay the crew execution from a specific task.
crewai replay [OPTIONS]
-t, --task_id TEXT: Replay the crew from this task ID, including all subsequent tasksExample:
crewai replay -t task_123456
Retrieve your latest crew.kickoff() task outputs.
crewai log-tasks-outputs
Reset the crew memories (long, short, entity, latest_crew_kickoff_outputs).
crewai reset-memories [OPTIONS]
-l, --long: Reset LONG TERM memory-s, --short: Reset SHORT TERM memory-e, --entities: Reset ENTITIES memory-k, --kickoff-outputs: Reset LATEST KICKOFF TASK OUTPUTS-kn, --knowledge: Reset KNOWLEDGE storage-akn, --agent-knowledge: Reset AGENT KNOWLEDGE storage-a, --all: Reset ALL memoriesExample:
crewai reset-memories --long --short
crewai reset-memories --all
Test the crew and evaluate the results.
crewai test [OPTIONS]
-n, --n_iterations INTEGER: Number of iterations to test the crew (default: 3)-m, --model TEXT: LLM Model to run the tests on the Crew (default: "gpt-4o-mini")Example:
crewai test -n 5 -m gpt-3.5-turbo
Run the crew or flow.
crewai run
Starting in version 0.98.0, when you run the crewai chat command, you start an interactive session with your crew. The AI assistant will guide you by asking for necessary inputs to execute the crew. Once all inputs are provided, the crew will execute its tasks.
After receiving the results, you can continue interacting with the assistant for further instructions or questions.
crewai chat
@crew
def crew(self) -> Crew:
return Crew(
agents=self.agents,
tasks=self.tasks,
process=Process.sequential,
verbose=True,
chat_llm="gpt-4o", # LLM for chat orchestration
)
Deploy the crew or flow to CrewAI AMP.
Authentication: You need to be authenticated to deploy to CrewAI AMP. You can login or create an account with:
crewai login
Create a deployment: Once you are authenticated, you can create a deployment for your crew or flow from the root of your localproject.
crewai deploy create
OPENAI_API_KEY, SERPER_API_KEY) found locally. These will be securely stored with the deployment on the Enterprise platform. Ensure your sensitive keys are correctly configured locally (e.g., in a .env file) before running this.Manage your CrewAI AMP organizations.
crewai org [COMMAND] [OPTIONS]
list: List all organizations you belong tocrewai org list
current: Display your currently active organizationcrewai org current
switch: Switch to a specific organizationcrewai org switch <organization_id>
Create a deployment (continued):
Deploy the Crew: Once you are authenticated, you can deploy your crew or flow to CrewAI AMP.
crewai deploy push
Deployment Status: You can check the status of your deployment with:
crewai deploy status
This fetches the latest deployment status of your most recent deployment attempt (e.g., Building Images for Crew, Deploy Enqueued, Online).
Deployment Logs: You can check the logs of your deployment with:
crewai deploy logs
This streams the deployment logs to your terminal.
List deployments: You can list all your deployments with:
crewai deploy list
This lists all your deployments.
Delete a deployment: You can delete a deployment with:
crewai deploy remove
This deletes the deployment from the CrewAI AMP platform.
Help Command: You can get help with the CLI with:
crewai deploy --help
This shows the help message for the CrewAI Deploy CLI.
Watch this video tutorial for a step-by-step demonstration of deploying your crew to CrewAI AMP using the CLI.
<iframe className="w-full aspect-video rounded-xl" src="https://www.youtube.com/embed/3EqSV-CYDZA" title="CrewAI Deployment Guide" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen ></iframe>Authenticate with CrewAI AMP using a secure device code flow (no email entry required).
crewai login
What happens:
Notes:
crewai config (defaults use login.crewai.com)crewai login again to re-authenticateWhen running crewai create crew command, the CLI will show you a list of available LLM providers to choose from, followed by model selection for your chosen provider.
Once you've selected an LLM provider and model, you will be prompted for API keys.
Here's a list of the most popular LLM providers suggested by the CLI:
When you select a provider, the CLI will then show you available models for that provider and prompt you to enter your API key.
If you select "other", you will be able to select from a list of LiteLLM supported providers.
When you select a provider, the CLI will prompt you to enter the Key name and the API key.
See the following link for each provider's key name:
Manage CLI configuration settings for CrewAI.
crewai config [COMMAND] [OPTIONS]
list: Display all CLI configuration parameterscrewai config list
set: Set a CLI configuration parametercrewai config set <key> <value>
reset: Reset all CLI configuration parameters to default valuescrewai config reset
enterprise_base_url: Base URL of the CrewAI AMP instanceoauth2_provider: OAuth2 provider used for authentication (e.g., workos, okta, auth0)oauth2_audience: OAuth2 audience value, typically used to identify the target API or resourceoauth2_client_id: OAuth2 client ID issued by the provider, used during authentication requestsoauth2_domain: OAuth2 provider's domain (e.g., your-org.auth0.com) used for issuing tokensDisplay current configuration:
crewai config list
Example output:
| Setting | Value | Description |
|---|---|---|
| enterprise_base_url | https://app.crewai.com | Base URL of the CrewAI AMP instance |
| org_name | Not set | Name of the currently active organization |
| org_uuid | Not set | UUID of the currently active organization |
| oauth2_provider | workos | OAuth2 provider (e.g., workos, okta, auth0) |
| oauth2_audience | client_01YYY | Audience identifying the target API/resource |
| oauth2_client_id | client_01XXX | OAuth2 client ID issued by the provider |
| oauth2_domain | login.crewai.com | Provider domain (e.g., your-org.auth0.com) |
Set the enterprise base URL:
crewai config set enterprise_base_url https://my-enterprise.crewai.com
Set OAuth2 provider:
crewai config set oauth2_provider auth0
Set OAuth2 domain:
crewai config set oauth2_domain my-company.auth0.com
Reset all configuration to defaults:
crewai config reset
Manage trace collection preferences for your Crew and Flow executions.
crewai traces [COMMAND]
enable: Enable trace collection for crew/flow executionscrewai traces enable
disable: Disable trace collection for crew/flow executionscrewai traces disable
status: Show current trace collection statuscrewai traces status
Trace collection is controlled by checking three settings in priority order:
Explicit flag in code (highest priority - can enable OR disable):
crew = Crew(agents=[...], tasks=[...], tracing=True) # Always enable
crew = Crew(agents=[...], tasks=[...], tracing=False) # Always disable
crew = Crew(agents=[...], tasks=[...]) # Check lower priorities (default)
tracing=True will always enable tracing (overrides everything)tracing=False will always disable tracing (overrides everything)tracing=None or omitted will check lower priority settingsEnvironment variable (second priority):
CREWAI_TRACING_ENABLED=true
tracing is not explicitly set to True or False in codetrue or 1 to enable tracingUser preference (lowest priority):
crewai traces enable
tracing is not set in code and CREWAI_TRACING_ENABLED is not set to truecrewai traces enable is sufficient to enable tracing by itselfTo disable tracing, use any ONE of these methods:
tracing=False in your Crew/Flow code (overrides everything), ORfalse the CREWAI_TRACING_ENABLED env var, ORcrewai traces disableHigher priority settings override lower ones.
</Note> <Tip> For more information about tracing, see the [Tracing documentation](/observability/tracing). </Tip> <Tip> CrewAI CLI handles authentication to the Tool Repository automatically when adding packages to your project. Just append `crewai` before any `uv` command to use it. E.g. `crewai uv add requests`. For more information, see [Tool Repository](https://docs.crewai.com/enterprise/features/tool-repository) docs. </Tip> <Note> Configuration settings are stored in `~/.config/crewai/settings.json`. Some settings like organization name and UUID are read-only and managed through authentication and organization commands. Tool repository related settings are hidden and cannot be set directly by users. </Note>