The eesel CLI
The eesel CLI runs your AI agent from a terminal. Install with npx, sign in once, then connect apps, add knowledge, set up automations and approve actions.
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 that lasts 7 days and eesel login later keeps it. See Pricing for the trial you get once you sign in. 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 free 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. It opens the eesel sign-in page. Type your email; it then asks for an emailed code, your password, or a Google sign-in, whichever your account uses, and shows an Authorize button for the CLI. A browser with no eesel session is fine; that's the normal first run. Add --no-browser on a machine with no browser and open the link elsewhere.
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 that command's reference, eesel --help for the whole list.
Writes from the CLI, such as an instruction edit, an automation or a file upload, follow the same action permissions as everything else. A write whose action is set to ask a person first is held until someone approves it (see Actions and approvals), and a viewer's writes are always held for an editor. eesel approvals lists anything held and works on every kind of login, including an anonymous workspace. If eesel integrations connect answers that it's waiting for approval, that one may not be listed there, so check eesel status instead, 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.
FAQ
Related
Claude Code & MCP clients to use your agent from an MCP client
Set up from Claude Code or the terminal for a full setup in commands
Network Access to let your agent reach your own APIs
Automations and Schedules for triggers and schedules
The package on npm
Last updated