Codex plugin that ports the standalone LSP runtime from [`pi-lsp-client`](https://github.com/code-yeongyu/pi-lsp-client). It gives Codex post-edit diagnostics plus explicit MCP tools for language-aware code work.
## Architecture
The LSP runtime moved to [`lsp-tools-mcp`](https://github.com/code-yeongyu/lsp-tools-mcp) and is consumed from this repository's root `packages/lsp-tools-mcp/` package.
| diagnostics contain errors | returns Codex `PostToolUse` blocking feedback and injects the same diagnostics as additional context so Codex fixes the file |
| no diagnostics | emits no hook output |
| unsupported extension | emits no hook output |
| missing configured language server | surfaces the install/config message through hook or MCP output |
Deletes are ignored because they cannot introduce new diagnostics.
## MCP Tools
-`lsp.status`
-`lsp.diagnostics`
-`lsp.goto_definition`
-`lsp.find_references`
-`lsp.symbols`
-`lsp.prepare_rename`
-`lsp.rename`
`lsp.rename` applies the returned workspace edit to files. Use `lsp.prepare_rename` first when possible.
Built-in server definitions are used when no custom config overrides them. `lsp.status` shows which configured servers are installed or missing.
## Codex Plugin
The plugin ships:
-`.codex-plugin/plugin.json` for Codex plugin discovery.
-`.mcp.json` for the `lsp` MCP server.
-`hooks/hooks.json` for the `PostToolUse` diagnostics hook.
-`skills/lsp/SKILL.md` with MCP usage guidance.
The runtime depends on `@code-yeongyu/lsp-tools-mcp` via `file:../../../../lsp-tools-mcp`, so marketplace builds reuse the root package instead of carrying a second copy under this component.
The installer builds and copies the plugin into `~/.codex/plugins/cache/sisyphuslabs/omo/0.1.0`, registers the `sisyphuslabs` marketplace from the `lazycodex` Git repository, and enables:
```toml
[plugins."omo@sisyphuslabs"]
enabled=true
```
## Branch Rules and Releases
-`main` is protected by `.github/branch-ruleset.json`.
- CI runs Node 20 and 22 on Ubuntu, macOS, and Windows.
- Releases are GitHub Releases tagged as `v<semver>`.
- Publishing runs from the `publish` workflow after a GitHub Release is published.
## Privacy
This plugin runs locally. It starts configured language-server commands on your machine and does not call a network service by itself.
## License
[MIT](LICENSE).
## Related
- [pi-lsp-client](https://github.com/code-yeongyu/pi-lsp-client) - source extension this Codex plugin ports.