doc(readme): add PyPI badge and pip / curl install methods - #761
Conversation
Add a PyPI version badge and a 'Run on your machine' Quick Start path (uv/pip install of xagent-ai, or curl https://get.xagent.co | sh), keeping Docker as the teams/self-hosting option. Kept the section tight.
There was a problem hiding this comment.
Code Review
This pull request updates the README.md to include a PyPI badge and introduces a simplified local installation method using uv or pip alongside the existing Docker setup. The review feedback suggests explicitly adding an environment variable export step (e.g., OPENAI_API_KEY) to the local installation code block to prevent runtime errors for users who have not cloned the repository.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Xagent redirects to the Models page when no provider is configured, so drop the 'set an LLM API key first' instruction from Quick Start.
rogercloud
left a comment
There was a problem hiding this comment.
Summary
This PR is a README-only documentation change. It adds a PyPI badge (xagent-ai) and restructures the Quick Start so the local single-user path (pip/uv install, plus a curl | sh one-liner) comes first, with the team/self-host Docker path second. It also drops the old "configure at least one LLM API key" instruction in favor of pointing users at the in-app /setup → Models UI flow for provider configuration. No code is touched.
Round 0 — Design: Sound
Pure documentation change with no code impact. All factual claims in the README were verified against the live repo, PyPI, and the deployed endpoint:
- Package name
xagent-ai,requires-python = ">=3.11", and thexagentconsole script ([project.scripts] xagent = "xagent.web.__main__:main") all matchpyproject.toml. - The local quick-start URL matches the CLI default in
src/xagent/web/__main__.py(127.0.0.1:8000). - The PyPI
xagent-aipackage exists (v0.6.0.post1) and the badge link resolves (HTTP 200). - The
curl | shinstall endpoint is live (HTTP 200) and serves a working script.
Reordering Quick Start to lead with local install and put Docker second is a reasonable, minimal restructuring — no scattered logic, no new abstractions, nothing over-engineered.
One non-blocking note: the PR description's caveat that the install one-liner "only works once PR #760 is deployed" is now stale, since #760 has merged and the endpoint is deployed. This affects only the PR description, not the README content.
Line-level findings
None. No confirmed findings survived verification — no duplicated paragraphs, broken links, garbled text, or markdown errors exist in the actual diff. The port difference between the local run (127.0.0.1:8000) and Docker (localhost:80) is real but expected and correct — uvicorn's native port versus Docker Compose's port mapping — informational only, not a defect. No other docs locations reference the old get-started flow inconsistently.
Prior review finding — Waived
gemini-code-assist (inline on README.md line 54) suggested adding export OPENAI_API_KEY="your-api-key" to the local Quick Start block, on the theory that pip/uv users lack a cloned repo's example.env and might launch xagent with no LLM key.
Verified waived for both the local CLI and Docker paths: the xagent entry point (src/xagent/web/__main__.py) boots the same FastAPI app as Docker; startup_event() in src/xagent/web/app.py performs no LLM-key check; /health returns {"status": "ok"} unconditionally; and load_dotenv() fails silently when no .env exists. Provider configuration is handled at runtime through the in-app /setup flow and Models page (src/xagent/web/api/model.py, frontend/src/components/pages/models.tsx), persisted to the database — not via a boot-time env var. This PR's diff deliberately removes the old "configure at least one LLM API key" language in favor of that UI-guided flow, so the author's intent already supersedes the suggestion rather than needing the export line.
Simplification opportunities
Lean already. A reviewer flagged the three back-to-back install paths (uv tool install, pip install, and curl | sh) as possible choice-overload, but this was dropped on verification: the curl script does materially more than the manual commands — it bootstraps uv when the user has no Python tooling, plus OS validation, version pinning, and post-install guidance. That is legitimate progressive disclosure (manual path for existing tooling, one-liner for zero-setup), not redundancy.
Testing
Docs-only change — no code tests apply. In lieu of tests, every factual claim was verified against ground truth: the CLI entry point and console-script name, the package name and default port, the PyPI badge and install-endpoint availability (both HTTP 200), and the .env optionality / no-key-required boot behavior. All hold.
Adds the single-machine install paths to the README, kept concise.
xagent-ai) next to the GitHub Release / Docker badges.uv tool install xagent-ai/pip install xagent-ai→xagent, plus thecurl -fsSL https://get.xagent.co | shone-liner. Docker stays as the teams / self-hosting path.Note
The
curl https://get.xagent.co | shline only works once the Cloudflare Worker (PR #760) is deployed to thexagent.cozone. Thepip/uvpaths work today against the publishedxagent-aipackage.Depend on #760