Skip to main content

CLI Options & Flags

Complete reference for the create-context-graph command-line interface.

Command Signature

create-context-graph [PROJECT_NAME] [OPTIONS]

PROJECT_NAME is optional. If omitted (and required options are not provided), the interactive wizard launches and prompts for it.

Options

OptionTypeEnv VariableDefaultDescription
--domainstring--(wizard prompt)Domain ID (e.g., financial-services, healthcare, software-engineering). Use --list-domains to see all available IDs.
--frameworkchoice--(wizard prompt)Agent framework to use. One of: pydanticai, claude-agent-sdk, strands, google-adk, openai-agents, langgraph, crewai, anthropic-tools.
--demo-dataflag--falseGenerate synthetic demo data and write it to data/fixtures.json in the output project. Uses static placeholder data by default; pass --anthropic-api-key for LLM-generated realistic data.
--custom-domainstring----Natural language description of a custom domain (e.g., "veterinary clinic management"). Requires --anthropic-api-key. Generates a full ontology YAML from the description.
--connectorstring (repeatable)----SaaS connector to enable. Can be specified multiple times. Supported values: github, slack, jira, notion, gmail, gcal, salesforce.
--ingestflag--falseIngest generated data into Neo4j after scaffolding. Requires a running Neo4j instance.
--neo4j-uristringNEO4J_URIneo4j://localhost:7687Neo4j Bolt connection URI.
--neo4j-usernamestringNEO4J_USERNAMEneo4jNeo4j authentication username.
--neo4j-passwordstringNEO4J_PASSWORDpasswordNeo4j authentication password.
--neo4j-aura-envpath----Path to a Neo4j Aura .env file with NEO4J_URI, NEO4J_USERNAME, and NEO4J_PASSWORD. Automatically sets neo4j_type to aura.
--neo4j-localflag--falseUse @johnymontana/neo4j-local for a lightweight local Neo4j instance (no Docker required, needs Node.js). Sets neo4j_type to local.
--anthropic-api-keystringANTHROPIC_API_KEY--Anthropic API key. Enables LLM-powered data generation (realistic entity names, documents, decision traces) and custom domain generation.
--output-dirpath--./<project-slug>Directory where the generated project is written. Defaults to a kebab-case slug of the project name in the current working directory.
--dry-runflag--falsePreview what would be generated (project config summary) without creating any files.
--verboseflag--falseEnable verbose debug logging during generation. Useful for troubleshooting.
--list-domainsflag----Print all available domain IDs and names, then exit.
--versionflag----Print the installed version and exit.
--helpflag----Show the help message and exit.

Interactive vs. Non-Interactive Mode

The CLI operates in two modes:

  • Interactive mode: If PROJECT_NAME, --domain, or --framework is missing, the 7-step interactive wizard launches. The wizard uses Questionary prompts to collect all configuration.
  • Non-interactive mode: If PROJECT_NAME, --domain (or --custom-domain), and --framework are all provided, the wizard is skipped entirely. This mode is suitable for CI/CD pipelines and scripting.

Examples

Interactive wizard

Launch the wizard, which prompts for project name, domain, framework, data source, and Neo4j configuration:

create-context-graph

Fully non-interactive

Generate a financial services app with PydanticAI and demo data, no prompts:

create-context-graph my-fintech-app \
--domain financial-services \
--framework pydanticai \
--demo-data

LLM-powered data generation

Generate realistic synthetic data using the Anthropic API:

create-context-graph healthcare-app \
--domain healthcare \
--framework claude-agent-sdk \
--demo-data \
--anthropic-api-key sk-ant-...

Or using the environment variable:

export ANTHROPIC_API_KEY=sk-ant-...
create-context-graph healthcare-app \
--domain healthcare \
--framework claude-agent-sdk \
--demo-data

Custom domain from natural language

Describe your domain in plain English and let the LLM generate the ontology:

create-context-graph vet-clinic \
--custom-domain "veterinary clinic managing patients, owners, appointments, and treatments" \
--framework pydanticai \
--demo-data \
--anthropic-api-key sk-ant-...

With SaaS connectors

Enable GitHub and Slack data import:

create-context-graph dev-team-graph \
--domain software-engineering \
--framework langgraph \
--connector github \
--connector slack

Scaffold and ingest into Neo4j

Generate the project, create demo data, and load it into a running Neo4j instance:

create-context-graph my-app \
--domain supply-chain \
--framework openai-agents \
--demo-data \
--ingest \
--neo4j-uri neo4j://localhost:7687 \
--neo4j-password my-secret

Custom output directory

Write the generated project to a specific path:

create-context-graph my-app \
--domain healthcare \
--framework crewai \
--output-dir /tmp/projects/healthcare-demo

Preview without creating files

create-context-graph my-app \
--domain healthcare \
--framework pydanticai \
--dry-run

List all available domains

create-context-graph --list-domains

Using uvx (no install required)

uvx create-context-graph my-app --domain healthcare --framework pydanticai --demo-data

Environment Variables

The following environment variables are read as defaults for their corresponding CLI options:

VariableCLI Option
NEO4J_URI--neo4j-uri
NEO4J_USERNAME--neo4j-username
NEO4J_PASSWORD--neo4j-password
ANTHROPIC_API_KEY--anthropic-api-key

CLI flags always take precedence over environment variables.