Skip to main content
Set up a new Dino project by answering a few questions. Generates a .dino.yml config file in the current directory. Runs without tenant context. No existing configuration or authentication required.

Usage

dino init [flags]

Flags

FlagTypeDefaultDescription
--forcebooleanfalseSkip the overwrite confirmation when .dino.yml already exists
--quietbooleanfalseSuppress banner, preview output, and endpoint reachability check

Interactive Prompts

The wizard asks five questions:
#PromptTypeDefault
1API endpoint URLtext (validated URL)
2Protocolselectgraphql
3Requires authentication?confirmNo
3aAuth env var nametext (shown if auth = yes)DINO_API_TOKEN
4Output formatselectjson
5Enable AI analysis?confirmNo
5aAnthropic key env vartext (shown if AI = yes)ANTHROPIC_API_KEY
You can cancel at any prompt with Ctrl+C. No file is written and the exit code is 0.

Examples

Basic setup

dino init
Welcome to Dino — API Intelligence

Let's set up your project.

? What's your API endpoint URL? https://api.example.com/graphql
? What protocol does your API use? GraphQL
? Does your API require authentication? No
? Output format? JSON (machine-readable)
? Enable AI-powered analysis? No

--- .dino.yml ---
# yaml-language-server: $schema=https://usedino.dev/schema.json
# Generated by dino init — see docs/CONFIGURATION.md for all options

endpoint: https://api.example.com/graphql
protocol: graphql
format: json
-----------------

Created .dino.yml

Next steps:
  dino scan

With authentication and AI reasoning

dino init
? What's your API endpoint URL? https://api.staging.example.com/graphql
? What protocol does your API use? GraphQL
? Does your API require authentication? Yes
? Environment variable name for your token? MY_API_TOKEN
? Output format? Markdown (human-readable)
? Enable AI-powered analysis? Yes
? Environment variable for Anthropic key? ANTHROPIC_API_KEY

Created .dino.yml

Next steps:
  export MY_API_TOKEN="your-token-here"
  export ANTHROPIC_API_KEY="sk-ant-..."
  dino scan

Overwrite existing config

dino init --force
Skips the “.dino.yml already exists. Overwrite?” prompt and writes immediately.

Generated Config

# yaml-language-server: $schema=https://usedino.dev/schema.json
# Generated by dino init — see docs/CONFIGURATION.md for all options

endpoint: https://api.example.com/graphql
protocol: graphql
format: json

Safety Guarantees

dino init never writes secrets to .dino.yml. Auth tokens and API keys are referenced by environment variable name only.
IDInvariantDescription
INV-1No secrets in YAMLTokens and keys stored as env var references, never values
INV-2Existing config checkPrompts before overwriting unless --force is passed
INV-3Schema consistencyGenerated YAML passes the same Zod schema used by dino validate
INV-5Endpoint reachabilityHEAD request with 5s timeout; warns but continues if unreachable

Exit Codes

CodeMeaning
0Config written successfully, or user cancelled
1Failed to write .dino.yml (permission error, disk full)