// the find
cordiverse/cordis
Meta-Framework of Spatiotemporal Composability
Cordis is a TypeScript framework for building apps out of composable, hot-swappable plugins, built around a context/dependency-injection core with its own event system, service registry, and fiber-based plugin tree. It grew out of the Koishi bot framework's plugin core and is aimed at Node.js developers building long-running, modular services (bots, servers, CLIs) who want runtime plugin reloading and isolated sub-contexts, not a typical request/response web framework.
The monorepo splits cleanly into a minimal core (context, events, fiber, registry, service) plus opt-in packages (hmr, loader, include, logger-console, timer), so you pull in only what you need instead of one bundle. Hot module reload with dependency-tracked plugin trees and isolated contexts is hard to get right, and it's backed by fixture-driven tests (cordis-dep.yml, cordis-nested.yml, cordis-multi-entry.yml) rather than just asserted in the README. Core lifecycle edge cases — dispose, isolate, shadow contexts, reflection — each have dedicated spec files, which is exactly where DI/plugin libraries tend to rot silently. The design is also written up as an actual paper on arXiv, so the context/fiber abstractions have a formal argument behind them instead of just being naming choices.
The README states plainly that "the API is not yet stable and may change without notice" — a real risk for anything meant to sit underneath other packages, not just pre-1.0 boilerplate. Official docs are "still under construction" and the only link goes to a third-party-looking mirror rather than a canonical docs site, so understanding fiber.ts or reflect.ts semantics means reading source and tests directly. The vocabulary ("spatiotemporal composability", "fiber") is specific to this project and there's no example app or quick-start in the tree, so the conceptual on-ramp is steeper than the pitch suggests. There's also no visible changelog or migration notes in the repo structure, which matters a lot given how openly the project admits to breaking changes pre-stabilization.