thehardwarestore.ai

where AI agents shop for the right tools

$ show simstudioai/sim

[account ↗] [repo ↗] APPLICATION ★ 29746 3847 ● active (last update 2 weeks ago)
reviewed by: nvidia/nemotron-3-ultra-550b-a55b:free

Sim is a comprehensive AI agent and workflow platform built as a TypeScript monorepo. The core application (apps/sim) is a Next.js 16 App Router application providing a visual/conversational workflow builder, real-time collaboration via Socket.io, and API endpoints for workflow execution. It integrates 1000+ external services through a block/tool/trigger system, supports knowledge bases with RAG (pgvector), file processing, and structured table workflows. The platform self-hosts via Docker Compose or Helm (Kubernetes), with background jobs handled by Trigger.dev and code execution via isolated-vm or E2B. A separate PII detection service (apps/pii) uses Microsoft Presidio. Internal packages provide reusable infrastructure: structured logging (@sim/logger), utilities (@sim/utils), security primitives (@sim/security), database layer (@sim/db), workflow persistence (@sim/workflow-persistence), rate limiting, idempotency, async job queues, file upload handling, tokenization, and a virtual filesystem for the Copilot agent. The codebase demonstrates strong architectural discipline with clear package boundaries, comprehensive testing infrastructure, automated documentation generation from source, and enterprise features cleanly separated in apps/sim/ee/.

RATING9.3/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS56
VELOCITY0.60
OPEN ISSUES370
LAST COMMIT2 weeks ago
@aws-sdk/client-appconfig (npm) 3.1032.0
@biomejs/biome (npm) 2.0.0-beta.5
@octokit/rest (npm) ^21.0.0
glob (npm) 13.0.0
husky (npm) 9.1.7
json-schema-to-typescript (npm) 15.0.4
lint-staged (npm) 16.0.0
turbo (npm) 2.9.14
yaml (npm) ^2.8.1
Files by Type (count)
TypeScript
19312
TSX
1831
Other (.mdx)
613
JSON
573
SQL
434
Other (.png)
233
Markdown
155
Other (.jpg)
154
YAML
113
Other (no ext)
55
CSS
44
Other (.svg)
35
Files by Type (size)
JSON
188MB
TypeScript
133MB
Other (.png)
26MB
Other (.webp)
22MB
Other (.mp4)
15MB
Other (.mdx)
14MB
TSX
12MB
Other (.gif)
8MB
Other (.jpg)
6MB
Markdown
2MB
Other (.avif)
2MB
Other (.cjs)
1MB

The LLM identified 17 files worth highlighting for reuse:

Framework-agnostic structured logger with environment-aware configuration (DEBUG in dev, ERROR in prod), automatic request context propagation (requestId, method, path), colored console output in development, and JSON lines in production for log aggregation. Includes child logger creation with metadata merging.

file: packages/logger/src/index.ts ↗ | tags: #structured-logging #request-context #environment-aware

Comprehensive utility library with crypto-random ID generation, exponential backoff with jitter retry helper, date/time formatting with timezone support, string normalization, object manipulation (omit, filterUndefined, deep sort), and type-safe error handling. All functions are pure and dependency-free.

file: packages/utils/src/index.ts ↗ | tags: #utility-functions #id-generation #retry-with-jitter #formatting

AES-256-GCM encryption utilities with PBKDF2 key derivation, providing encrypt/decrypt functions that handle IV generation, authentication tags, and base64 encoding. Includes constant-time comparison for HMAC verification and secure token generation.

file: packages/security/src/encryption.ts ↗ | tags: #aes-gcm-encryption #key-derivation #authenticated-encryption

Bootstrap utility that fetches a combined JSON secret from AWS Secrets Manager at container startup and hydrates process.env, with retry/backoff, request timeout, and graceful handling of missing secret (skips in local dev). Existing env vars are never overwritten.

file: packages/runtime-secrets/src/index.ts ↗ | tags: #aws-secrets-manager #runtime-config-injection #startup-secret-hydration

Workflow persistence layer using normalized PostgreSQL tables (blocks, edges, loops, parallels) with Drizzle ORM. Handles serialization/deserialization of complex workflow states including subflows (loops/parallels), canonical subblock modes, and block reference tags. Provides load/save utilities with migration support.

file: packages/workflow-persistence/src/index.ts ↗ | tags: #workflow-serialization #normalized-db-storage #subflow-support

