https://github.com/dtsong/my-opencode-codex-setup
Portable OpenCode + Codex setup inspired by my-claude-setup
https://github.com/dtsong/my-opencode-codex-setup
cli codex developer-tools opencode prompts
Last synced: 4 months ago
JSON representation
Portable OpenCode + Codex setup inspired by my-claude-setup
- Host: GitHub
- URL: https://github.com/dtsong/my-opencode-codex-setup
- Owner: dtsong
- License: mit
- Created: 2026-02-11T21:38:33.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-02-12T18:45:13.000Z (4 months ago)
- Last Synced: 2026-02-13T02:14:48.104Z (4 months ago)
- Topics: cli, codex, developer-tools, opencode, prompts
- Language: Shell
- Size: 78.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Roadmap: docs/roadmap.md
Awesome Lists containing this project
README
# my-opencode-codex-setup
Portable OpenCode + Codex setup inspired by `my-claude-setup`.
This repository is for people who use OpenCode and want a reproducible, versioned setup they can reuse across machines:
- reusable agents
- structured skills
- workspace-aware project context
- session handover workflow
- command-style execution playbooks
## Prerequisites
- OpenCode installed: https://opencode.ai/docs (install script: https://opencode.ai/install)
- `git`, `bash`, and `python3` available on your PATH
- Optional (contributors): `pre-commit`
- Optional (GitHub workflows): `gh` authenticated (`gh auth login`)
## Quick Start
```bash
git clone https://github.com//my-opencode-codex-setup.git ~/Development/my-opencode-codex-setup
cd ~/Development/my-opencode-codex-setup
chmod +x install.sh
./install.sh
```
Verify it worked:
```bash
./install.sh --status
./scripts/ops-check.sh
```
## Profiles
This setup supports optional profiles:
- `core` (`stable`) - default practical setup
- `council-lite` (`beta`) - lightweight advanced orchestration layer (`commands/council-lite.md`)
- `council-research` (`experimental`) - early availability research mode under active battle testing
Common commands:
```bash
# list available profiles
./install.sh --list-profiles
# show enabled/disabled profiles and state location
./install.sh --status
# set exact profiles (dependencies auto-added)
./install.sh --profiles core,council-lite
# choose conflict behavior when target paths already exist
./install.sh --conflict-policy fail --profiles core,council-lite
./install.sh --conflict-policy skip --profiles core,council-lite
# enable or disable one profile
./install.sh --enable-profile council-lite
./install.sh --disable-profile council-lite
# start a council-lite session scaffold
./scripts/council-lite.sh run "Design safe billing webhooks"
./scripts/council-lite.sh list
./scripts/validate-council-lite.sh --latest
```
Profile state is persisted at:
`~/.config/opencode/profiles-enabled.json`
For profile adoption guidance, see `docs/profiles.md`.
## What This Installs
`install.sh` creates symlinks into `~/.config/opencode/` so edits in this repo apply immediately.
If a managed target path already exists and is not a symlink, install fails by default.
Use `--conflict-policy skip` to leave conflicting paths untouched and continue linking non-conflicting paths.
`./install.sh --uninstall` removes managed symlinks and profile state.
## Try It Now
```bash
# create a session handover note in ./memory
./scripts/handover.sh
# quick repo-local quality gate detection
./scripts/ops-check.sh
# git helper
./scripts/git-porcelain.sh status
# issue -> branch -> draft PR loop (requires gh auth)
./scripts/issue-pr-loop.sh start 123 main
./scripts/issue-pr-loop.sh pr 123 main
```
If you enabled `council-lite`, you can also run:
```bash
./scripts/council-lite.sh run "Design safe billing webhooks"
./scripts/council-lite.sh list
./scripts/validate-council-lite.sh --latest
```
## Directory Layout
```text
my-opencode-codex-setup/
├── agents/ # OpenCode agent prompt files
├── skills/ # Structured skill templates
├── commands/ # Reusable command/workflow prompts
├── scripts/ # Helper scripts (handover, workspace detection)
├── workspaces/ # Project-specific context templates
├── config/ # OpenCode config examples
├── docs/ # Migration and architecture notes
├── profiles/ # Optional profile metadata and manifests
├── install.sh
├── CONTRIBUTING.md
└── LICENSE
```
## Roadmap
See `docs/roadmap.md`.
## Workflow Scripts
- `scripts/handover.sh` - create a session handover document
- `scripts/git-porcelain.sh` - status/save/sync/branch/pr helper
- `scripts/ops-check.sh` - stack-aware quality gate checks
- `scripts/issue-pr-loop.sh` - issue to branch to draft PR flow
- `scripts/council-lite.sh` - lightweight multi-agent session scaffold
- `scripts/validate-council-lite.sh` - council-lite artifact structure validator
- `scripts/share-templates.sh` - copy DM/Discord onboarding templates to clipboard
See `docs/workflows-playbook.md` for usage patterns.
## AI Delivery Playbook
Use `docs/gpt53-opencode-playbook.md` as the default runbook for GPT-5.3 + OpenCode execution to reduce rework.
## Open Source Readiness
- community templates in `.github/`
- `SECURITY.md` and `CODE_OF_CONDUCT.md`
- practical usage examples in `examples/`
- release checklist in `docs/release-checklist.md`
- launch checklist in `docs/open-source-launch.md`
- friend outreach message in `docs/friend-outreach-template.md`
- onboarding feedback channels in `docs/onboarding-feedback.md`
## Where To Go Next
- Profiles and installer behavior: `docs/profiles.md`
- Common scripts and usage patterns: `docs/workflows-playbook.md`
- Agent pack overview and how to invoke agents: `docs/agents-playbook.md` and `agents/README.md`
- Mapping from Claude setup patterns: `docs/what-maps-what.md` and `docs/migration-from-claude.md`
## Troubleshooting
Conflicts under `~/.config/opencode/`:
- If a managed path already exists and is not a symlink, install fails by default.
- Recommended: move/remove the conflicting path, then rerun `./install.sh`.
- If you want to proceed without replacing conflicting paths, use `./install.sh --conflict-policy skip`.
"I expected files to be copied":
- This repo is designed around symlinks. Editing files in this repo updates your OpenCode config immediately.
"python3 not found":
- Install requires `python3` for profile resolution and state management.