Matterbridge eve room with history
September 20, 2026 · View on GitHub
This plugin shows how to use the Matter history and how to create a passive device in Matterbridge.
It creates a virtual air quality sensor device (Matter 1.2 so not all controllers show it) with air quality, TVOC, temperature and humidity that continuously changes state.
If you like this project and find it useful, please consider giving it a star on GitHub and sponsoring it.
Prerequisites
Matterbridge
See the guidelines on Matterbridge for more information.
Style guide
See also the Style Guide for JSDoc, naming, and logging conventions used in this repository.
Repository toolchain
Note: This repository uses a new toolchain. It replaces the traditional TypeScript / ESLint / Prettier / Jest stack with a faster and lighter setup.
- No
typescript 6.xpackage — replaced by TypeScript Native 7.x. - No ESLint, no Prettier — replaced by the oxc stack: oxlint for linting and oxfmt for formatting.
- No Jest — replaced by Vitest, which is much faster and natively supports ESM without extra configuration.
- Far fewer development dependencies — the number of installed packages drops from ~600 to ~75. A clean install is much faster.
- Much faster linting and formatting — oxlint and oxfmt run in a fraction of the time required by the ESLint / Prettier pipeline.
- Much faster builds — tsgo compiles the project in a fraction of the time required by the standard
tscbuild. - Editor support — use the VS Code extensions for tsgo and oxc to get the same experience in the editor.
Shared agent instructions
All coding agents read the same guidance. AGENTS.md and .agents/ are the single source of truth; everything under .github/, .claude/, .codex/ and .antigravity/ are pointers and mirrors. Edit .agents/ (or AGENTS.md), never the copies. See .agents/README.md for the full layout.
| File | Notes |
|---|---|
AGENTS.md | Main project instructions — shared by every agent |
.agents/README.md | Layout and versioning of the shared instructions |
.agents/rules/testing.instructions.md | Testing standards for unit tests |
.agents/rules/matterbridge.instructions.md | Creating endpoints and using the single-class devices |
.agents/rules/plugin-frontend.instructions.md | Serving a plugin's own frontend SPA and REST API |
.agents/rules/chip-tests.instructions.md | The CHIP conformance test harness |
.agents/skills/verify-agent-context/SKILL.md | Verify the agent loaded this context — $verify-agent-context (Codex), /verify-agent-context (all others) |
Content lives only in .agents/. The per-agent folders exist because each tool discovers rules and skills from its own hardcoded location, so they hold stubs that point back here — except where the tool reads .agents/ natively.
| Tool | Instructions | Rules | Skills |
|---|---|---|---|
| Codex | AGENTS.md — read natively | .agents/rules/ — linked from AGENTS.md, on demand | .agents/skills/ — native, $verify-agent-context |
| Copilot (VS Code and coding agent) | .github/copilot-instructions.md → AGENTS.md | stubs in .github/instructions/ — applyTo globs | stub in .github/skills/ — /verify-agent-context |
| Claude Code | CLAUDE.md imports AGENTS.md | stubs in .claude/rules/ — paths globs | stub in .claude/skills/ — /verify-agent-context |
| Gemini / Antigravity | GEMINI.md imports AGENTS.md | .agents/rules/ — on demand | .agents/skills/ — native, /verify-agent-context |
Copilot instructions
| File | Notes |
|---|---|
.github/copilot-instructions.md | Pointer to AGENTS.md — always loaded |
.github/instructions/chip-tests/chip-tests.instructions.md | CHIP conformance test harness — scoped to CHIP test files |
.github/instructions/matterbridge/matterbridge.instructions.md | Matterbridge endpoint guide — dedicated Copilot instruction file |
.github/instructions/plugin-frontend/plugin-frontend.instructions.md | Plugin frontend SPA and custom REST API guide — scoped to frontend and plugin code |
.github/instructions/testing/testing.instructions.md | Testing standards — scoped to **/*.test.ts |
.github/skills/verify-agent-context/SKILL.md | Skill invocable as /verify-agent-context |
Claude instructions
| File | Notes |
|---|---|
CLAUDE.md | Pointer to AGENTS.md — always loaded |
.claude/settings.json | Claude permissions: allow, ask and deny rules |
.claude/rules/chip-tests/chip-tests.instructions.md | CHIP conformance test harness — scoped to CHIP test files |
.claude/rules/matterbridge/matterbridge.instructions.md | Matterbridge endpoint guide — loaded for all contexts |
.claude/rules/plugin-frontend/plugin-frontend.instructions.md | Plugin frontend SPA and custom REST API guide — scoped to frontend and plugin code |
.claude/rules/testing/testing.instructions.md | Testing standards — scoped to **/*.test.ts |
.claude/skills/verify-agent-context/SKILL.md | Skill invocable as /verify-agent-context |
Codex instructions
| File | Notes |
|---|---|
AGENTS.md | Main project instructions — read directly, no pointer file needed |
.codex/config.toml | Codex project permissions, approvals, and profile |
.codex/rules/default.rules | Codex command allow, prompt, and deny rules |
Codex reads the shared rules and skills from .agents/ directly; the skill is invoked as $verify-agent-context.
Gemini / Antigravity instructions
| File | Notes |
|---|---|
GEMINI.md | Pointer to AGENTS.md — always loaded |
.antigravity/settings.json | Sandboxing and permissions: allow, ask and deny rules |
The shared rules under .agents/rules/ apply on demand for the relevant tasks, and .agents/skills/ is discovered automatically as /verify-agent-context.
Development guide
Refer to the Matterbridge Development guide for other guidelines.