{"id":49383175,"url":"https://github.com/shiftinbits/constellation-opencode","last_synced_at":"2026-04-28T07:01:32.377Z","repository":{"id":353395474,"uuid":"1149910012","full_name":"ShiftinBits/constellation-opencode","owner":"ShiftinBits","description":"Constellation Plugin for OpenCode","archived":false,"fork":false,"pushed_at":"2026-04-23T19:05:06.000Z","size":43,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-23T19:26:23.082Z","etag":null,"topics":["ai-coding","ai-driven-development","constellation","opencode","opencode-ai","opencode-plugin","opencode-skills","shiftinbits"],"latest_commit_sha":null,"homepage":"https://docs.constellationdev.io/plugins/opencode","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ShiftinBits.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-04T16:59:49.000Z","updated_at":"2026-04-23T19:05:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ShiftinBits/constellation-opencode","commit_stats":null,"previous_names":["shiftinbits/constellation-opencode"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ShiftinBits/constellation-opencode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShiftinBits%2Fconstellation-opencode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShiftinBits%2Fconstellation-opencode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShiftinBits%2Fconstellation-opencode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShiftinBits%2Fconstellation-opencode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShiftinBits","download_url":"https://codeload.github.com/ShiftinBits/constellation-opencode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShiftinBits%2Fconstellation-opencode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32370030,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"online","status_checked_at":"2026-04-28T02:00:07.250Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-coding","ai-driven-development","constellation","opencode","opencode-ai","opencode-plugin","opencode-skills","shiftinbits"],"created_at":"2026-04-28T07:01:31.211Z","updated_at":"2026-04-28T07:01:32.373Z","avatar_url":"https://github.com/ShiftinBits.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"https://constellationdev.io/opencode-icon.svg\" height=\"30\"\u003e Constellation Plugin for OpenCode\n\n[![NPM Version](https://img.shields.io/npm/v/@constellationdev/opencode?logo=npm\u0026logoColor=white)](https://www.npmjs.com/package/@constellationdev/opencode) [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-3DA639?logo=opensourceinitiative\u0026logoColor=white)](LICENSE)\n\nWhile Constellation's MCP server provides raw code intelligence capabilities, this plugin enhances your OpenCode experience with:\n\n| Feature | Benefit |\n|---------|---------|\n| **Specialized Agents** | AI agents for codebase exploration, impact analysis, and dependency health |\n| **Session Hooks** | Automatic Constellation availability checks and context preservation |\n\n## Features\n\n### Agents\n\nSpecialized AI agents for autonomous analysis:\n\n| Agent | Purpose |\n|-------|---------|\n| **@source-scout** | Explores and navigates codebase, discovers symbols and architectural patterns |\n| **@impact-investigator** | Proactively assesses risk before refactoring, renaming, or deleting code |\n| **@dependency-detective** | Detects circular dependencies and unhealthy coupling patterns |\n\n**Example Trigger:**\n```\nYou: \"What does this codebase do?\"\nOpenCode: [Activates @source-scout agent]\n\nYou: \"I'm renaming AuthService to AuthenticationService\"\nOpenCode: \"Before renaming, let me analyze the potential impact...\"\n[Activates @impact-investigator agent]\n```\n\n### Hooks\n\nEvent hooks enable intelligent, transparent assistance:\n\n| Hook | Event | Behavior |\n|------|-------|----------|\n| **Availability Check** | `session.created` | Silently checks Constellation connectivity at session start |\n| **System Prompt Enhancement** | `chat.system.transform` | Injects Constellation priority into prompts |\n| **Context Preservation** | `session.compacting` | Preserves Constellation insights in compacted summary |\n\n## Installation\n\n### Prerequisites\n\n1. **Constellation Account** (see [Constellation](https://app.constellationdev.io))\n2. **Project indexed** in Constellation\n3. **Access key** configured\n\n### Automatic Setup (Recommended)\n\nWhen you run `constellation init` with OpenCode tool configuration, the CLI automatically configures both the plugin and MCP server in your project's `opencode.json`.\n\n### Manual Setup\n\nAdd the plugin to your project's `opencode.json`:\n\n```json\n{\n  \"plugin\": [\"@constellationdev/opencode\"]\n}\n```\n\nOpenCode will automatically install the plugin at startup.\n\n\u003e **Note:** Install this plugin at the project level, not globally. It should only be enabled for projects that use Constellation.\n\n## Usage Examples\n\nThe plugin ships a set of on-demand **skills** — OpenCode's agent loads them automatically when a user request matches the skill's description. There are no slash commands; just ask.\n\n### Check Your Setup\n\n```\n\u003e Check Constellation status\n\n[skill: constellation-status]\nStatus: Connected\nProject: my-awesome-app\nFiles Indexed: 1,247\nSymbols: 8,932\nLanguages: TypeScript, JavaScript\n```\n\n### Analyze Before Refactoring\n\n```\n\u003e What's the impact of changing validateUser in src/auth/validator.ts?\n\n[skill: constellation-impact]\nSymbol: validateUser (function)\nRisk Level: MEDIUM\nFiles Affected: 12\nSymbols Affected: 34\nTest Coverage: 67%\n\nRecommendations:\n- Update unit tests in auth.spec.ts\n- Check integration with UserController\n```\n\n### Find Dead Code\n\n```\n\u003e Find unused functions\n\n[skill: constellation-unused]\nFound 7 orphaned functions:\n├── src/utils/legacy.ts\n│   ├── formatLegacyDate (line 23)\n│   └── parseLegacyConfig (line 45)\n├── src/helpers/deprecated.ts\n│   └── oldValidation (line 12)\n...\n```\n\n### Understand Dependencies\n\n```\n\u003e Show me the dependencies for src/services/payment.service.ts\n\n[skill: constellation-deps]\nDependencies (12):\n├── Internal (8)\n│   ├── src/models/payment.model.ts\n│   ├── src/utils/currency.ts\n│   └── ...\n└── External (4)\n    ├── stripe\n    ├── lodash\n    └── ...\n\nNo circular dependencies detected.\n```\n\n### Available Skills\n\n| Skill | Triggers on |\n|-------|-------------|\n| `constellation-status` | \"Is Constellation working?\", \"ping Constellation\" |\n| `constellation-diagnose` | \"Full Constellation health check\" |\n| `constellation-impact` | \"What would break if I change X?\", \"blast radius of X\" |\n| `constellation-deps` | \"Dependencies of X\", \"what depends on X\" |\n| `constellation-unused` | \"Find dead code\", \"orphaned exports\" |\n| `constellation-architecture` | \"Codebase overview\", \"architecture summary\" |\n| `constellation-troubleshooting` | Any Constellation error code or \"Constellation broken\" |\n\n### How It Works\n\nConstellation uses privacy-preserving AST extraction to understand your code structure without transmitting source code:\n\n```\nYour Code → AST Extraction → Constellation API → Code Intelligence\n              (no source)      (encrypted)        (semantic queries)\n```\n\n## Troubleshooting\n\n### Common Issues\n\n| Issue | Solution |\n|-------|----------|\n| `AUTH_ERROR` | Check `CONSTELLATION_ACCESS_KEY` is set correctly, use `constellation auth` CLI command to set |\n| `PROJECT_NOT_INDEXED` | Run `constellation index --full` in your project |\n| MCP Server not responding | Restart OpenCode, or ask \"Run a Constellation health check\" to invoke the `constellation-diagnose` skill |\n\n## Documentation\n\n- [Constellation Documentation](https://docs.constellationdev.io) — Full platform documentation\n- [OpenCode Documentation](https://opencode.ai/docs) — OpenCode plugin development guide\n- [MCP Server](https://github.com/shiftinbits/constellation-mcp) — Underlying MCP server\n\n## License\n\nGNU Affero General Public License v3.0 (AGPL-3.0)\n\nCopyright © 2026 ShiftinBits Inc.\n\nSee [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshiftinbits%2Fconstellation-opencode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshiftinbits%2Fconstellation-opencode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshiftinbits%2Fconstellation-opencode/lists"}