xAgent
xAgent is a local-first AI agent platform that gives each agent its own identity, memory, workspace, and ongoing life.
Interact with your agents through the terminal, Web UI, voice, Feishu, or Weixin, and manage them from a unified interactive launcher.
Features
- Local-first — Agent data is stored on your own machine.
- Independent agents — Each agent has its own identity, memory, diary, workspace, skills, tasks, logs, and channel state.
- Multiple interfaces — Use xAgent from the terminal, Web UI, voice, Feishu, or Weixin.
- Unified management — Create, configure, and manage agents from one interactive launcher.
- External execution — Connect hardware or software devices to the Agent API and call their declared capabilities through one generic tool.
Requirements
- Python 3.10 or later
Installation
Install with the official script
curl -fsSL https://raw.githubusercontent.com/ZJCODE/xagent/main/install.sh | bash
Install with pip
pip install myxagent
Getting Started
After installation, launch xAgent with:
xagent
The interactive launcher will guide you through creating and managing your agents.
Each Agent runs one persistent core. The public API starts by default; Feishu, Weixin and Voice connect only when requested:
xagent run --agent atlas # foreground
xagent start --agent atlas # background
xagent channel feishu connect --agent atlas
xagent channel feishu disconnect --agent atlas
xagent status --agent atlas
xagent logs --agent atlas --follow
xagent restart --agent atlas
xagent stop --agent atlas
In the terminal launcher, use Runtime → Start, then Channel → API / Feishu /
Weixin / Voice → Connect / Disconnect. Each channel shows its actual state;
Refresh updates the available actions, and configuration remains accessible
when the Agent is stopped. You can also use Channels → Connect / Disconnect
in the Web client or the channel commands above.
Restarting returns to API-only startup; channels.api.enabled: false
keeps the public API offline too. An explicit --channels api,feishu overrides
this default for one launch. CLI and local Web chat use the same core, even
with the public API disconnected.
Restart drains accepted work without waiting for a new diary-generation model call;
ordinary Stop still attempts final diary maintenance. Configuration and identity
edits take effect after restart. Interrupted tasks
with uncertain execution or delivery wait for review instead of replaying.
See runtime operation and recovery for details and validation.
For external devices, pair them in Agent → Devices without editing configuration
or restarting the Agent. All chat users can discover and use paired devices. Devices
connect to /ws/devices/{device_id} on its existing API port and declare
their own capabilities; Agent calls use one generic device tool. Chat remains
on /ws/chat, with its existing protocol. There is no additional service to start.
See device execution and protocol for pairing,
protocol details, and a runnable software device example.
Updating
Update xAgent without changing how it was installed:
xagent update
Local Data
All xAgent data is stored locally in:
~/.xagent/
Agent-specific data is stored under:
~/.xagent/agents/
Uninstallation
If xAgent was installed with the official installation script:
uv tool uninstall myxagent
If xAgent was installed with pip:
pip uninstall myxagent
Uninstalling the CLI does not delete data stored under:
~/.xagent/
Remove that directory manually only when you no longer need your local agent data.
License
xAgent is released under the MIT License.
Metadata
Release files for myxagent 0.3.37
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| myxagent-0.3.37-py3-none-any.whl | Python 3 | none | any | Details |
Release files / myxagent-0.3.37-py3-none-any.whl
| Download URL | myxagent-0.3.37-py3-none-any.whl |
|---|---|
| Size | 680.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d6644ebbff421ac7ddc2473720de0d0175ae75a40e822a6159ea549400c41f9c
|
|
BLAKE2b-256 checksum How to use checksums |
df7515f89674f33ada228fae1f3eb5e3670b8119c6eed7e597fa87114afdeea7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.13
|