Skip to content

Repository files navigation

Meridian OS

An open-source company OS for running teams of humans and AI agents from one operational console.

License: MIT React 19 TypeScript strict PRs welcome

Meridian OS is an operational control plane for companies made of humans and AI agents.

Command view

Why

Agent orchestration is not enough to run a company. A company OS needs to know who owns what, which goals matter, what work is blocked, how fast tokens and dollars are burning, what approvals are pending, and what happened after the operator closed the tab.

Meridian brings those surfaces into one live system. The result is less "chat with an agent" and more "talk to the company, inspect its state, and approve the moments that matter."

Features

View What it does
Command Operator cockpit with north-star metrics, risk radar, pending approvals, department envelopes, and live heartbeat feed.
Kimi Space Chat with agents; OS commands create tasks, assign work, move statuses, install skills, and route free-form chat to local Kimi when available.
Work Kanban and list modes with filters, priorities, goal alignment, delegation context, thread history, and tool-call traces.
Goals Mission -> company -> team alignment tree with key results and owner context.
Org Chart Recursive company tree with agent dossiers and reporting lines.
Agents Sortable scoreboard for runtime, status, budget, success rate, throughput, and installed skills.
Skills Installable capability packs credited to their sources, with category metadata and runtime toggles.
Approvals Governance inbox for spend, hire, override, publish, and terminate decisions with policy checks.
Finance Burn charts, department envelopes, projections, and model/token ledger.
Activity Immutable audit log of heartbeats, decisions, delegation, spend, and system events with JSON export.
Reports Auto-generated CEO briefs from the current operating state.
Portfolio Multi-company overview for switching between operating companies.

More operating surfaces:

Work Approvals Finance
Work kanban Approvals inbox Finance view

The Company Is Alive

Meridian ships with a simulation engine that ticks about every 2.6 seconds. While it is running, AI agents send heartbeats, tasks advance, token counts grow, budget lines accrue spend, and the audit log keeps recording activity.

The simulation can be paused from the sidebar. Without any real runtime connected, Meridian still behaves like a live company console, which makes it useful for design, demos, and product development.

Talk To Your Company

Kimi Space is the operator chat surface. It understands OS commands such as:

create task: refresh onboarding emails, assign to Bea, p1
assign HAL-1042 to Ingrid
move HAL-1042 to review
install Context7 on Juno
budget report

When a command resolves, Meridian dispatches a real store action. When no command matches and the local Kimi runtime is ready, Meridian calls the user's local kimi CLI and shows the model reply with a trace.

Kimi Space with local reply

Quickstart

Requirements:

  • Node 20+
  • Optional for real local chat: Kimi Code CLI installed at ~/.kimi-code/bin/kimi and logged in with kimi login

Install and run:

npm install
npm run dev

Open the Vite app on port 4173. Build and preview:

npm run build
npm run preview

Connect A Real Agent

Meridian has two Kimi integration paths.

Path What it does Requirements
Local runtime Vite middleware spawns the user's local Kimi Code CLI with kimi -p, using the user's own stored OAuth credentials. Non-command chat in Kimi Space is answered by the real k3 model. ~/.kimi-code/bin/kimi exists and kimi login has completed.
OAuth device flow Optional RFC 8628 card that connects through a Vite proxy to auth.kimi.com. The client id follows the public opencode integration. User completes the device-code flow in the browser.

Local runtime endpoints:

GET  /local-runtime/status
POST /local-runtime/kimi/chat

Safety properties:

  • One local Kimi chat runs at a time.
  • Chat messages are capped at 8k characters.
  • Calls time out after 180 seconds.
  • The bridge uses a dedicated .kimi-runtime workdir.
  • Tokens are never returned by any endpoint.

The Kimi Space header shows a local runtime badge when the local CLI path is ready. If the runtime is missing, Meridian keeps working in simulation mode.

OAuth proxy endpoints:

POST /kimi-oauth/device
POST /kimi-oauth/token

The OAuth connection status is persisted in localStorage, but the device code and tokens are not persisted by the client.

Architecture

src/
  App.tsx                 shell, navigation, company switcher, simulation toggle
  components/             shared primitives, command palette, Kimi connection card
  lib/
    store.tsx             reducer, selectors, simulation engine, localStorage persistence
    types.ts              company, agent, goal, task, approval, activity, Kimi types
    seed.ts               seeded multi-company operating world
    skills.ts             installable skill registry
    kimiAuth.ts           client for the device-flow OAuth proxy
  styles/                 token-driven global CSS and app primitives
  views/                  Command, Kimi Space, Work, Goals, Org, Agents, Skills,
                          Approvals, Finance, Activity, Reports, Portfolio
vite.config.ts            React plugin plus Kimi OAuth proxy and local Kimi bridge

Middleware bridge:

Kimi Space
   |
   | same-origin fetch
   v
Vite middleware
   |---------------------> /kimi-oauth/* -> auth.kimi.com
   |
   | local process spawn
   v
~/.kimi-code/bin/kimi -p
   |
   v
.kimi-runtime workdir + user's stored Kimi credentials

The frontend is React 19 with strict TypeScript, Vite 6, and no runtime dependencies except lucide-react. The visual system is a dark ops-console UI using Geist and Geist Mono, token-driven CSS, shared primitives, one status vocabulary, and mono text for machine values.

Read ARCHITECTURE.md before changing views or shared patterns.

Security

Meridian is local-first. The most sensitive path is the development middleware that can spawn the user's local Kimi CLI; it is designed for user-consented local development, does not expose tokens through API responses, serializes local Kimi chats, caps input size, and uses a dedicated workdir.

See SECURITY.md for the threat model, supported versions, and reporting process.

Roadmap

The first push focuses on hardening the local runtime, persistence, tests, and CI. Next comes a real adapter layer for task execution, more local runtimes, stronger approvals, and a mobile layout pass.

See ROADMAP.md for the Now/Next/Later plan.

Contributing

Contributions are welcome. Start with CONTRIBUTING.md, keep npm run build green, and include screenshots for UI changes.

License

Meridian OS is released under the MIT License.

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

333 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages