The eesel CLI
Reference for the eesel CLI: install with npx, sign in once, then connect apps, download knowledge, create automations, approve held actions and chat with your agent from a terminal.
The eesel CLI puts your teammate in your terminal. Chat with it, set up a website chat bubble, connect your helpdesk, upload knowledge, wire up automations, and approve held actions, all without opening the dashboard.
It's the same agent either way. Anything you set up in the CLI shows up in the dashboard, and the other way round. Every command prints JSON, so an AI coding agent (Claude Code, Cursor, Codex) can run your whole setup for you.
Installing
Nothing to install. With Node.js 18.17 or newer:
npx @eesel/cli init chat-bubble --site https://your-site.comThat works with no account: it creates a free anonymous workspace ($5 of usage, 7 days) and eesel login later keeps it. If you'd rather type eesel than npx @eesel/cli, either of these puts an eesel command on your PATH:
npm install -g @eesel/clicurl -fsSL https://dashboard.eesel.ai/eesel-cli/install | shThe rest of this page writes eesel ...; npx @eesel/cli ... is the same thing.
Logging in
eesel login # opens your browser once; credentials are stored locally
eesel whoami # who you're signed in as, and which workspace
eesel logout # forget the stored credentialsYou don't have to log in first. eesel init with no stored login creates an anonymous workspace and stores its credentials, so the setup commands work straight away; eesel login afterwards signs you in (or up) and makes that workspace yours, keeping everything in it. An anonymous workspace has $5 of usage and lasts 7 days; a claimed one gets the normal $50 trial and dashboard access. If your account already has a workspace, the login tells you and leaves both alone.
The link eesel login prints lasts five minutes. If it opens to a JSON error rather than a sign-in page, that browser has no eesel session yet: sign in at dashboard.eesel.ai, then run eesel login again.
Credentials land in ~/.config/eesel/credentials.json, readable only by you. To point the CLI at a workspace without a browser (CI, a server), set EESEL_API_URL and EESEL_API_TOKEN instead; they take precedence over the stored login.
The five-minute setup
eesel init chat-bubble picks or creates an agent, adds the chat bubble channel and prints the embed snippet to paste into your site. With a site (--site, or the homepage field in the repo's package.json) the agent also starts reading it, so the bubble answers from your own pages. Plain eesel init only picks or creates the agent and connects nothing. Everything is safe to re-run: existing setup is reused, never duplicated.
Then test it without leaving the terminal:
Chatting with your agent
Conversations persist between commands: a plain eesel chat "..." keeps talking in the current one. If it returns nothing, that conversation has hit an error; eesel new starts a fresh one and the next eesel chat works again. eesel sessions list shows them, eesel sessions use <id> switches, eesel sessions show prints one.
In the interactive prompt, /new, /sessions, /agents, /show and /quit do what they say.
Anything not listed on this page is something you ask the agent for in chat: searching your knowledge, running an analysis, emailing someone, checking back on something tomorrow.
Setting up and observing
These are the dashboard's buttons, from the terminal. They're free; only chat is billed work.
Run any command with --help for its full reference.
On a new workspace a write from the CLI, an instruction edit or an automation, is held for a person to approve; eesel approvals lists it. A connect that comes back held may not be listed there, so check eesel status for that one, and if a person needs the link to approve it in the tool, ask: eesel chat "give me the connect link for <platform>".
Working with several agents
Commands act as one agent. Pass --agent <id-or-name> for one invocation, or set a default with eesel agents use <agent>. A one-agent workspace needs neither.
Using eesel from Claude Code, Cursor or another MCP client
Every workspace is also an MCP server. One command prints everything a client needs, including a ready-to-paste claude mcp add line:
See Claude Code & MCP clients.
Scripting
--agent <id-or-name>
Act as this agent for one command
--fields a,b.c
Keep only these keys in the output
--dry-run
Print the exact server call a write would make, without sending it
--help
The full reference for a command
Output is JSON on purpose: single results are pretty-printed, lists are one object per line. Errors are one JSON line on stderr, {error, hint, retryable}; exit code 1 is a usage error, 2 a runtime one. The hint says what to run instead, which is what makes the CLI usable by an AI agent without a human reading the docs.
Environment variables: EESEL_API_URL and EESEL_API_TOKEN configure the CLI without a login (this is how the eesel sandbox and CI drive it), and EESEL_AGENT_ID picks the agent there.
If you installed the CLI before September 2026
The earlier eesel command was a standalone Python script. It's retired for customer use; the npm package above replaced it. Check which eesel first: if it points at ~/.local/bin/eesel, that is the old script, and re-running the install line leaves it answering. Delete it, then install from npm and log in again. Verbs it had for skills, tasks and workspace settings are now things you ask the agent for in chat, and the CLI tells you the new spelling if you type an old one.
Common questions
Related
Claude Code & MCP clients to use your agent from an MCP client
Network Access to let your agent reach your own APIs
Automations and Schedules for triggers and schedules
The package on npm
Last updated