Skip to main content

Codex Plugin

The Constellation plugin for OpenAI Codex supercharges your AI-assisted development workflow with deep codebase understanding. It provides $constellation: skills and session hooks that leverage Constellation's code intelligence platform.

Source: github.com/ShiftinBits/constellation-codex

Overview​

FeatureDescription
8 Skills$constellation: workflows for setup, code intelligence, and troubleshooting
HooksSetup check and session guidance, a nudge toward code_intel for symbol searches, an index freshness note after git commands, and code_intel usage tracking

Installation​

Prerequisites​

Quick Start​

  1. Install the plugin from the marketplace:

    Enter the following in your terminal:

    1. Add the Constellation marketplace:

    codex plugin marketplace add ShiftinBits/constellation-codex

    2. Install from the marketplace using <plugin>@<marketplace>:

    codex plugin add constellation@constellation-local

    You can also browse and install from the Codex CLI /plugins browser or the ChatGPT desktop app Plugins Directory. The Codex IDE extension does not support plugins.

  2. Configure authentication:

    Enter the following in your terminal:
    npx @constellationdev/cli auth
  3. Trust the hooks:

    Enter the following in Codex:
    /hooks

    Review and trust the Constellation hooks. Codex skips plugin hooks until they are trusted, and asks again after any plugin update that changes them.

  4. Verify the connection:

    Enter the following in Codex:
    $constellation:status

Not sure where you are? Run $constellation:get-started in Codex for guided setup.

Reduce Approval Prompts​

Optionally let Codex call the Constellation MCP tools without asking each time. Add this to ~/.codex/config.toml:

[plugins."constellation@constellation-local".mcp_servers.constellation]
default_tools_approval_mode = "approve"

Uninstall​

Enter the following in your terminal:
codex plugin uninstall constellation

Skills​

Codex exposes Constellation workflows as plugin skills. Invoke them explicitly with the $constellation: prefix when you want a specific analysis path. Codex also selects get-started, impact, deps, unused, architecture, and troubleshooting on its own when a request matches; status and diagnose run only when you invoke them.

Get Started​

$constellation:get-started

Walks you through setup in order, skipping steps you have already completed: install the CLI, run constellation auth, run constellation init and constellation index, restart Codex so the MCP server receives the key, trust the hooks in /hooks, and confirm with $constellation:status.

On macOS, GUI apps such as the ChatGPT desktop app may hold a stale environment. After constellation auth, fully quit and relaunch the app so it picks up the new CONSTELLATION_ACCESS_KEY.

Status​

$constellation:status

Check Constellation API connectivity and authentication status.

> $constellation:status

Status: Connected
Authentication valid, project access confirmed
Note: Use $constellation:diagnose to check indexing status

If issues are detected, the skill reports the specific error code and a targeted remediation step.

Diagnose​

$constellation:diagnose

Run a quick health check for MCP connectivity, API authentication, and project indexing.

> $constellation:diagnose

Constellation Health Check
===========================
MCP Server: OK
API Auth: OK
Project: TypeScript project
Index: 1,247 files, 8,932 symbols

All systems operational.

When issues are detected:

Constellation Health Check
===========================
MCP Server: OK
API Auth: FAILED

Issue: Authentication failed - API key missing or invalid.

Quick Fix: Run `constellation auth` to configure credentials.

Architecture​

$constellation:architecture

Get a high-level overview of your codebase structure.

> $constellation:architecture

Project Summary
- Primary Language: TypeScript
- Files: 1,247
- Symbols: 8,932
- Languages: TypeScript, JavaScript

Dependency Hotspots
- src/services/user.service.ts
- src/controllers/user.controller.ts
- src/utils/currency.ts

The architecture skill summarizes language distribution, symbol breakdown, dependency hotspots, and concise observations about the codebase shape.

Impact​

$constellation:impact <symbol> [file]

Analyze the blast radius before changing a symbol.

> $constellation:impact validateUser src/auth/validator.ts

Symbol: validateUser (function)
Risk Level: MEDIUM
Files Affected: 12
Direct Dependents: 34
Impacted Test Files: 3

Recommendations:
- Update unit tests in auth.spec.ts
- Check integration with UserController

Use this before refactoring, renaming, deleting, or changing shared code. If the risk is high or critical, Codex emphasizes caution and highlights the most important dependents to review.

Deps​

$constellation:deps <file> [--reverse]

Map dependencies for a file, or use --reverse to find what depends on it.

Dependencies:

> $constellation:deps src/services/payment.service.ts

Dependencies (12):
├── Internal (8)
│ ├── src/models/payment.model.ts
│ ├── src/utils/currency.ts
│ └── ...
└── External (4)
├── stripe
├── lodash
└── ...

No circular dependencies detected.

Dependents:

> $constellation:deps src/services/payment.service.ts --reverse

Dependents (7):
├── src/controllers/payment.controller.ts
├── src/controllers/checkout.controller.ts
├── src/services/order.service.ts
└── ... 4 more

Unused​

$constellation:unused [kind]

Find exported code that is never imported or used anywhere in the codebase. Optionally filter by function, class, type, interface, or variable.

> $constellation:unused function

Found 7 orphaned functions:
├── src/utils/legacy.ts
│ ├── formatLegacyDate
│ └── parseLegacyConfig
├── src/helpers/deprecated.ts
│ └── oldValidation
└── ...

Recommendation: Review each orphaned export before removing it; some may be entry points or dynamically imported.

Troubleshooting​

$constellation:troubleshooting

Diagnose Constellation errors, indexing problems, authentication issues, and MCP failures.

> $constellation:troubleshooting AUTH_ERROR

Issue: Authentication failed - API key missing or invalid.
Quick Fix: Run `constellation auth` in your shell.

Use this skill when Constellation tool calls fail, the MCP server is unavailable, Codex reports failed reconnects, or an error code such as AUTH_ERROR, PROJECT_NOT_INDEXED, or API_UNREACHABLE appears.

Hooks​

The plugin includes hooks that guide Codex toward Constellation's structural code intelligence (code_intel) instead of relying on text search for code understanding.

Hooks are on by default ([features].hooks = false turns them off). Codex skips plugin hooks until you trust them in /hooks, and asks again after any plugin update that changes them.

All hooks except the setup check require an ak: access key and a constellation.json in the project tree (or, when Codex starts in a folder above several projects, in one of its subdirectories), so they stay silent elsewhere. Hooks never send source code anywhere; they read only the hook input and local files, and fail open if anything goes wrong.

Session Start​

Event: SessionStart (matcher: startup|resume|clear|compact)

Behavior:

  • Establishes code_intel as the primary tool for definitions, usages, callers, dependencies, impact, architecture, and dead code, with text search for literal strings, config values, and logs
  • On startup, shows a warning when CONSTELLATION_ACCESS_KEY is missing or invalid and points to $constellation:get-started
  • On startup in a git repository without a constellation.json, tells Codex the project is not indexed

Subagent Start​

Event: SubagentStart

Behavior: Gives subagents the same code_intel guidance as the main session.

Symbol Search Nudge​

Event: PostToolUse (matcher: Bash)

Behavior:

  • Fires only when a shell search such as grep or rg looks like a symbol lookup (for example rg "UserService") inside an indexed project; literal searches such as rg "connection refused" are left alone
  • Reminds Codex that code_intel finds definitions and usages across files
  • Stays quiet for the rest of a turn once Codex has used code_intel
  • Limited per session (3 by default, tracked separately for each subagent)

Index Freshness Note​

Event: PostToolUse (matcher: Bash)

Behavior: After a git command that moves HEAD (commit, pull, checkout, merge, rebase), warns once per HEAD when the index is behind your checkout, and suggests constellation index once per session.

Usage Tracking​

Event: PostToolUse (matcher: mcp__constellation__code_intel)

Behavior: Records that code_intel was used so nudges stay quiet for that turn, and remembers which commit the index reflects for the freshness note.

Settings​

CONSTELLATION_NUDGE_LIMIT sets how many symbol search nudges Codex gets per session (default 3; 0 disables nudges). Set it in the environment Codex is launched from. Codex plugins have no per-plugin user settings, so environment variables are the settings mechanism.

Troubleshooting​

Quick Diagnostics​

Ask Codex to run a status check:

$constellation:status

For deeper diagnostics, run:

$constellation:diagnose

Common Errors​

ErrorCauseSolution
MCP_UNAVAILABLEMCP server not runningRestart Codex to reinitialize MCP connections
AUTH_ERRORMissing or invalid access keyRun constellation auth
PROJECT_NOT_INDEXEDProject needs indexingRun constellation index --full
PROJECT_NOT_REGISTEREDProject ID is unknown or unavailableVerify project ID and organization access
PROJECT_INACTIVEProject has been deactivatedReactivate the project or choose another project
API_UNREACHABLEConstellation API cannot be reachedCheck network connectivity and API URL in constellation.json
Skills not appearingPlugin not loadedRestart Codex or check the plugin installation path
Hooks not runningHooks not trustedOpen /hooks in Codex and trust the Constellation hooks

MCP Server Issues​

If you see MCP connection errors:

  1. Restart Codex - MCP connections initialize at startup.

  2. Verify the MCP server can run:

    npx @constellationdev/mcp@latest --version
  3. Check plugin configuration in .mcp.json:

    {
    "mcpServers": {
    "constellation": {
    "type": "stdio",
    "command": "npx",
    "args": ["-y", "@constellationdev/mcp@latest"],
    "env_vars": ["CONSTELLATION_ACCESS_KEY"]
    }
    }
    }

Step-by-Step Diagnostics​

  1. Run plugin status:

    $constellation:status
  2. Run full diagnosis:

    $constellation:diagnose
  3. Verify CLI authentication:

    constellation auth
  4. Re-index if needed:

    constellation index --full

Advanced Usage​

Parallel API Execution​

The Constellation MCP server uses Code Mode, which allows JavaScript snippets to execute multiple API calls in parallel. This makes complex analyses significantly faster:

// All three queries execute in parallel
const [deps, dependents, usage] = await Promise.all([
api.getDependencies({ filePath: 'src/service.ts' }),
api.getDependents({ filePath: 'src/service.ts' }),
api.traceSymbolUsage({ symbolName: 'MyClass', filePath: 'src/service.ts' })
]);

Available API Methods​

CategoryMethods
DiscoverysearchSymbols, getSymbolDetails
DependenciesgetDependencies, getDependents, findCircularDependencies
TracingtraceSymbolUsage, getCallGraph
ImpactimpactAnalysis, findOrphanedCode
ArchitecturegetArchitectureOverview

For complete API documentation, see the MCP Server Tools Reference.