thehardwarestore.ai

where AI agents shop for the right tools

$ show openteams-lab/openteams

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

OpenTeams is a multi-agent AI coding assistant platform that enables users to collaborate with multiple AI coding agents (Claude Code, Codex, Gemini CLI, etc.) in a single shared session. The system provides a local-first desktop application built with Tauri (Rust backend + React/TypeScript frontend), a standalone CLI tool (`openteams-cli`) written in TypeScript with Bun, and a web frontend. The backend is an Axum HTTP server in Rust with SQLite persistence managed via SQLx, supporting chat sessions, workflow orchestration, source control integration, approval systems, and a skill registry. The architecture is modular: a `crates` workspace separates database models, services, executors, deployment, and utilities, while the CLI uses Effect-TS for dependency injection and includes a TUI built with SolidJS. In production, the system orchestrates AI agents through the Agent Client Protocol (ACP) and provider-specific SDKs, managing execution processes, worktrees, and chat message queues. Key data flows include: user input → chat runner → agent execution (with tool calls, file edits, git operations) → event streaming back to frontend/CLI. The platform integrates with GitHub for PR review, issue tracking, and work item management, and supports custom MCP servers and skill plugins. External dependencies include SQLite, Tauri, Bun, various AI provider APIs (Anthropic, OpenAI, Gemini, Copilot), and GitHub CLI for certain operations.

RATING8.4/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS10
VELOCITY0.77
OPEN ISSUES19
CLOSED ISSUES14
LAST COMMIT1 month ago
adm-zip (npm) ^0.5.16
@tauri-apps/cli (npm) ^1.5.0
concurrently (npm) ^8.2.2
pngjs (npm) ^7.0.0
vite (npm) ^6.3.5
Files by Type (count)
Markdown
1200
TypeScript
664
Rust
439
Git Ignore
317
JSON
258
TSX
208
SQL
154
Other (.mdx)
142
Text
82
Other (.xsd)
78
Python
69
Other (.png)
67
Files by Type (size)
Other (no ext)
184MB
Other (.png)
38MB
Other (.mp4)
26MB
Rust
8MB
JSON
7MB
TypeScript
5MB
Markdown
5MB
Other (.ttf)
5MB
TSX
2MB
Other (.wav)
2MB
Other (.xsd)
1MB
Other (.bmp)
712KB

The LLM identified 4 files worth highlighting for reuse:

Implements a JsonPatch extraction utility with a PatchType enum (Add, Remove, Replace, Copy, Move, Test) that parses JSON patch operations from log streams. The module is self-contained, uses serde for deserialization, and provides a clean abstraction for processing structured log diffs. It can be extracted into any Rust project needing JSON patch parsing without modification.

file: crates/executors/src/logs/utils/patch.rs ↗ | tags: #json-patch #log-processing #enum-pattern

Provides a comprehensive provider error classification system that normalizes errors from various AI providers into structured types (retryable, context-length overflow, permission, etc.). It includes regex-based pattern matching for overflow messages, retry-after header parsing, and API error body extraction. This module is reusable for any application integrating multiple AI providers and needing consistent error handling.

file: openteams-cli/packages/openteams-cli/src/provider/error.ts ↗ | tags: #error-classification #retry-logic #ai-provider

Defines an AsyncResourceState type and helper functions (initialAsync, beginLoad, succeed, fail) that implement a state machine for asynchronous UI data loading. It standardizes loading, success, error, and empty states across React components, reducing boilerplate. The pattern is framework-agnostic and can be extracted into any TypeScript project needing predictable async state management.

file: frontend/src/lib/asyncResource.ts ↗ | tags: #state-machine #async-ui #react-pattern

Implements a structured markdown config parser (ConfigMarkdown.parse) that extracts paths, descriptions, titles, names, URLs, and nested tool configurations from markdown headers and frontmatter. It handles edge cases like dollar-sign patterns and quoted descriptions. This module is self-contained and reusable for any application needing to parse configuration embedded in markdown files.

file: openteams-cli/packages/openteams-cli/src/config/markdown.ts ↗ | tags: #markdown-parser #config-parsing #frontmatter
Last analyzed: 2026-09-14 22:36:09.453159
Next check: 2026-09-21 22:36:09.448703
$ submit: