You talk to one persona called construct. Behind it is a team of specialists shaped by your org profile — Product, Engineering, Operations, Research. Sessions survive boundary changes via durable state in .cx/, beads, and a local vector index. Solo by default. Can deploy centrally for teams that want shared memory, telemetry, queues, and policy.
cxOne AI interface. A team of specialists behind it. Hard gates.
Vibe-coded · v0.x · learning in public
Try it
Three commands.
1
Install the CLI (once per machine)
npm install -g @geraldmaron/construct
2
Bootstrap local services
construct install --yes
3
Initialize a project
cd ~/your-project && construct init --auto-start
The intent
Why it exists
I'm not a developer. Construct is the project I'm using to learn what shipping a real multi-tenant tool actually looks like — the gates, the schemas, the durable state, the failure modes. Open source because the bar is "does this help me learn", and other people learning the same things should be able to read the source.
The shape
A team behind a persona
01
One persona — construct — fronts a team of specialists shaped by your active org profile. Ship "the outcome, not the specialist" and Construct routes to the right chain.
02
Profiles ship for software R&D (default), operations, creative, and research orgs. Each profile carries its own intake taxonomy, doc templates, and role set. Schema-validated escape hatch for custom profiles.
03
Sessions survive boundary changes — durable state lives in .cx/, Beads, and a local vector index, so context isn't lost when you switch chats, restart the daemon, or move the project.
The gates
Nothing risky slips through
Every code mutation runs through enforcement at three checkpoints: write-time, commit-time, CI safety net. No secrets committed, tests green, docs current, comments lint-clean. Gates can only be bypassed with explicit env vars, so every exception leaves an audit trail.
Deployment
Solo by default, scales when needed
01
Solo — runs entirely locally. Filesystem queue, repo state, optional Postgres via Docker, local JSONL traces. If every cloud service goes down, you still work from plan.md, .cx/context.md, beads, git, and the local vector index.
02
Team — promotes the intake queue to Postgres with row-locked worker claims. Shared memory, Docker worker pool, centralized telemetry, MCP through a broker.
03
Enterprise — adds tenant isolation, RBAC/ABAC scaffolding, isolated worker containers, signed MCP allowlists, and mandatory audit.
04
Switch with construct config mode [solo|team|enterprise].
Learning loops
Gets smarter on its own
Every session ends with an automatic capture: tools used, files touched, what the final reply said. That goes into .cx/observations/ and is searchable from the next session. The point is to make the tool sharper for the next problem without me having to remember to log anything.