Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@jelou/cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@jelou/cli
Command-line tool for the Jelou platform — manage serverless functions, brains (AI projects), channels, WhatsApp bots and campaigns, marketplace apps, organization secrets, and Datum databases from one CLI.
Built for humans and AI coding agents alike: every command supports --json
output, --describe introspection, and --no-input for CI. Agent skills
auto-install into Claude Code, Cursor, Codex, and Windsurf on login so AI
editors can drive the CLI from natural language.
Products covered:
- Functions — serverless TypeScript on Deno Subhosting (
define()/app()SDK) - Brains — AI projects with knowledge files
- Channels — connect brains to Web, WhatsApp, or other surfaces
- WhatsApp — bots, HSM templates, bulk campaigns
- Datum — managed PocketBase databases
- Marketplace — browse and install platform apps
- Secrets — organization-level secrets
Install
v1.0.0 has not been published yet. The
@jelou/cli@0.2.13currently on npm is the older Functions-only CLI and does not match the commands documented below. Until v1.0.0 ships, install from source:
git clone https://github.com/JelouLatam/jelou-cli.git
cd jelou-cli
deno install -A -f -n jelou --global ./mod.tsVerify the installation:
jelou --versionnpm, JSR, and platform binaries (Linux x64/arm64, macOS x64/arm64, Windows x64) land with the v1.0.0 release.
Local development build (jelou-dev)
When hacking on the CLI, you usually want a binary on PATH that's separate from
the released jelou so the two don't fight over the same skills dir or muscle
memory:
deno task bundle # compile the current platform binary → dist/jelou-dev
deno task link # symlink ~/.local/bin/jelou-dev → dist/jelou-dev
deno task unlink # remove the symlink (only if it points at this repo)After deno task link, run the dev binary as jelou-dev (which is what your
shell history and any agent scripts will see, so a slip-up calling the released
jelou is obvious).
The dev binary skips skill auto-install on jelou-dev login so it doesn't
silently overwrite the released CLI's skills. To install dev skills for testing,
run jelou-dev agent install --global explicitly — the rendered SKILL.md
files get a banner and rewrite every bare jelou to jelou-dev in the body so
AI agents drive the dev binary you're testing.
Pick a different link target with JELOU_DEV_LINK_DIR=/some/path, or pass
--force to overwrite an existing symlink that points elsewhere.
Quick Start
# Authenticate
jelou login
# Create a new function
mkdir my-function && cd my-function
jelou functions init
# Start local dev server with hot reload
jelou functions dev
# → http://localhost:3000
# Deploy to production
jelou functions deploy
# → https://my-function.fn.jelou.aiAgent Setup
jelou ships with agent skills for Claude Code, Cursor, Codex, and other AI
editors. After logging in, they auto-install into any detected editor so a fresh
session knows how to drive the CLI from natural language:
deno install -A -f -n jelou --global jsr:@jelou/cli
jelou login # skills auto-install for detected editorsOpen a new session in your editor and ask something like "create a brain in
jelou", "list my databases", "send a WhatsApp campaign", or "list my
channels" — the right jelou command gets invoked for you.
The CLI ships with these skills:
| Skill | Covers |
|---|---|
jelou |
Install, login, profiles, JSON mode, --describe, troubleshooting |
jelou-functions |
functions init / dev / deploy / logs / rollback / list / info / create / delete / secrets / tokens / cron / deployments |
jelou-datum |
datum databases / collections / api-keys / triggers / plans |
jelou-brain |
brain list / show / create / update / delete / knowledge, plus channel list / create / connect / disconnect (channels are brain wiring) |
jelou-whatsapp |
bot list, template list / show / create / update / delete / upload-media, campaign list / show / create / cancel / reschedule |
jelou-marketplace |
marketplace list / install / installed |
jelou-secret |
secret list / set / delete (organization secrets) |
Manage skills manually any time:
jelou agent install --global # all skills, detected agents only
jelou agent install --global --all-targets # all skills, every supported agent (including those not yet installed locally)
jelou agent install --global --only datum # just one product
jelou agent install --global --only brain,whatsapp # multiple
jelou agent install --global --api # Functions API variant--all-targets is useful when an agent is installed after jelou login — or
when you're about to install one and want the skills already in place. Cursor
specifically gets a copy (not a symlink) because its skill loader doesn't accept
YAML frontmatter; the SKILL.md is rewritten to an H1 + **Description:** shape
that Cursor reads.
Opt out of auto-install during login with jelou login --skip-skills.
Commands
| Group | Command | Description |
|---|---|---|
| Auth | jelou login |
Authenticate with your access token |
jelou logout |
Remove stored credentials | |
jelou whoami |
Show current identity and scopes | |
jelou auth list |
List saved profiles | |
jelou auth switch |
Switch active profile | |
jelou auth remove |
Remove a saved profile | |
| Workflow | jelou functions init |
Scaffold a new function project |
jelou functions dev |
Local dev server with hot reload | |
jelou functions deploy |
Deploy to production | |
jelou functions rollback |
Roll back to a previous deployment | |
jelou functions logs |
Stream or fetch function logs | |
| Manage | jelou functions deployments |
List, inspect, download deployments |
jelou functions |
List, create, delete functions | |
jelou functions secrets |
Manage environment secrets | |
jelou functions tokens |
Manage access tokens | |
jelou functions cron |
View cron schedules | |
| Brain | jelou brain list |
List all brains |
jelou brain show |
View brain details | |
jelou brain create |
Create brain (full setup) | |
jelou brain update |
Update brain name/description | |
jelou brain delete |
Delete a brain | |
jelou brain knowledge list |
List knowledge files | |
jelou brain knowledge upload |
Upload a file (max 2MB) | |
jelou brain knowledge delete |
Remove a knowledge file | |
jelou bot list |
List WhatsApp bots for the company | |
jelou template list |
List HSM templates for a bot | |
jelou template get <id> |
Show an HSM template by id | |
jelou template create |
Create a new HSM template | |
jelou template update <id> |
Update a template (APPROVED/REJECTED only) | |
jelou template delete <id> |
Delete a template | |
jelou template upload-media <f> |
Upload media and get a CDN URL | |
| Datum | jelou datum databases list |
List all databases |
jelou datum databases create |
Create a new database | |
jelou datum databases show <id> |
Show database details | |
jelou datum databases update <id> |
Update a database | |
jelou datum databases delete <id> |
Delete a database | |
jelou datum api-keys list <db> |
List API keys for a database | |
jelou datum api-keys create <db> |
Create an API key | |
jelou datum api-keys delete |
Delete an API key | |
jelou datum api-keys regenerate |
Regenerate an API key | |
jelou datum triggers list <db> |
List triggers for a database | |
jelou datum triggers create <db> |
Create a trigger | |
jelou datum triggers show |
Show trigger details | |
jelou datum triggers update |
Update a trigger | |
jelou datum triggers delete |
Delete a trigger | |
jelou datum triggers pause |
Pause a trigger | |
jelou datum triggers resume |
Resume a trigger | |
jelou datum plans list |
List available plans | |
| Marketplace | jelou marketplace list |
Browse available apps |
jelou marketplace install <slug> |
Install an app (OAuth flow) | |
jelou marketplace installed |
List installed apps | |
| Secrets | jelou secret list |
List organization secrets |
jelou secret set <NAME> |
Set or update a secret | |
jelou secret delete <NAME> |
Delete a secret | |
| Channels | jelou channel list --brain <id> |
List channels for a brain |
jelou channel create --brain <id> |
Create a channel | |
jelou channel connect <id> --brain <id> |
Connect to bot/agent | |
jelou channel disconnect <id> --brain <id> |
Disconnect channel | |
| Setup | jelou agent install |
Install Jelou skills into AI coding agents |
| Campaigns | jelou campaign list |
List bulk WhatsApp campaigns |
jelou campaign get <id> |
Show a campaign by id | |
jelou campaign create |
Create a bulk campaign from config + CSV | |
jelou campaign cancel <id> |
Cancel a scheduled or in-progress campaign | |
jelou campaign reschedule <id> |
Reschedule a campaign to a new time |
Run jelou <command> --help for flags and usage details.
Profiles
Multiple accounts (or environments) can coexist as named profiles. No more logging in and out when switching between staging and production.
# First login creates a profile (you pick the name)
jelou login
# → Profile name: production
# Add a second account
jelou login --token <staging-token> --profile staging
# List profiles
jelou auth list
# Profile Identity Type Active
# production token "prod" PAT ✓
# staging jelou:42 API Key
# Switch active profile
jelou auth switch staging
# One-shot override (does not change active profile)
jelou functions deploy --profile production
# Remove a profile
jelou auth remove stagingCredential Resolution
When resolving which credentials to use, the CLI checks (highest priority first):
JELOU_TOKENenvironment variable--profile <name>flag (one-shot, does not persist)JELOU_PROFILEenvironment variableactiveProfilein~/.jelou/credentials.json
Migration from Single-Account
Existing ~/.jelou/credentials.json files are automatically migrated to the
multi-profile format on first access. A .bak backup is created. No action
required.
CI / Non-Interactive Mode
Every command works headlessly in CI pipelines.
export JELOU_TOKEN=sk_your_token_here
jelou functions deploy --no-confirm --json | jq '.data.url'--no-inputdisables all prompts (auto-detected whenCI=trueor stdin is not a TTY)--jsonoutputs{ "ok": true, "data": ... }to stdout
See the full CI reference for per-command flags and GitHub Actions examples.
Configuration
| Source | Purpose |
|---|---|
jelou.json |
Project config (function slug, entrypoint) |
~/.jelou/ |
User credentials (multi-profile) and API URL |
JELOU_TOKEN |
Access token (highest priority, overrides profiles) |
JELOU_PROFILE |
Select a named profile without --profile flag |
JELOU_API_URL |
API base URL override |
See the full configuration reference for details.
Documentation
- CLI Reference — full command docs, flags, CI usage, troubleshooting
- SDK Guide —
define()API, context, validation, testing
License
Copyright 2026 Jelou Inc. All rights reserved.
See LICENSE for details.