Skip to main content
A project is an AI assistant with its knowledge files, its channels, and its workflows. The jelou project subcommand manages the project lifecycle; jelou channels connects the project to messaging channels; and the sync commands (link, pull, status, push, incoming) bring the project’s workflows down to local files and back.
“Brain” is the legacy name for “project”. --brain is accepted as an alias of --project in jelou link and jelou channels, and several API-level fields keep the brain name — but the canonical name is project.

jelou project

Knowledge

Upload documents for the assistant to use as a knowledge base. Supported formats: PDF, TXT, CSV (max. 2 MB per file).

Publish and restore

project delete is cascading and irreversible: it deletes the project, its workspace, its default skill, and its sandbox channel. publish and restore affect production immediately, and deleting a knowledge file triggers a re-training (responses may change). Run project show and confirm before destructive operations.

jelou channels

Connect a project to messaging channels. CLI-only, channels create supports --type web (web widget). WhatsApp, Facebook, and Instagram channels require OAuth: WhatsApp is connected with jelou channels activate (Meta’s sign-in flow, no credentials to paste), while Facebook and Instagram can only be created from the dashboard.
--type is exact: Facebook means Messenger DMs only, Facebook_Feed is the page’s comments inbox (previously invisible to the CLI); same pattern for Instagram/Instagram_Feed. Connecting a Facebook page is only half the job — each skill needs its own Facebook channel entry, added in Studio, or the engine finds no workflow for that traffic and nothing replies.
channels connect overwrites without warning: if the channel already had a connection, re-pointing it routes real users to the new destination on the next incoming message. Verify both destinations before connecting.

Sync workflows (local ↔ server)

To edit a project’s workflows as local files, first link the directory to the project with jelou link, then pull (pull), review (status), edit, and push (push).
It writes jelou.yml (team-shared link — version it in git) and .jelou/state.json (local state — add it to .gitignore; the CLI does it automatically).
jelou link, pull, and push write local files. They require a clean git worktree or an empty directory. If the directory is dirty or not versioned, the CLI stops; use --allow-dirty only after confirming.

pull, status, push

Need the full picture, not just sync status? jelou context --agent returns the same drift information as status in a single call, plus identity, the AI model allowlist, secret names, database inventory, and the node-type catalog — replacing the status + secret list + models list + databases list + workflow node-spec --list sequence for agents that want the whole startup context at once.

jelou incoming — resolving concurrent edits

If a pull detects that the server changed a workflow that you also edited locally, it preserves the server version under .jelou/incoming/ and exits with code 7. Resolve each artifact before running pull again:
accept-local performs a CAS check against the recorded server hash: if the server diverged since the artifact was captured, it refuses with NEW_REMOTE_DRIFT. Run mark-resolved and then pull to see the new divergence.