Skip to main content

Overview

nogic [COMMAND] [OPTIONS]
Global Options:
  • --version, -V — Show version
  • --help — Show help

login

Authenticate with your Nogic API key.
nogic login
You’ll be prompted to enter your API key. Get one from your Dashboard. Options:
  • --api-key, -k — Pass the API key directly instead of being prompted (also reads from NOGIC_API_KEY env var)
Example:
> Get your API key from the Nogic dashboard.

  Opened https://www.nogic.dev/dashboard

Paste your API key:

> Logged in as user_01a...
  API key saved. You're ready to go.

init

Initialize a Nogic project in a directory.
nogic init [DIRECTORY]
Arguments:
  • DIRECTORY — Path to initialize (default: current directory)
Options:
  • --name, -n — Set the project name
  • --link — Re-link to an existing project instead of creating a new one
  • --project-id, -p — Use a specific project ID
  • --yes, -y — Accept defaults and skip all prompts
If a project already exists for the directory, Nogic will prompt you to reuse it or wipe the graph data and start fresh. Example:
> Created project 'my-project'


────────────────────────────────── nogic init ──────────────────────────────────
  Directory: /path/to/my-project
  Project: my-project
  Project ID: a1b2c3d4-5678-90ab-cdef-1234567890ab

Ready to sync: nogic watch

watch

Watch a directory for file changes and sync automatically.
nogic watch [DIRECTORY]
Performs an initial full scan, then watches for file changes and syncs them in real-time. Press Ctrl+C to stop. Arguments:
  • DIRECTORY — Path to watch (default: current directory)
Options:
  • --ignore — Patterns to ignore (can be used multiple times)
  • --format — Output format: text (default) or json (NDJSON events)
Example:
────────────────────────────────── nogic watch ─────────────────────────────────
  /path/to/my-project
  Project: a1b2c3d4...
  Scanning files ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:00
  Found 42 supported files (50 total)
  Phase 1: Uploading 42 files in 3 batches...
  Uploading batches ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3/3 0:00:02
  Uploaded 42 files (42 staged, 0 unchanged)
  Phase 2: Processing...
  Resolving imports     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:00
  Creating symbol nodes ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 120/120 0:00:00
  Building call graph   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:01
  Linking relationships ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:00
  Generating embeddings ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:01
  Saving to database    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:00
  Indexed 42 files, 120 nodes, 85 edges

> Initial sync complete. Watching for changes... (Ctrl+C to stop)
When --format json is used, output is emitted as newline-delimited JSON events, useful for integrations like the VS Code extension:
{"event": "initial_scan_complete", "timestamp": 1706900000, "files_indexed": 42}
{"event": "ready", "timestamp": 1706900001, "message": "Watching for changes..."}
{"event": "synced", "timestamp": 1706900010, "path": "src/utils.py"}
Run nogic watch in a separate terminal while you code. Changes are synced within seconds.

sync

One-time sync of all files to the backend.
nogic sync [DIRECTORY]
Arguments:
  • DIRECTORY — Path to sync (default: current directory)
Options:
  • --ignore — Patterns to ignore (can be used multiple times)
  • --format — Output format: text (default) or json
Example:
────────────────────────────────── nogic sync ──────────────────────────────────
  /path/to/my-project
  Project: a1b2c3d4...
  Scanning files ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:00
  Found 42 supported files (50 total)
  Phase 1: Uploading 42 files in 3 batches...
  Uploading batches ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3/3 0:00:02
  Uploaded 42 files (42 staged, 0 unchanged)
  Phase 2: Processing...
  Resolving imports     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:00
  Creating symbol nodes ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 120/120 0:00:00
  Building call graph   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:01
  Linking relationships ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:00
  Generating embeddings ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:01
  Saving to database    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:00
  Indexed 42 files, 120 nodes, 85 edges

> Done.

reindex

Wipe all graph data and re-index the entire project from scratch.
nogic reindex [DIRECTORY]
Arguments:
  • DIRECTORY — Path to reindex (default: current directory)
Options:
  • --yes, -y — Skip the confirmation prompt
  • --ignore — Patterns to ignore (can be used multiple times)
  • --format — Output format: text (default) or json
Example:
> Deleted 120 nodes
  Scanning files ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:00
  Found 42 supported files (50 total)
  Phase 1: Uploading 42 files in 3 batches...
  Uploading batches ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3/3 0:00:02
  Uploaded 42 files (42 staged, 0 unchanged)
  Phase 2: Processing...
  Resolving imports     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:00
  Creating symbol nodes ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 120/120 0:00:00
  Building call graph   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:01
  Linking relationships ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:00
  Generating embeddings ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:01
  Saving to database    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42/42 0:00:00
  Indexed 42 files, 120 nodes, 85 edges

> Reindex complete!
  Old nodes deleted: 120

Run 'nogic watch' to continue monitoring for changes.
This deletes all existing graph data for the project. Use when the index seems out of date or after major refactoring.

status

Show project configuration and sync state.
nogic status [DIRECTORY]
Options:
  • --format — Output format: text (default) or json
Example:
───────────────────────────────── nogic status ─────────────────────────────────

Local Configuration
  Directory: /path/to/my-project
  Project ID: a1b2c3d4-5678-90ab-cdef-1234567890ab
  Project Name: my-project
  Directory Hash: 35dec96987335217...
  Logged in: Yes

Backend Status
  Project found: my-project
  Project ID: a1b2c3d4-5678-90ab-cdef-1234567890ab
  Created: 2026-02-05 07:01:20
When --format json is used, output is a single JSON object:
{
  "project_name": "my-project",
  "project_id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  "directory": "/path/to/my-project",
  "logged_in": true,
  "backend": {
    "status": "connected",
    "project_name": "my-project",
    "project_id": "a1b2c3d4-5678-90ab-cdef-1234567890ab"
  }
}

projects

Manage your Nogic projects.

projects list

nogic projects list
Options:
  • --verbose, -v — Show detailed info including directory hash and timestamps
Example:
──────────────────────────────── nogic projects ────────────────────────────────
  3 project(s)
  my-project (a1b2c3d4...) *
  backend (a1b2c3d4...)
  frontend (e5f6g7h8...)

  * = current project

projects create

nogic projects create NAME
Options:
  • --use — Set as current project after creating
  • --link — Link to the current directory after creating
Example:
> Created project: my-new-project
  Project ID: f9e8d7c6-...

projects use

Switch the current project for a directory.
nogic projects use PROJECT_ID
Supports prefix matching — you don’t need the full ID. Example:
> Now using project: my-project

telemetry

Manage anonymous usage telemetry.

telemetry status

nogic telemetry status
Example:
> Telemetry is enabled
  Run `nogic telemetry disable` to opt out

Telemetry helps us improve Nogic. All data is anonymized.

telemetry enable

nogic telemetry enable

telemetry disable

nogic telemetry disable
You can also disable telemetry via environment variable:
NOGIC_TELEMETRY_DISABLED=1

Supported Languages

Nogic indexes these file types:
LanguageExtensions
Python.py
JavaScript.js, .jsx
TypeScript.ts, .tsx
More languages coming soon.

Default Ignore Patterns

These paths are always ignored during sync, watch, and reindex: Directories: .git/, __pycache__/, .venv/, venv/, env/, node_modules/, .nogic/, dist/, build/, out/, .next/, .nuxt/, .output/, coverage/, htmlcov/, .idea/, .vscode/ Files: .DS_Store, *.pyc, *.swp, *.swo, *.tmp.*, *~, *.min.js, *.min.css, *.bundle.js, *.chunk.js, *.lock, package-lock.json, yarn.lock, pnpm-lock.yaml, *.map, .coverage Nogic also respects your project’s .gitignore file. Any patterns defined there are applied automatically. Add custom patterns with the --ignore flag on sync, watch, or reindex.