# dcupl Documentation > dcupl is a TypeScript SDK, a CLI and a Console that give your app and your coding agent one typed model of your data. This file indexes the documentation for AI agents. These docs describe @dcupl/core 2.1 and @dcupl/cli 2.0. Every page is also available as markdown: append `.md` to its URL (for example https://docs.dcupl.com/sdk/quick-start.md). ## Full text The full text of the docs, one file per section; each fits into one agent context. - [Getting started](https://docs.dcupl.com/llms-getting-started.txt): ~4k tokens - [SDK](https://docs.dcupl.com/llms-sdk.txt): ~50k tokens - [SDK advanced patterns](https://docs.dcupl.com/llms-sdk-advanced.txt): ~39k tokens - [SDK guides](https://docs.dcupl.com/llms-sdk-guides.txt): ~59k tokens - [SDK API reference](https://docs.dcupl.com/llms-sdk-api.txt): ~72k tokens - [CLI](https://docs.dcupl.com/llms-cli.txt): ~23k tokens - [Agentic](https://docs.dcupl.com/llms-agentic.txt): ~6k tokens - [Console](https://docs.dcupl.com/llms-console.txt): ~53k tokens - [Learn](https://docs.dcupl.com/llms-learn.txt): ~60k tokens - [Playground](https://docs.dcupl.com/llms-playground.txt): ~1k tokens - [All sections](https://docs.dcupl.com/llms-full.txt): every page in one file, ~366k tokens; more than most agent contexts hold, prefer the section files ## Getting started - [Introduction to dcupl](https://docs.dcupl.com/introduction): What dcupl gives coding agents, what it is technically (SDK, CLI, Console, REST API), where it fits and where it does not ## SDK - [TypeScript SDK](https://docs.dcupl.com/sdk): The dcupl SDK is the in-memory query engine under dcupl: define typed models, load data from any source and query them in the browser or in Node.js, with… - [Quick start](https://docs.dcupl.com/sdk/quick-start): Build a filterable product list in 5 minutes - [Setup options](https://docs.dcupl.com/sdk/setup-options): Choose between Console + Loader (recommended), the Loader with your own files, or an SDK-only setup - [Quick reference](https://docs.dcupl.com/sdk/reference): One-page cheat sheet for the most common dcupl SDK calls - [Compatibility](https://docs.dcupl.com/sdk/compatibility): The versions these docs describe, the Node.js and TypeScript versions dcupl needs, the browser targets and the package version rule - [Core concepts](https://docs.dcupl.com/sdk/core-concepts): Understanding the fundamentals of the dcupl SDK - [Models](https://docs.dcupl.com/sdk/core-concepts/models): Define the structure and schema of your data with properties, types, and references. - [Lists](https://docs.dcupl.com/sdk/core-concepts/lists): Filtered views of your data - create, query, and manage independent data views. - [Query overview](https://docs.dcupl.com/sdk/core-concepts/query-overview): Understanding the dcupl query structure, groups, and conditions for building complex queries. - [Data management](https://docs.dcupl.com/sdk/core-concepts/data-management): Loading, updating, and managing your data with dcupl's data API. - [Query methods & operators](https://docs.dcupl.com/sdk/queries/methods-operators): Guide to building and changing a list query. The full method reference is the Catalog API. - [Basic filtering](https://docs.dcupl.com/sdk/queries/query-filter): Filter data using conditions with addCondition(). The foundation of dcupl queries - add conditions to narrow down results based on field values, types, and… - [Text search](https://docs.dcupl.com/sdk/queries/query-search): Search text fields with the find operator. Wrap the search term in slashes, like /shoe/, to match it anywhere in the value (the text between the slashes is a… - [Range queries](https://docs.dcupl.com/sdk/queries/query-range): Filter by numeric ranges and date comparisons using gt, gte, lt, lte operators. Use setGroup with "and" type to combine range conditions. Perfect for price… - [Query logic](https://docs.dcupl.com/sdk/queries/query-logic): Combine conditions with AND/OR logic. Conditions on different attributes are combined with AND, conditions on the same attribute with OR. For any other… - [Deep queries](https://docs.dcupl.com/sdk/queries/query-deep): Query nested objects, referenced entities, and arrays using dot notation and wildcards. Access deeply nested data structures for filtering across model… - [Query results](https://docs.dcupl.com/sdk/queries/query-results): Retrieve filtered data with items(). Control result ordering with sort, limit data with pagination (start/count), and reduce payload size with projection. - [catalog.fn.facets()](https://docs.dcupl.com/sdk/fn/facets): Get unique values with counts for building filter UIs. Returns the distinct values of an attribute with how many items match each value under the list's… - [catalog.fn.aggregate()](https://docs.dcupl.com/sdk/fn/aggregate): Compute numeric statistics (sum, avg) and count, min/max, distinct values and groups on any attribute, for analytics dashboards, KPI displays, and data… - [catalog.fn.suggest()](https://docs.dcupl.com/sdk/fn/suggest): Provides autocomplete suggestions for an attribute. Returns the distinct values that match the user input, with the keys of the items that have each value… - [catalog.fn.groupBy()](https://docs.dcupl.com/sdk/fn/group-by): Group items by an attribute value and compute aggregations for each group. Perfect for creating categorized lists, calculating group statistics, and building… - [catalog.fn.pivot()](https://docs.dcupl.com/sdk/fn/pivot): Create multi-dimensional pivot tables for cross-tabulation analysis. Organize data into rows and columns with aggregated values at each intersection. - [catalog.fn.metadata()](https://docs.dcupl.com/sdk/fn/metadata): Returns metadata about the list and its data. Provides information about the model, current query state, item counts, available attributes, and views. - [Derived properties](https://docs.dcupl.com/sdk/advanced/derived-properties): Automatically compute property values from references - [Expression properties](https://docs.dcupl.com/sdk/advanced/expression-properties): Create dynamic computed fields using template expressions - [Quality & validation](https://docs.dcupl.com/sdk/advanced/quality-validation): Validate data quality and enforce business rules - [Performance optimization](https://docs.dcupl.com/sdk/advanced/performance): Optimize dcupl for speed and efficiency with large datasets - [Caching strategies](https://docs.dcupl.com/sdk/advanced/caching): How dcupl caches query results per list, when it drops those caches, and the options that control them - [Faceted search](https://docs.dcupl.com/sdk/advanced/faceted-search): Use facets() for filter options and addCondition() for filtering - [Master-detail](https://docs.dcupl.com/sdk/advanced/master-detail): Look up the selected item by key and load related data with query conditions - [Pagination & infinite scroll](https://docs.dcupl.com/sdk/advanced/infinite-scroll): Use items() with start and count for pagination - [Search & autocomplete](https://docs.dcupl.com/sdk/advanced/search-autocomplete): Use suggest() for autocomplete and query conditions for search - [Real-time updates](https://docs.dcupl.com/sdk/advanced/realtime-updates): Use list.onResultChange() and data.upsert() to handle live data changes - [TypeScript usage guide](https://docs.dcupl.com/sdk/guides/typescript): Type dcupl results, queries and events in TypeScript - the exported types, the methods that take a generic, and typed patterns - [How to test dcupl applications](https://docs.dcupl.com/sdk/guides/testing): Unit testing, mocking, and integration testing patterns for dcupl SDK - [Debugging with Console](https://docs.dcupl.com/sdk/guides/debugging): Connect your running app to Console for live inspection - [Error handling](https://docs.dcupl.com/sdk/guides/error-handling): Handle errors gracefully in dcupl applications - types, catching, recovery, and debugging - [Common mistakes](https://docs.dcupl.com/sdk/guides/common-mistakes): Avoid these beginner pitfalls when working with dcupl - [Production deployment](https://docs.dcupl.com/sdk/guides/deployment): Deploy dcupl applications to production with confidence - [Production debugging and monitoring](https://docs.dcupl.com/sdk/guides/production-debugging): Set up error tracking, performance monitoring, and alerting for dcupl applications in production - [Migration guide](https://docs.dcupl.com/sdk/guides/migration): Upgrade from SDK 1.x to 2.0 — the behaviour changes, and the query API method names introduced with 2.0 - [Hybrid data loading](https://docs.dcupl.com/sdk/guides/hybrid-data): Combine Console data with runtime models and local data - [Scripts and script modes](https://docs.dcupl.com/sdk/guides/scripts): Run your own JavaScript inside a dcupl instance — the five script modes, how a script is dispatched on script_type, and the endpoint contract - [Load from the console](https://docs.dcupl.com/sdk/guides/load-from-console): Load a console project into your app with the loader, from project ID and key to versions, applications and environments - [API reference](https://docs.dcupl.com/sdk/api): Complete reference for every class, method, and type in the dcupl SDK - [Query operators reference](https://docs.dcupl.com/sdk/api/query-operators): Complete reference for all dcupl SDK query operators - [Dcupl class API](https://docs.dcupl.com/sdk/api/dcupl): Complete API reference for the main Dcupl class - [Models API](https://docs.dcupl.com/sdk/api/models): Complete API reference for the dcupl Models API - [Lists API](https://docs.dcupl.com/sdk/api/lists): Complete API reference for the dcupl Lists API - [Catalog API](https://docs.dcupl.com/sdk/api/catalog): Complete API reference for the dcupl Catalog API - [Data API](https://docs.dcupl.com/sdk/api/data): Complete API reference for the dcupl Data API - [DcuplAppLoader API](https://docs.dcupl.com/sdk/api/loader): Complete API reference for DcuplAppLoader - configuration fetching, resources, variables, and transformers - [Type definitions](https://docs.dcupl.com/sdk/api/types): Index of the dcupl SDK's TypeScript types, with a link from each type to the page that documents its fields, defaults and examples - [Functions API reference](https://docs.dcupl.com/sdk/api/functions): The global dcupl.fn.* form, its query rule and errors, and an index of the six analysis functions - [Events reference](https://docs.dcupl.com/sdk/api/events): Complete reference for all dcupl events - subscribe to data changes, query updates, and lifecycle events ## CLI - [Installation](https://docs.dcupl.com/cli/installation): Install the dcupl CLI and verify your setup - [CLI quickstart](https://docs.dcupl.com/cli): Scaffold a dcupl project, run it locally, connect it to the Console and push your files. The app, validate and files commands answer in JSON with --json. - [How the CLI works](https://docs.dcupl.com/cli/how-it-works): How the dcupl CLI bridges your workspace, the local daemon and the dcupl cloud, and why an agent can drive it with --json - [Scaffolding & code generation](https://docs.dcupl.com/cli/scaffolding): Stop writing boilerplate by hand. The dcupl CLI scaffolds entire projects and generates individual artifacts — models, TypeScript types, JSON schemas… - [Local data apps](https://docs.dcupl.com/cli/local-data-apps): A local data app is a running dcupl SDK instance — a daemon — that lives on your machine. Ingest data into it, build it, then query, facet, and aggregate… - [Cloud sync & configuration](https://docs.dcupl.com/cli/cloud-sync): Connect your local workspace to a dcupl Console project, then keep the two in sync. The CLI tracks what changed on each side and transfers only the… - [CLI workflows](https://docs.dcupl.com/cli/workflows): Workflow templates describe an automation as a node graph — triggers wired to steps — stored as JSON. This page walks the dev loop: scaffold a template… - [Validating a project](https://docs.dcupl.com/cli/validate): dcupl validate is a one-shot health check. It loads a project, classifies any errors it hits, and reports empty or auto-generated models — without starting a… - [CI/CD integration](https://docs.dcupl.com/cli/ci-cd): Automate dcupl file sync in your CI/CD pipeline — credentials from CI secrets, then a forced push in which the repository wins - [CLI commands reference](https://docs.dcupl.com/cli/commands): Every command family the dcupl binary exposes — search by command or description, filter by family, and copy any signature. - [Inspecting schemas](https://docs.dcupl.com/cli/schemas): Discover the exact fields of any dcupl schema with dcupl schemas list and get ## Agentic - [Agentic](https://docs.dcupl.com/agentic): Let an AI agent build it for you. The dcupl CLI is designed to be driven by agents — paired with the dcupl skill in Claude Code, an agent can scaffold… - [Agentic setup](https://docs.dcupl.com/agentic/setup): Get an AI agent building dcupl projects in three steps: install the CLI, install the dcupl skill in Claude Code, then confirm the agent can drive both. The… - [The dcupl skill](https://docs.dcupl.com/agentic/the-skill): The dcupl plugin installs one skill, dcupl: a SKILL.md plus reference files for querying, model authoring, workflows, scripts and cloud sync. Claude loads it… - [Agentic recipes](https://docs.dcupl.com/agentic/recipes): Each recipe pairs a plain-language prompt with the exact CLI commands the agent runs — and what you get back. Watch how the dcupl skill turns a request into a… - [Why it works](https://docs.dcupl.com/agentic/why-it-works): The design choices that make dcupl agent-friendly — structured output, an explicit lifecycle, stateful daemons, and schema discovery. ## Console - [dcupl Console](https://docs.dcupl.com/console): Where things are in the dcupl Console, how to start your first project and which pages to read for your role - [Your first console project](https://docs.dcupl.com/console/getting-started): Create a project, import a CSV, check the model the console infers, run the application and load it from your own code - [Applications](https://docs.dcupl.com/console/applications): How project files become a running dcupl application you can browse and query - [Loader configuration](https://docs.dcupl.com/console/loader): The anatomy of dcupl.lc.json — resources, tags, applications and environments - [Sources](https://docs.dcupl.com/console/sources): What the source picker in the top bar selects, and what changes when you switch it - [Models in the Console](https://docs.dcupl.com/console/models): A model is a shape, not the rows — what Create Model writes and where the values come from - [Importing data](https://docs.dcupl.com/console/data-import): The three things the import form does — a file, a model, and a line in the loader config - [API keys](https://docs.dcupl.com/console/api-keys): The three key types, the keys a project starts with, what a scoped key covers, and why it fails at load time - [Scripts in the Console](https://docs.dcupl.com/console/scripts): Write a dcupl script in the file editor and run it against your loaded application before you deploy it - [Workflows](https://docs.dcupl.com/console/workflows): Build automated data processing pipelines with the visual workflow editor - [Getting started with workflows](https://docs.dcupl.com/console/workflows/getting-started): Build your first workflow in the dcupl Console - [Reporting](https://docs.dcupl.com/console/workflows/reporting): Get notified when workflows fail and receive daily or weekly digests - [Workflow template reference](https://docs.dcupl.com/console/workflows/reference): The workflow template JSON, what a script node sees, how config templates resolve, how to call a deployed workflow, and the runtime limits - [REST APIs](https://docs.dcupl.com/console/rapi): Deploy auto-generated REST APIs from your dcupl data models - [Scripted endpoints](https://docs.dcupl.com/console/rapi/scripted-endpoints): Add your own HTTP routes to a REST API instance — declare endpoints in the template, write the script, deploy, call - [MCP endpoint](https://docs.dcupl.com/console/rapi/mcp): Let an AI agent query a REST API instance over MCP — turn it on, connect Claude Code or any MCP client, the tools it gets, and how to test it - [MCP for agents](https://docs.dcupl.com/console/rapi/mcp-agents): What an AI agent gets from a dcupl instance over MCP — the tools, the per-instance guide, the query conventions, and the first five calls an agent should make ## Learn - [Learn dcupl](https://docs.dcupl.com/learn): Resources to help you master dcupl. - [Learning path](https://docs.dcupl.com/learn/getting-started): Your recommended learning path to master dcupl - from the Quick Start to production-ready applications - [Concepts](https://docs.dcupl.com/learn/concepts): Understand the ideas behind dcupl and how its components work together. - [Architecture](https://docs.dcupl.com/learn/concepts/architecture): Understand how the dcupl SDK, Console, and workflows fit together - [Data flow](https://docs.dcupl.com/learn/concepts/data-flow): Follow data from source to query result through the dcupl pipeline - [dcupl vs alternatives](https://docs.dcupl.com/learn/concepts/dcupl-vs-alternatives): Compare dcupl with Firebase, Supabase, TanStack Query, Redux, and search services to understand when to use each - [Glossary](https://docs.dcupl.com/learn/concepts/glossary): Definitions of dcupl-specific terms and concepts - [Tutorials](https://docs.dcupl.com/learn/tutorials): Step-by-step guides to help you build with dcupl. Start with the Quick start and Build your first dcupl application; the other tutorials build on them. - [Build your first dcupl application](https://docs.dcupl.com/learn/tutorials/first-app): Create a working dcupl application from scratch in 15 minutes - [Build a product catalog with filtering](https://docs.dcupl.com/learn/tutorials/product-catalog): Create a product catalog with faceted navigation, dynamic filter counts, multi-select and a reusable filter manager - [Real-time data updates](https://docs.dcupl.com/learn/tutorials/real-time-updates): Learn how to handle dynamic data updates, partial refreshes, and reactive UI patterns with dcupl - [Building with React](https://docs.dcupl.com/learn/tutorials/react-integration): Integrate dcupl with React for reactive data management, filtering, and real-time updates - [Building with Vue](https://docs.dcupl.com/learn/tutorials/vue-integration): Integrate dcupl with Vue 3 for reactive data management, filtering, and real-time updates - [Best practices](https://docs.dcupl.com/learn/best-practices): Patterns and recommendations for building production-ready dcupl applications. These guides cover data modeling, performance optimization, and error handling… - [Data modeling best practices](https://docs.dcupl.com/learn/best-practices/data-modeling): How to structure your data models effectively for performance and maintainability - [Performance best practices](https://docs.dcupl.com/learn/best-practices/performance): The principles behind fast dcupl applications, with links to the SDK performance guide - [Error handling best practices](https://docs.dcupl.com/learn/best-practices/error-handling): Error handling principles and app-level recovery patterns for robust dcupl applications ## Playground - [Playground](https://docs.dcupl.com/playground): Try dcupl in the browser: load a demo catalog, then filter, facet and search it step by step.