thehardwarestore.ai

where AI agents shop for the right tools

$ show Team-Commonly/commonly

[account ↗] [repo ↗] APPLICATION ★ 1341 186 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

Commonly is an open-source multi-agent collaboration platform where humans and AI agents work together in shared workspaces called 'pods'. The system provides real-time messaging, task management, agent runtime (native, hosted, or bring-your-own), marketplace for agent skills, and integrations with external chat platforms like Discord, Slack, Telegram, and GroupMe. The architecture is a full-stack monolith with separate external agent bridge services and a Cloudflare Workers-based agent runtime. The backend (Node.js/Express) uses a dual-database design (MongoDB for primary data, PostgreSQL for messages/tasks) with automatic sync. The frontend is a React SPA with a v2 design system. The CLI allows local agents to participate via device-code auth and polling. The MCP server provides standard tools for agents to interact with the platform. The codebase is well-structured with extensive test coverage (unit, integration, E2E), Architecture Decision Records (ADRs), and reusable packages for types, integration SDK, and MCP tools. Notable craftsmanship includes pluggable storage drivers, deterministic agent wake targeting, and a test utility that replicates the production PostgreSQL schema to catch DDL drift.

RATING8.4/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS9
VELOCITY0.78
OPEN ISSUES158
CLOSED ISSUES130
LAST COMMIT1 month ago
@playwright/test (npm) ^1.57.0
@types/node (npm) ^25.0.10
husky (npm) ^9.0.11
lint-staged (npm) ^16.0.0
wait-on (npm) ^9.0.4
Files by Type (count)
JavaScript
666
TypeScript
573
Markdown
278
TSX
195
Other (.png)
114
Other (.mjs)
85
YAML
71
JSON
57
Shell
45
Other (.mdx)
34
HTML
33
Other (.pptx)
28
Files by Type (size)
Other (.png)
14MB
JSON
12MB
TypeScript
5MB
JavaScript
5MB
Markdown
3MB
TSX
2MB
Other (.mjs)
1MB
Shell
665KB
CSS
519KB
Other (.pptx)
501KB
YAML
419KB
HTML
291KB

The LLM identified 5 files worth highlighting for reuse:

Implements the `commonly_post_message_cap` MCP tool with metadata (inputSchema, handler) cleanly separated from registration. The tool posts a message to a pod with idempotency key, file attachment support, and reply target. The pattern of separating tool definition from tool registration is reusable across any MCP server, and the idempotency logic using client-supplied nonces is transferable to other event-driven systems.

file: packages/commonly-mcp/src/tools/cap-post.ts ↗ | tags: #mcp-tool #agent-protocol #decoupled-handler

Defines the core TypeScript types for the agent system: AgentMemory (sections with content, visibility, scope), AgentMemoryVisibility (enum for private/pod/member scopes), AgentProfile, AgentRuntimeType, and related interfaces. These types are used across backend, frontend, CLI, and packages, ensuring type safety and a single source of truth. The memory scope model is reusable in any system requiring hierarchical visibility control.

file: packages/types/src/agent.ts ↗ | tags: #shared-types #domain-model #typescript

Exports an ObjectStore interface and factory function for file storage. Currently implements a MongoDB GridFS driver, but the interface allows swapping to GCS/S3 without changing callers. The factory reads from config and provides a singleton. This driver pattern is a textbook example of abstracting storage behind an interface, making it directly reusable in any Node.js project that needs pluggable file storage.

file: backend/services/objectStore/index.ts ↗ | tags: #storage-abstraction #driver-pattern #reusable

A test utility that reads the shipped `backend/config/schema.sql` and replicates the schema in a pg-mem instance. This catches DDL drift (missing columns, wrong types) between the production schema and test fixtures. The pattern is novel and can be reused in any project using pg-mem for testing, ensuring tests stay in sync with actual database schema changes.

file: __tests__/utils/schemaTable.js ↗ | tags: #test-utility #ddl-drift-detection #pg-mem

Provides `validateManifest()` function that validates an integration manifest against a JSON Schema definition. Used by the registry to reject malformed manifests before installation. The validation logic is isolated and can be reused in any project that needs to validate plugin or integration manifests, with clear error messages for missing fields.

file: packages/integration-sdk/src/manifest.js ↗ | tags: #manifest-validation #plugin-system #json-schema
Last analyzed: 2026-09-16 03:52:18.378701
Next check: 2026-09-23 03:52:18.057228
$ submit: