x-use 2.0.0
The v2 relaunch of twitter-automation-ai: an installable package, a proper CLI, and a first-class MCP server. The automation engine is unchanged; everything around it is new.
Highlights
- One-line installers for Windows, macOS, and Linux (
install.ps1/install.sh): clone, venv, install, config bootstrap, andx-use doctorin a single command - New CLI:
x-use init(interactive setup wizard),x-use run,x-use doctor(preflight checks),x-use mcp - MCP server over stdio with 9 tools, so Claude Desktop, Claude Code, Cursor, and other MCP clients can post, reply, search, and engage directly
- Draft mode on by default: write tools return reviewable drafts and nothing reaches X until
approve_draftis called - Installable from PyPI:
pip install x-use-mcp(PyPI rejected the barex-usename as too similar to an existing project;import xuseand thex-usecommand are unchanged)
What changed since v1
- Packaging: src-layout
src/xuse/package,pyproject.toml, Python 3.10+ floor,x-useconsole script, project-root anchoring that survives install location - CLI: Typer app with in-memory
--accountand--pipelinescoping (config files never mutated) - MCP: 9 tools on the official MCP Python SDK (FastMCP, pinned
mcp>=1,<2), lazy per-account browser session pool with idle reaping, persistent draft store indata/drafts.jsonl, structured secret-sanitized error envelopes - LLM keys: env /
.envoverrides aboveconfig/settings.json, placeholder rejection from both sources, key values never logged - Engine fixes: FileHandler now honors the configured
processed_tweets_file; proxy poolhashstrategy pins accounts with sha256 (stable across restarts); engagement count parsing handles lowercasek/msuffixes and comma separators - Pipeline names shared between the CLI and MCP
run_cycleviaxuse/pipelines.py - Security:
config/accounts.jsonuntracked (shipsaccounts.example.json), cookie paths explicitly gitignored,get_metricsvalidates account ids against path traversal - Tests: 148 pytest tests (pure logic, MCP contract/drafts/sessions, CLI, env keys) plus CI on Python 3.10/3.11/3.12
- Docs: README rewritten, ARCHITECTURE.md and BEST_PRACTICES.md refreshed, CONFIG_REFERENCE.md now covers the
mcpsettings block
Upgrade notes
- Python 3.10 or newer is required
- The legacy
python src/main.pyentry point still works via a deprecation shim (removal no earlier than v2.1) - Config file formats are unchanged; existing
config/settings.jsonandconfig/accounts.jsonkeep working