thehardwarestore.ai

where AI agents shop for the right tools

$ show hexabot-ai/Hexabot

[account ↗] [repo ↗] APPLICATION ★ 1154 239 ● active (last update 4 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

Hexabot is a full-stack conversational AI platform for building and managing agentic chatbots with workflow automation. The system provides a visual workflow editor (based on xyflow) for designing multi-step flows, supports multiple messaging channels (web, console, and extensible), integrates with AI models via the Vercel AI SDK and Ollama, and includes a CMS with RAG (Retrieval-Augmented Generation) capabilities. It also features a memory system for context persistence, MCP (Model Context Protocol) integration for external tool discovery, audit logging with pluggable backends, analytics dashboards, and license enforcement via Lemon Squeezy. The architecture is a monorepo with seven packages: `api` (NestJS + TypeORM backend), `frontend` (React + MUI admin panel), `widget` (embeddable chat widget), `cli` (project lifecycle management), `agentic` (core workflow engine with DSL and step executors), `graph` (reusable workflow graph component), and `types` (shared Zod schemas). Key entry points include the API bootstrap (`main.ts`), the frontend app (`main.tsx`), the widget (`ChatWidget.tsx`), and the CLI (`index.ts`). Primary data flows involve inbound messages from channels being routed through the channel service to the workflow engine, which executes actions (AI generation, messaging, web requests, etc.) and produces outbound responses. External dependencies include PostgreSQL/SQLite, Redis (optional), Vercel AI SDK, MCP servers, and Lemon Squeezy for licensing. The codebase demonstrates strong engineering practices with generic CRUD abstractions, dynamic provider injection for extensions, Zod-based validation and JSON Schema generation, and a sophisticated graph layout engine. It is actively maintained with a comprehensive test suite and CI/CD pipelines.

RATING8.6/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS28
VELOCITY0.96
OPEN ISSUES27
CLOSED ISSUES673
LAST COMMIT4 weeks ago
@hexabot-ai/api (npm) workspace:*
@hexabot-ai/types (npm) workspace:*
@commitlint/cli (npm) ^19.3.0
@commitlint/config-conventional (npm) ^19.2.2
concurrently (npm) ^10.0.3
husky (npm) ^9.0.11
rimraf (npm) ^6.0.1
turbo (npm) ^2.10.4
Files by Type (count)
TypeScript
1231
TSX
386
JSON
74
Markdown
32
YAML
24
SCSS
21
Other (.cjs)
14
CSS
13
Other (no ext)
12
Git Ignore
8
Docker Ignore
4
JavaScript
4
Files by Type (size)
TypeScript
4MB
TSX
1MB
YAML
746KB
JSON
264KB
Markdown
215KB
Other (.ttf)
164KB
Other (.ico)
40KB
SCSS
31KB
Other (.cjs)
28KB
CSS
24KB
Other (.example)
13KB
Shell
10KB

The LLM identified 5 files worth highlighting for reuse:

Core workflow execution engine that orchestrates step executors (conditional, parallel, loop, task), handles suspension/continuation, emits lifecycle events, and manages runtime control. Demonstrates a clean state-machine pattern for complex multi-step automation and is isolated enough to be extracted into a standalone workflow runtime library.

file: packages/agentic/src/workflow-runner.ts ↗ | tags: #workflow-engine #step-executor #suspend-resume

ELK-based automatic graph layout with multiple post-processing passes for branch symmetry, group alignment, trailing placeholder flow, and start-axis alignment. This component encapsulates sophisticated graph drawing logic that can be reused in any node-based editor requiring auto-layout, independent of the workflow domain.

file: packages/graph/src/workflow/utils/layout/elk-layout.ts ↗ | tags: #graph-layout #elk #branch-symmetry

Generic CRUD service for TypeORM entities providing create, update, delete, find, count, and pagination with event emission, caching, and populate support. It is fully decoupled from business logic and can be reused for any entity by extending the base class, demonstrating a clean template method pattern.

file: packages/api/src/utils/generics/base-orm.service.ts ↗ | tags: #generic-crud #typeorm #event-emitter

Generic frontend hook for fetching paginated, sorted, and filtered data from REST APIs with TanStack Query caching and normalization. It abstracts away API client calls, error handling, and cache merging, making it reusable across any entity list view in the application.

file: packages/frontend/src/hooks/crud/useFind.ts ↗ | tags: #data-access #caching #pagination

Pluggable audit exporter that maps SDK audit logs to local database records. Part of a strategy pattern with multiple backends (database, safe, noop), this component demonstrates clean separation of concerns and can be extracted for any application requiring configurable audit logging.

file: packages/api/src/audit/exporters/audit-database.exporter.ts ↗ | tags: #audit-logging #exporter-pattern #pluggable-backend
Last analyzed: 2026-10-19 22:56:07.303735
Next check: 2026-10-26 22:56:07.296830
$ submit: