Install Eniyan on your computer

Eniyan’s tools for your computer come in one Python package, eniyan, on PyPI. Pick your system and what you want to set up, and this page shows the exact commands for it. The address bar keeps your choices, so you can share the link.

On EACH 1, that is the gates your agents work through: files, websites, email, card checkouts and, on the Scale tier, agent-to-agent traffic. You need an account and, for the gates, an enrolled agent. Start with the quickstart if you have neither.

Your computer

Pick your computer and what you want to set up. The steps below follow.

Operating system
Install with
What do you want to set up?

“See what’s on this computer” (eniyan-scan) is a PACH 1 feature: EACH 1 (team) accounts cannot turn it on, so it is not listed here.

Install steps for macOS

Commands are for your terminal (bash or zsh).

1 · Get Python 3.10 or newer

Eniyan needs Python 3.10 or newer. Check what you have:

bash
python3 --version

If it prints Python 3.9.6, that is the copy that comes with Apple’s Command Line Tools, and it is too old. pip will not say so. It fails like this instead:

text
ERROR: Could not find a version that satisfies the requirement eniyan[scan] (from versions: none)
ERROR: No matching distribution found for eniyan[scan]

Install a current Python from python.org or with Homebrew:

bash
brew install python

2 · Install Eniyan with pipx

You will install eniyan[browser]>=0.9. The part in brackets adds what your choices need:

  • browser: for the real-browser engine (Playwright); it includes mcp

Keep the double quotes around it. They stop your shell from reading the brackets (zsh, the macOS default, refuses them) and from reading >= as a redirect.

Install pipx

With Homebrew:

bash
brew install pipx

Install Eniyan

bash
pipx install "eniyan[browser]>=0.9"
pipx inject --include-apps --force eniyan playwright

The second line puts Playwright’s own command next to eniyan’s. You need it once, further down this page, to download the browser. Keep --force: the browser extra already installed Playwright, and without it pipx changes nothing.

Put the commands on your PATH

bash
pipx ensurepath

This adds ~/.local/bin to your PATH. Open a new terminal so it takes effect.

If pip says “externally-managed-environment”

text
error: externally-managed-environment
× This environment is externally managed

Your system’s Python is protecting itself (Homebrew’s Python does this). Use pipx or a virtual environment, the methods on this page. Do not pass --break-system-packages.

3 · Connect your AI tools

Enroll an agent in the dashboard, then open its Connect screen. It has a ready config for Claude Code, a .mcp.json file, Cursor, the Python SDK, eniyan-fs and eniyan-web. Paste the one for your AI tool.

Each gate needs two secrets from the dashboard:

  • ENIYAN_API_KEY: your organization’s API key, from API keys.
  • ENIYAN_CREDENTIAL_TOKEN: the agent’s credential, shown once on the Connect screen. Get a fresh token issues a new one and revokes the old one.

Keep these secrets out of shared files

Put them in your own user-level config. Never commit a .mcp.json that holds them to a repository, or paste them into a file other people can read.

Desktop apps started from the Dock may not see ~/.local/bin. If your AI tool says it cannot find a command, put its full path in the config’s command. Find it with:

bash
which eniyan-mcp

Write the path out in full, like /Users/you/.local/bin/eniyan-mcp: configs do not expand ~.

Your files (eniyan-fs)

ENIYAN_FS_ROOTS lists the folders your agent may reach, as alias=path pairs separated by colons, for example projects=/Users/you/code:notes=/Users/you/notes. Each path must be a folder that exists. Anything outside is refused on your computer. See Governed local files.

Websites (eniyan-web)

The sites your agent may visit are set on the agent’s dashboard page, never in the config. eniyan-web has two engines: a plain HTTP fetch (the PACH 1 default) and a real browser (the EACH 1 default). Check which one your agent uses on its dashboard page.

The real browser needs Chromium, downloaded once:

bash
playwright install chromium
  • Run playwright install chromium again after Playwright is upgraded.
  • Playwright supports macOS 14 or later.
  • The Connect screen adds ENIYAN_WEB_ENGINE=browser, ENIYAN_WEB_HEADLESS=0 (a visible window, so you can complete sign-ins) and ENIYAN_WEB_PROFILE_DIR. Point that at an empty folder just for this agent, never your own browser profile.
  • The engine must also be set to Real browser on the agent’s dashboard page, or the gate refuses to start.

The browser download is kept in Playwright’s browser folder, not in eniyan’s install.

Upgrade later

bash
pipx upgrade eniyan

An upgrade keeps the extras you installed with. To add one later, install again with the new list:

bash
pipx install --force "eniyan[browser]>=0.9"
pipx inject --include-apps --force eniyan playwright
  • Run playwright install chromium again if Playwright was upgraded.
  • Restart your AI tool so it starts the new version of each gate.

Uninstall

Remove the package:

bash
pipx uninstall eniyan
  • Remove the Eniyan entries from your AI tools’ MCP settings.
  • The Chromium download stays in Playwright’s folder: ~/Library/Caches/ms-playwright. Delete it if nothing else uses it.

Troubleshooting on macOS

“command not found” (or “not recognized”)
The folder the commands are in, ~/.local/bin, is not on your PATH. Run pipx ensurepath and open a new terminal.
“from versions: none” or “No matching distribution found for eniyan”
Your Python is older than 3.10, so pip sees no release it can install. Go back to step 1. On a Mac, this is usually Apple’s Python 3.9.6.
“error: externally-managed-environment”
Your system Python refuses installs from pip. Use pipx or a virtual environment. Do not pass --break-system-packages.
“eniyan-fs needs the mcp extra” (or eniyan-mcp, eniyan-web)
The package was installed without the extras. Install it again with them:
bash
pipx install --force "eniyan[browser]>=0.9"
pipx inject --include-apps --force eniyan playwright
“the browser engine needs the browser extra”
Install again with browser in the brackets (the command above), then run playwright install chromium.
“this agent’s dashboard config does not enable the browser engine”
Switch the engine to Real browser on the agent’s dashboard page, or remove ENIYAN_WEB_ENGINE=browser from the config to use fetch.
The first web page fails, but the gate started
Chromium starts only at the first page, so a missing browser shows up there. Run playwright install chromium.

All systems at a glance

The recommended install for each system. Pick a system above for the full steps.

SystemRecommended installCheck your Python
macOSbrew install pipx, then pipx install "eniyan[browser]>=0.9"python3 --version (Apple’s 3.9.6 is too old)
Windowspy -m pip install --upgrade "eniyan[browser]>=0.9" (or pipx, uv tool, a virtual environment)py --version
Linux desktoppipx (apt or dnf), then pipx install "eniyan[browser]>=0.9"; or a virtual environmentpython3 --version (Ubuntu 22.04, Debian 12, Fedora and later are fine)
Linux server or containerpipx install "eniyan[browser]>=0.9", or a virtual environmentpython3 --version (RHEL 8 and 9: install python3.12)
WSLpipx install "eniyan[browser]>=0.9", or a virtual environmentpython3 --version

The package shown carries this page’s default choices (the gates, with the real browser EACH 1 agents use by default). The steps above add what the others need, including the one-time browser download. Every system needs Python 3.10 or newer. Keep the double quotes around the package in every shell.