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 but --domain and --framework are provided, a slug is auto-generated (e.g., healthcare-pydanticai-app). If neither project name nor required flags are provided, the interactive wizard launches.

Options​

Project Setup​

OptionTypeDefaultDescription
--domainstring(wizard)Domain ID (e.g., healthcare, financial-services). Use --list-domains to see all.
--frameworkchoice(wizard)Agent framework: pydanticai, claude-agent-sdk, strands, google-adk, openai-agents, langgraph, crewai, anthropic-tools.
--custom-domainstring--Natural language domain description. Requires --anthropic-api-key.
--output-dirpath./<project-slug>Directory for generated project.
--with-mcpflagfalseGenerate MCP server config for Claude Desktop.
--mcp-profilechoiceextendedMCP tool profile: core (6 tools) or extended (16 tools).

Data Generation​

OptionTypeDefaultDescription
--demo-dataflagfalseGenerate synthetic demo data. Uses static data by default; pass --anthropic-api-key for LLM-generated data.
--demoflagfalseShortcut for --reset-database --demo-data --ingest.
--ingestflagfalseIngest generated data into Neo4j after scaffolding.
--reset-databaseflagfalseClear all Neo4j data before ingesting.

Memory Configuration​

OptionTypeDefaultDescription
--session-strategychoiceper_conversationSession strategy: per_conversation, per_day, or persistent.
--auto-extract / --no-auto-extractflagonAuto-extract entities from conversation messages.
--auto-preferences / --no-auto-preferencesflagonAuto-detect user preferences from messages.

SaaS Connector Configuration​

OptionTypeDefaultDescription
--connectorstring (repeatable)--SaaS connector: github, slack, jira, notion, gmail, gcal, salesforce, linear, google-workspace, claude-code, claude-ai, chatgpt.
--linear-api-keystring$LINEAR_API_KEYLinear personal API key.
--linear-teamstring$LINEAR_TEAMLinear team URL key (e.g., ENG).
--gws-folder-idstring$GWS_FOLDER_IDGoogle Drive folder ID to scope the import.
--gws-include-comments / --gws-no-commentsflagonImport comment threads (resolved → decision traces).
--gws-include-revisions / --gws-no-revisionsflagonImport revision history metadata.
--gws-include-activity / --gws-no-activityflagonImport Drive Activity events.
--gws-include-calendarflagoffImport Calendar events.
--gws-include-gmailflagoffImport Gmail thread metadata.
--gws-sincestring90 days agoISO date; only import activity after this date.
--gws-mime-typesstringdocs,sheets,slidesMIME type filter (docs, sheets, slides, pdf, all).
--gws-max-filesint500Maximum files to import.
--claude-code-scopechoicecurrentImport from current project or all projects.
--claude-code-projectstring--Explicit project path (overrides --claude-code-scope).
--claude-code-sincestringall timeISO date; only import sessions after this date.
--claude-code-max-sessionsint0 (all)Max sessions to import (most recent first).
--claude-code-contentchoicetruncatedContent mode: full, truncated (2000 chars), none.

Chat History Import​

OptionTypeDefaultDescription
--import-typechoice--claude-ai or chatgpt. Must pair with --import-file.
--import-filepath--Path to chat export (.zip, .json, .jsonl).
--import-depthchoicefastfast (messages) or deep (messages + tool call traces).
--import-filter-afterstring--Only conversations created after this date (ISO 8601).
--import-filter-beforestring--Only conversations created before this date (ISO 8601).
--import-filter-titlestring--Title pattern filter (regex).
--import-max-conversationsint0 (all)Max conversations to import.

Neo4j Configuration​

OptionTypeDefaultDescription
--neo4j-uristring$NEO4J_URI or neo4j://localhost:7687Neo4j Bolt connection URI.
--neo4j-usernamestring$NEO4J_USERNAME or neo4jNeo4j username.
--neo4j-passwordstring$NEO4J_PASSWORD or passwordNeo4j password.
--neo4j-aura-envpath--Path to Aura .env file. Auto-sets neo4j_type=aura.
--neo4j-localflagfalseUse @johnymontana/neo4j-local (no Docker).

API Keys​

OptionTypeEnv VariableDescription
--anthropic-api-keystringANTHROPIC_API_KEYFor LLM data generation and custom domains.
--openai-api-keystringOPENAI_API_KEYFor OpenAI Agents and LangGraph frameworks.
--google-api-keystringGOOGLE_API_KEYFor the google-adk framework (Gemini models).

Output & Debug​

OptionTypeDescription
--dry-runflagPreview config without creating files.
--verboseflagEnable debug logging.
--list-domainsflagPrint all domain IDs and exit.
--versionflagPrint version and exit.
--helpflagShow help and exit.

Interactive vs. Non-Interactive Mode​

The CLI operates in two modes:

  • Interactive mode: If --domain or --framework is missing, the 7-step interactive wizard launches. The wizard uses Questionary prompts to collect all configuration.
  • Non-interactive mode: If --domain (or --custom-domain) and --framework are both provided, the wizard is skipped entirely. PROJECT_NAME is optional — if omitted, a slug is auto-generated from the domain and framework (e.g., healthcare-pydanticai-app). 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

Import chat history from Claude AI or ChatGPT​

create-context-graph my-chat-graph \
--domain personal-knowledge \
--framework pydanticai \
--import-type claude-ai \
--import-file ~/Downloads/claude-export.zip \
--import-depth deep \
--import-filter-after 2025-06-01

Import Linear workspace data​

create-context-graph my-project \
--domain software-engineering \
--framework pydanticai \
--connector linear \
--linear-api-key lin_api_xxxxx \
--linear-team ENG

With MCP server for Claude Desktop​

Generate a project with MCP server support:

create-context-graph my-app \
--domain healthcare \
--framework pydanticai \
--demo-data \
--with-mcp \
--mcp-profile extended

After scaffolding, copy mcp/claude_desktop_config.json to your Claude Desktop config directory and restart Claude Desktop to connect.

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

Quick demo (scaffold + seed + ingest in one step)​

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

Reset Neo4j before ingesting​

Clear all existing data from a shared Neo4j instance before loading new domain data:

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

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
OPENAI_API_KEY--openai-api-key
GOOGLE_API_KEY--google-api-key
LINEAR_API_KEY--linear-api-key
LINEAR_TEAM--linear-team

CLI flags always take precedence over environment variables.