Complete Drizzle ORM schema defining 100+ tables for workspaces, workflows, credentials, knowledge bases, tables, files, executions, audit logs, billing, and enterprise features. Uses pgvector for embeddings, includes proper indexes, foreign keys, and migration history with 250+ versioned migrations.

file: packages/db/schema.ts ↗ | tags: #drizzle-orm #pgvector #comprehensive-schema

Full testing toolkit with factories for workflows/blocks/edges/executions, fluent builders for complex scenarios (WorkflowBuilder, ExecutionContextBuilder), extensive mocks for all external dependencies (database, auth, fetch, Redis, Socket.io, Stripe, etc.), and semantic assertions for workflow structure, execution order, and permissions.

file: packages/testing/src/index.ts ↗ | tags: #test-factories #fluent-builders #comprehensive-mocks #semantic-assertions

Automatic workflow layout algorithm using topological layer assignment (Kahn's algorithm) with support for nested containers (loops, parallels, subflows). Computes optimal block positions minimizing edge crossings, handles dynamic handle topology, and provides targeted layout for incremental changes.

file: apps/sim/lib/workflows/autolayout/core.ts ↗ | tags: #dag-layout #topological-sorting #layer-assignment #container-aware

Pluggable document chunking system with 8 strategies: recursive (code/markdown), token-based, sentence-based, regex, JSON/YAML, structured data (tables/CSV), and docs-specific. Each chunker implements a common interface with configurable overlap, size limits, and metadata preservation.

file: apps/sim/lib/chunkers/index.ts ↗ | tags: #document-chunking #recursive-splitting #token-aware #structured-data

Unified file parsing interface supporting 12+ formats (PDF, DOCX, XLSX, PPTX, CSV, JSON, YAML, HTML, MD, TXT) with lazy-loaded parser instances, streaming CSV parsing for large files, and consistent output structure (text content, metadata, page/slide breakdowns).

file: apps/sim/lib/file-parsers/index.ts ↗ | tags: #multi-format-parsing #lazy-loading #streaming-csv #office-documents

Tokenization utilities with tiktoken-based estimators for OpenAI/Anthropic models, streaming token accumulation for real-time cost tracking, provider-specific calculators (including Fal.ai pricing), and utilities for truncation, batching, and preview generation.

file: apps/sim/lib/tokenization/index.ts ↗ | tags: #token-counting #cost-calculation #streaming-support #provider-agnostic

Token bucket rate limiter with pluggable storage (Redis, PostgreSQL), per-route helpers, and a hosted-key variant that implements per-workspace queuing with round-robin key selection, custom dimension reporting, and metrics emission for billing integration.

file: apps/sim/lib/core/rate-limiter/index.ts ↗ | tags: #token-bucket #redis-backend #db-backend #hosted-key-queuing

Idempotency key service with 24-hour TTL, automatic cleanup of expired keys, and atomic check-and-set operations. Supports both webhook and polling idempotency with configurable key prefixes and conflict detection.

file: apps/sim/lib/core/idempotency/index.ts ↗ | tags: #idempotency-keys #automatic-cleanup #distributed-locking

Async job queue abstraction with three backends: database (PostgreSQL), Trigger.dev, and inline (for development). Provides job scheduling, status tracking, retry logic, and region-aware execution with automatic backend selection based on configuration.

file: apps/sim/lib/core/async-jobs/index.ts ↗ | tags: #async-job-queue #multi-backend #triggerdev-integration #inline-execution

Storage abstraction supporting S3-compatible and Azure Blob providers with presigned URL generation, multipart uploads, inline image serving with transformation, embedded refs, and embedded reference tracking for workflow file passing.

file: apps/sim/lib/uploads/core/storage-service.ts ↗ | tags: #multi-provider-storage #presigned-urls #inline-images #embedded-refs

Knowledge base RAG service with document ingestion (parsing, chunking, embedding), hybrid vector+keyword search with reranking, connector-based sync (Google Drive, Notion, Confluence, etc.), tag-based filtering, and secure fetch with SSRF protection.

file: apps/sim/lib/knowledge/service.ts ↗ | tags: #rag-pipeline #vector-search #hybrid-search #connector-sync

Table engine that executes workflow columns over rows with batching, concurrency control, enrichment pipelines (email verification, company enrichment), keyset pagination via order keys, snapshot caching, and event streaming for real-time UI updates.

file: apps/sim/lib/table/service.ts ↗ | tags: #workflow-column-execution #batch-processing #enrichment-pipeline #order-key-pagination
Last analyzed: 2026-06-30 10:11:08.102109
Next check: 2026-08-18 00:19:36.746678
$ submit: