ocpncord-native-0.4.1 is not a library.
ocpncord
no_std+alloc ocpncord TUI client for opencode, the AI coding agent.
Connects to a running opencode serve instance over HTTP. Targets desktop (tokio + crossterm) and embedded terminals with a TUI display.
Workspace
| Crate | Role | no_std |
Publishable |
|---|---|---|---|
ocpncord-backend |
Backend trait + streaming types + JSON contract types + mock backend |
yes | yes |
ocpncord-backend-opencode |
HTTP implementation via reqwless over any TCP transport | yes | yes |
ocpncord-tui |
Ratatui widgets, platform-agnostic key events | yes | yes |
ocpncord-native |
Binary: tokio + crossterm | no | yes |
Quick start
# start an opencode server
# run the TUI (another terminal)
The native binary defaults to http://localhost:4096.
Architecture
The Backend trait in ocpncord-backend abstracts the opencode server protocol. The TUI depends only on this trait — it never imports ocpncord-backend-opencode directly. This lets you test the TUI with MockBackend (feature mock) or swap in a different transport for embedded targets.
┌──────────┐
│ native │ (tokio + crossterm, binary only)
└────┬─────┘
│
┌──────────┴──────────┐
│ ocpncord-tui │ (ratatui widgets, no_std)
└──────────┬──────────┘
│
┌──────────┴──────────┐
│ ocpncord-backend │ (Backend trait, no_std)
└──────────┬──────────┘
┌────┴────┐
│ HTTP │ (ocpncord-backend-opencode)
│ Mock │ (backend mock feature, for tests)
└─────────┘
Using the crates
# Backend trait, streaming types, and JSON contract types (no_std)
= "0.1"
# HTTP backend (reqwless, no_std)
= "0.1"
Status
The Backend trait and HTTP implementation are complete (14/14 integration tests passing). The TUI is under active development — see .scratch/tui-implementation/PRD.md.
License
AGPL-3.0-only