Introduction
Kalup keeps a HubSpot portal's configuration in TypeScript files, and gives your app its types from the same files
Kalup keeps a HubSpot portal's configuration (objects, property groups, properties and custom object schemas) in TypeScript files in your repository. The same files give your app its types, so a renamed property or a removed option fails at compile time instead of in production.
Start here
| You are | Read |
|---|---|
| New to Kalup | Getting started, then How Kalup works |
| A developer wiring Kalup into an app | Config files, Property builders, Types and codecs |
| An admin working through Claude Code or another agent | Working with AI agents |
| An AI agent | Working with AI agents, JSON output, Exit codes, Errors |
What this version does
Six commands, all read-only. None of them writes to a portal.
| Command | What it does |
|---|---|
kalup init | Create kalup.config.ts, pin the first target and pull it |
kalup pull | Read a target and write kalup/objects/*.ts |
kalup validate | Check the config files and report every issue, offline |
kalup ir | Print the IR document derived from the config files |
kalup fmt | Rewrite the config files in canonical form |
kalup status | Show each target: key, portal check, account, scopes |
Planning and applying changes (compare, plan, snapshot, docs, apply) come in the next releases. Running one of them today prints not implemented yet and exits 1.
Every command takes --json and prints one envelope/1 document, with fixed exit codes.
The docs
| Section | What it covers |
|---|---|
| Concepts | How Kalup works, Targets and credentials, Addresses, Types and codecs |
| Config | Config files and the grammar, kalup.config.ts, Property builders |
| Commands | One page per command: usage, options, output, exit codes and errors |
| Guides | Working with AI agents |
| Reference | JSON output, Exit codes, Errors, Network and safety |
Docs as Markdown
Every page is also served as plain Markdown, for agents and scripts:
| URL | Returns |
|---|---|
/docs/<page>.md, for example /docs/commands/pull.md | One page as Markdown |
/docs/<page> with the header Accept: text/markdown | The same Markdown |
/llms.txt | An index of every page with its title and URL |
/llms-full.txt | Every page in one file |
Packages
| Package | What it is |
|---|---|
kalup | The CLI, binary kalup |
@kalup/core | The runtime your app imports: builders, codecs, InferProperties, the config grammar and the IR. No dependencies, no network, no file system |
Kalup is an independent open-source project maintained by Scopious. It is not affiliated with, endorsed by, or sponsored by HubSpot, Inc. HubSpot is a registered trademark of HubSpot, Inc.