Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/neo4j-labs/create-context-graph/llms.txt

Use this file to discover all available pages before exploring further.

Synopsis

create-context-graph [PROJECT_NAME] [OPTIONS]
PROJECT_NAME is optional. When --domain and --framework are both provided without a positional argument, a kebab-case slug is auto-generated (for example, healthcare-pydanticai-app). When neither the project name nor the required flags are present, the interactive wizard launches automatically.
Run create-context-graph --list-domains to see all 22 available domain IDs before scaffolding.

Project options

PROJECT_NAME
TEXT
Human-readable project name. Used as the root directory name (after converting to a kebab-case slug). Optional — if omitted while --domain and --framework are supplied, the name is auto-generated as {domain}-{framework}-app.
--domain
TEXT
Domain ID that selects the industry ontology to use. Examples: financial-services, healthcare, software-engineering. Run --list-domains to see the full list of 22 built-in IDs. Mutually exclusive with --custom-domain in terms of ontology source, though both set the domain context.
--framework
choice
Agent framework to scaffold the backend with. Accepted values:
ValueDisplay nameRequired API key
pydanticaiPydanticAIANTHROPIC_API_KEY
claude-agent-sdkClaude Agent SDKANTHROPIC_API_KEY
strandsStrandsANTHROPIC_API_KEY
google-adkGoogle ADKGOOGLE_API_KEY
openai-agentsOpenAI Agents SDKOPENAI_API_KEY
langgraphLangGraphANTHROPIC_API_KEY
crewaiCrewAIANTHROPIC_API_KEY
anthropic-toolsAnthropic Tools (Agentic Loop)ANTHROPIC_API_KEY
The value is case-insensitive.
--output-dir
PATH
Directory where the generated project is written. Defaults to ./<project-slug> in the current working directory. The target directory must not already exist or must be empty.

Data options

--demo-data
flag
default:"false"
Generate synthetic demo data and write it to data/fixtures.json in the output project. Uses static placeholder data drawn from domain-specific name pools by default. Pass --anthropic-api-key to upgrade to realistic LLM-generated data (80–90 entities, 25+ documents, 8–12 decision traces).
--demo
flag
default:"false"
Convenience shortcut that expands to --reset-database --demo-data --ingest. Scaffolds the project, generates demo data, clears the Neo4j database, and ingests everything in a single step.
--demo runs MATCH (n) DETACH DELETE n against your Neo4j instance before ingesting. Do not use it against a database that contains data you want to keep.
--ingest
flag
default:"false"
Ingest generated fixture data into Neo4j immediately after scaffolding. Requires a reachable Neo4j instance. Uses neo4j-agent-memory MemoryClient when available, falling back to the direct neo4j driver.
--reset-database
flag
default:"false"
Clear all existing data from Neo4j (MATCH (n) DETACH DELETE n) before ingesting. Useful when switching domains on a shared Neo4j instance to avoid cross-domain entity collisions.
--connector
TEXT
SaaS connector to enable. Can be specified multiple times to enable several connectors. Each connector imports real data from the named service instead of (or in addition to) synthetic demo data.Supported values: github, slack, jira, notion, gmail, gcal, salesforce.Connectors run at scaffold time and are also generated into the project so you can re-import with make import.

Neo4j options

--neo4j-uri
TEXT
default:"neo4j://localhost:7687"
Neo4j Bolt connection URI. Accepts neo4j://, neo4j+s://, bolt://, and bolt+s:// schemes.Environment variable: NEO4J_URI
--neo4j-username
TEXT
default:"neo4j"
Neo4j authentication username.Environment variable: NEO4J_USERNAME
--neo4j-password
TEXT
default:"password"
Neo4j authentication password.Environment variable: NEO4J_PASSWORD
--neo4j-aura-env
PATH
Path to a Neo4j Aura .env file that contains NEO4J_URI, NEO4J_USERNAME, and NEO4J_PASSWORD. When provided, these values override the individual flags and the neo4j_type is automatically set to aura. You can download this file directly from the Neo4j Aura console.
--neo4j-local
flag
default:"false"
Use @johnymontana/neo4j-local for a lightweight local Neo4j instance. No Docker required, but Node.js must be installed. Sets neo4j_type to local and adds make neo4j-start / make neo4j-stop targets to the generated Makefile.
The neo4j_type value (docker, aura, local, or existing) controls which Makefile targets are generated. Docker mode adds make docker-up; local mode adds make neo4j-start; Aura and existing modes skip database startup targets entirely.

API keys

--anthropic-api-key
TEXT
Anthropic API key (sk-ant-...). Enables two features:
  1. LLM-powered data generation — realistic entity names, professional documents, and multi-step decision traces via the Anthropic API when --demo-data is passed.
  2. Custom domain generation — required when --custom-domain is used.
Environment variable: ANTHROPIC_API_KEY
--openai-api-key
TEXT
OpenAI API key. Required at runtime for the openai-agents framework. Also used by LangGraph when configured with OpenAI models. When set in the generated project’s .env, conversation memory automatically upgrades from local sentence-transformers embeddings to OpenAI text-embedding-3-small.Environment variable: OPENAI_API_KEY
--google-api-key
TEXT
Google / Gemini API key. Required at runtime for the google-adk framework. A warning is shown during scaffolding if google-adk is selected without this key.Environment variable: GOOGLE_API_KEY
API keys passed on the command line are written into the generated project’s .env file. The .env is listed in .gitignore and is never committed to version control. Use environment variables in CI/CD pipelines rather than passing keys inline.

Advanced options

--custom-domain
TEXT
Natural language description of a custom domain. The LLM generates a complete ontology YAML — entity types, relationships, agent tools, system prompt, demo scenarios, and document templates — from your description. Requires --anthropic-api-key.Example: "veterinary clinic managing patients, owners, appointments, and treatments"
--dry-run
flag
default:"false"
Print a summary of what would be generated (project name, slug, domain, framework, Neo4j type, data source, output path) and exit without creating any files. Useful for validating flag combinations in scripts.
--verbose
flag
default:"false"
Enable verbose DEBUG-level logging during scaffolding and data generation. Useful for diagnosing template rendering errors or LLM API failures.
--list-domains
flag
Print all available domain IDs and their display names, then exit. No other flags are required.
--version
flag
Print the installed package version and exit.
--help
flag
Show the help message with a summary of all options and exit.

Interactive vs. non-interactive mode

The CLI operates in two modes depending on which flags are provided. Interactive mode launches when --domain or --framework is missing. The 7-step Questionary wizard collects all configuration interactively: project name, domain, framework, data source, Neo4j connection type, and API keys. Non-interactive mode runs when --domain (or --custom-domain) and --framework are both provided. The wizard is skipped entirely. PROJECT_NAME is optional — if omitted, the slug is auto-generated as {domain}-{framework}-app. This mode is safe for use in CI/CD pipelines and automated scripts.
When running in a non-TTY environment (such as a CI pipeline) without --domain and --framework, the CLI exits with an error rather than hanging on wizard prompts.

Environment variables

CLI flags always take precedence over environment variables. Set these in your shell profile or a .env file before running the tool to avoid repeating credentials on every invocation.
VariableCorresponding flag
NEO4J_URI--neo4j-uri
NEO4J_USERNAME--neo4j-username
NEO4J_PASSWORD--neo4j-password
ANTHROPIC_API_KEY--anthropic-api-key
OPENAI_API_KEY--openai-api-key
GOOGLE_API_KEY--google-api-key

Examples

Launch the interactive wizard

create-context-graph
uvx create-context-graph
npx create-context-graph

Scaffold without any prompts

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

Auto-generate the project name

When --domain and --framework are provided but PROJECT_NAME is omitted, a slug is generated automatically:
create-context-graph \
  --domain healthcare \
  --framework claude-agent-sdk \
  --demo-data
# Creates: ./healthcare-claude-agent-sdk-app/

LLM-powered data generation

Pass your Anthropic API key to generate realistic entities, documents, and decision traces instead of static placeholder data:
export ANTHROPIC_API_KEY=sk-ant-...

create-context-graph healthcare-app \
  --domain healthcare \
  --framework claude-agent-sdk \
  --demo-data

Generate from a custom domain description

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

Enable SaaS connectors

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

Scaffold and ingest into Neo4j

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

One-step demo (scaffold + generate + reset + ingest)

create-context-graph my-app \
  --domain healthcare \
  --framework pydanticai \
  --demo \
  --neo4j-uri neo4j://localhost:7687

Reset Neo4j before ingesting new domain data

create-context-graph my-app \
  --domain wildlife-management \
  --framework pydanticai \
  --demo-data \
  --ingest \
  --reset-database \
  --neo4j-uri neo4j://localhost:7687

Use a Neo4j Aura cloud database

create-context-graph my-app \
  --domain real-estate \
  --framework anthropic-tools \
  --demo-data \
  --neo4j-aura-env ~/Downloads/Neo4j-instance.env

Write to a custom output directory

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

Preview what would be generated

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

List all available domains

create-context-graph --list-domains