{"id":49154077,"url":"https://github.com/ar1haranan7mi/rainyxscientist","last_synced_at":"2026-04-28T14:00:47.541Z","repository":{"id":352957883,"uuid":"1217375175","full_name":"Ar1haraNaN7mI/RainyXscientist","owner":"Ar1haraNaN7mI","description":"No description, website, or topics provided.","archived":false,"fork":false,"pushed_at":"2026-04-25T17:12:28.000Z","size":1251,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-26T12:04:59.587Z","etag":null,"topics":["agent","cli","scientist"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ar1haraNaN7mI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://www.youtube.com/watch?v=9jK-NcRmVcw","https://www.youtube.com/watch?v=HEXWRTEbj1I"]}},"created_at":"2026-04-21T20:28:45.000Z","updated_at":"2026-04-25T17:12:31.000Z","dependencies_parsed_at":"2026-04-25T11:01:02.568Z","dependency_job_id":null,"html_url":"https://github.com/Ar1haraNaN7mI/RainyXscientist","commit_stats":null,"previous_names":["ar1haranan7mi/rainyxscientist"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/Ar1haraNaN7mI/RainyXscientist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar1haraNaN7mI%2FRainyXscientist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar1haraNaN7mI%2FRainyXscientist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar1haraNaN7mI%2FRainyXscientist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar1haraNaN7mI%2FRainyXscientist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ar1haraNaN7mI","download_url":"https://codeload.github.com/Ar1haraNaN7mI/RainyXscientist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar1haraNaN7mI%2FRainyXscientist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32337274,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","cli","scientist"],"created_at":"2026-04-22T08:01:35.312Z","updated_at":"2026-04-27T13:00:38.978Z","avatar_url":"https://github.com/Ar1haraNaN7mI.png","language":"Python","funding_links":["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://www.youtube.com/watch?v=9jK-NcRmVcw","https://www.youtube.com/watch?v=HEXWRTEbj1I"],"categories":[],"sub_categories":[],"readme":"# RainyXscientist\n\nRainyXscientist is a new project for end-to-end AI-assisted research execution.\nIt provides a practical command-line research copilot that can plan tasks, call tools, run multi-step workflows, and keep long-term session memory for iterative scientific work.\n\n## What RainyXscientist does\n\n- Multi-agent workflow for planning, research, coding, analysis, and writing.\n- CLI and TUI interfaces for interactive local work.\n- MCP tool integration for extending external capabilities.\n- Multi-channel architecture (for example Telegram, Slack, Feishu, WeChat, Discord, QQ).\n- Persistent thread/session state to continue research over time.\n\n## Complete tutorial: download → configure → launch\n\nFollow these steps once on a clean machine. **PyPI package name:** `Rxscientist` · **CLI commands:** `rxsci` / `Rxscientist`.\n\n### Step 1 — Prerequisites\n\n| Requirement | Notes |\n|-------------|--------|\n| **Python** | **3.11+** (see `requires-python` in `pyproject.toml`). |\n| **Installer** | `pip` (bundled with Python) or **`uv`** ([docs.astral.sh/uv](https://docs.astral.sh/uv/)). |\n| **Network** | Needed to install packages and call LLM / search APIs. |\n| **API key** | Default stack uses **Anthropic** (`ANTHROPIC_API_KEY`). Other providers need their own keys (see Step 3). |\n\nCheck Python: `python --version` or `py -3.12 --version` on Windows.\n\n### Step 2 — Install the package (choose one path)\n\n**A — PyPI (simplest once a release exists)**\n\n```bash\npip install Rxscientist\n```\n\nOr with uv:\n\n```bash\nuv tool install Rxscientist\n```\n\nIf PyPI returns *package not found*, use B–D until maintainers publish.\n\n**B — Install directly from Git** (always up to date with `main`)\n\n```bash\nuv tool install \"git+https://github.com/Ar1haraNaN7mI/RainyXscientist.git\"\n```\n\nPin a branch/tag if needed:\n\n```bash\nuv tool install \"git+https://github.com/Ar1haraNaN7mI/RainyXscientist.git@main\"\n```\n\n**C — Clone and run in a dev environment**\n\n```bash\ngit clone https://github.com/Ar1haraNaN7mI/RainyXscientist.git\ncd RainyXscientist\nuv sync\nuv run rxsci\n```\n\nAfter `uv sync`, activate `.venv` if you prefer and run `rxsci` from that environment.\n\n**D — Offline / air-gapped: wheel from GitHub Releases**\n\n1. Open [Releases](https://github.com/Ar1haraNaN7mI/RainyXscientist/releases) and download **`Rxscientist-*-py3-none-any.whl`** (source `.tar.gz` is optional).\n2. Install with the Python you plan to use:\n\n```bash\npip install /path/to/Rxscientist-0.0.10-py3-none-any.whl\n```\n\nReplace the filename with the asset you downloaded.\n\n### Step 3 — Configure API keys and defaults\n\nConfiguration **priority** (highest first): **CLI flags** → **environment variables** → **`config.yaml`** → **built-in defaults**.\n\n**Recommended first-time setup — interactive wizard**\n\n```bash\nrxsci onboard\n```\n\nThis walks you through API keys and basic options (you can skip validation flags if needed).\n\n**Environment variables**\n\nSet at least the key for your provider. Defaults in code target **Anthropic** unless you change `provider` / `model` in config.\n\n| Provider (examples) | Typical variable |\n|---------------------|------------------|\n| Anthropic (Claude) | `ANTHROPIC_API_KEY` |\n| OpenAI | `OPENAI_API_KEY` |\n| Google Gemini | `GOOGLE_API_KEY` |\n| Others | See `Rainscientist/config/settings.py` mappings (`*_API_KEY`) |\n\nOn Windows (PowerShell, current session):\n\n```powershell\n$env:ANTHROPIC_API_KEY = \"sk-ant-api03-...\"\n```\n\n**Config file**\n\nUser-wide YAML (created on first save):\n\n- **Windows:** `%USERPROFILE%\\.config\\Rxscientist\\config.yaml`\n- **Linux / macOS:** `$XDG_CONFIG_HOME/Rxscientist/config.yaml` or `~/.config/Rxscientist/config.yaml`\n\nInspect or edit keys with:\n\n```bash\nrxsci config\n```\n\n**`.env` files** (loaded automatically when present)\n\nLayers are merged; later layers override earlier ones for the same variable name:\n\n1. `.env` next to the repo’s **`pyproject.toml`** (so keys work even if your shell is not in the project folder).\n2. `.env` under the Rxscientist config directory (same folder as `config.yaml`).\n3. `.env` discovered from the **current working directory** (highest priority).\n\nExample **repo** `.env` at the clone root:\n\n```env\nANTHROPIC_API_KEY=sk-ant-api03-...\n```\n\n### Step 4 — Launch\n\nStart the interactive UI (default may be TUI or CLI depending on config):\n\n```bash\nrxsci\n```\n\nHelp and subcommands:\n\n```bash\nrxsci --help\n```\n\nIf `rxsci` is not on `PATH`, call the module entry (same CLI):\n\n```bash\npython -m Rxscientist --help\n```\n\nOn Windows, `rxsci.exe` usually lives under your Python or virtualenv **`Scripts`** directory — add that folder to **PATH** if the command is not found.\n\n### Step 5 — Verify and next steps\n\n- Send a short prompt; if you see credential errors, re-check Step 3 (wizard, env, YAML, `.env`).\n- Explore **`rxsci config`**, **`/help`** inside the UI (when available), and optional **MCP** tooling for external integrations.\n\n#### 中文简明步骤\n\n1. **安装 Python 3.11+**，建议使用 **pip** 或 **uv**。  \n2. **安装包**：优先 `pip install Rxscientist`；若 PyPI 暂无包，使用上文 **B/C/D**（Git / 克隆 / Release  wheel）。  \n3. **配置密钥**：运行 **`rxsci onboard`**，或设置环境变量（如 **`ANTHROPIC_API_KEY`**），或编辑 **`%USERPROFILE%\\.config\\Rxscientist\\config.yaml`**（Windows），或在项目根 / 配置目录放置 **`.env`**。  \n4. **启动**：执行 **`rxsci`**；若无命令，使用 **`python -m Rxscientist`**，并把 Python 的 **`Scripts`** 加入 **PATH**。  \n\n---\n\n## Quick start (install then run)\n\nStart the CLI with **`rxsci`** after installing the **`Rxscientist`** Python package (see `pyproject.toml` — PyPI name is **`Rxscientist`**, CLI commands are **`rxsci`** / **`Rxscientist`**).\n\n### Option A — From PyPI\n\nAfter a release is published to PyPI:\n\n```bash\npip install Rxscientist\nrxsci\n```\n\n```bash\nuv tool install Rxscientist\nrxsci\n```\n\nIf install fails with *package not found*, maintainers may not have uploaded yet — use Options B–D.\n\n### Option B — Install from Git (recommended if PyPI is empty)\n\n```bash\nuv tool install \"git+https://github.com/Ar1haraNaN7mI/RainyXscientist.git\"\nrxsci\n```\n\nTo pin a branch or tag:\n\n```bash\nuv tool install \"git+https://github.com/Ar1haraNaN7mI/RainyXscientist.git@main\"\n```\n\n### Option C — Clone repository and run in a project environment\n\n```bash\ngit clone https://github.com/Ar1haraNaN7mI/RainyXscientist.git\ncd RainyXscientist\nuv sync\nuv run rxsci\n```\n\nAfter `uv sync`, you can also activate the virtualenv (`.venv`) and run `rxsci` directly.\n\n### Option D — Install from GitHub Release wheel (offline-friendly)\n\nEach push to `main` publishes **wheel / sdist** assets under [Releases](https://github.com/Ar1haraNaN7mI/RainyXscientist/releases). There is **no standalone `.exe`** in those assets (they are Python packages).\n\n1. Open the latest Release and download **`Rxscientist-*-py3-none-any.whl`** (and optionally the `.tar.gz` source distribution).\n2. Install with pip (use the same Python where you want `rxsci`):\n\n```bash\npip install \"C:\\path\\to\\Rxscientist-0.0.10-py3-none-any.whl\"\nrxsci\n```\n\nReplace the path and version string with the file you actually downloaded.\n\n### Publishing to PyPI (maintainers)\n\nThis repo includes **`.github/workflows/publish-pypi.yml`**. One-time setup:\n\n1. Create accounts on [pypi.org](https://pypi.org) (and optionally [test.pypi.org](https://test.pypi.org) for trials).\n2. Confirm the project name **`Rxscientist`** is available on PyPI (change `[project] name` in `pyproject.toml` if it is taken).\n3. On PyPI → **Publishing** → **Add a new pending publisher** → choose **GitHub** → organization/user **`Ar1haraNaN7mI`**, repository **`RainyXscientist`**, workflow **`publish-pypi.yml`**, PyPI project **`Rxscientist`** (must match `pyproject.toml`).\n4. In GitHub: **Actions → Publish PyPI → Run workflow** (target branch, usually `main`). The workflow runs `scripts/pypi_next_version.py` to pick a **new patch version** that is not already on PyPI (avoids *file already exists*), updates `pyproject.toml` in the job, then `uv build` and uploads to PyPI. If the version was bumped, the workflow **commits and pushes** that `pyproject.toml` change to the same branch. You do not need to manually bump the version or push a `v*.*.*` tag for this workflow.\n\nManual upload (API token):\n\n```bash\nuv build\nuv publish --token \u003cpypi-api-token\u003e\n```\n\nUse a token with **Entire account** or **Project-scoped** upload scope from PyPI account settings (do not commit tokens).\n\n---\n\n## 中文：下载与启动说明（Windows）\n\n更系统的「下载 → 配置 → 启动」全流程见前文 **Complete tutorial: download → configure → launch**（含中英文摘要）；本节补充 Windows 常见问题与路径。\n\n### PyPI 安装（推荐，在维护者已上传之后）\n\n```powershell\npip install Rxscientist\nrxsci\n```\n\n### 为什么有时会提示找不到包？\n\n- **尚未上传到 PyPI**：会提示 *was not found in the package registry*，请先使用下面的 **Git / Release / 源码** 方式。\n- **包名**：PyPI 上的分发名为 **`Rxscientist`**（区分大小写以索引为准）；安装后终端命令仍为 **`rxsci`**。\n\n### 本项目有没有官方 `.exe`？\n\n- **GitHub Actions 当前只构建并上传 `.whl` / `.tar.gz`**，**不提供一键绿色版 `.exe`**。\n- 启动方式是安装 Python 包后使用控制台命令 **`rxsci`**（安装脚本会在 Python 的 `Scripts` 目录生成 `rxsci.exe`）。\n\n### Windows 推荐流程\n\n**1）已安装 Python 3.11+ 与 uv**\n\n在 PowerShell 或 CMD 中：\n\n```powershell\nuv tool install \"git+https://github.com/Ar1haraNaN7mI/RainyXscientist.git\"\nrxsci\n```\n\n若提示找不到 `rxsci`，请将 uv 安装的 **tools 目录**加入 `PATH`，或使用 Python 模块方式：\n\n```powershell\npython -m Rxscientist\n```\n\n（与控制台脚本 `rxsci` 等价，均调用同一 CLI 入口。）\n\n**2）下载 Release 里的 wheel 再安装**\n\n1. 打开：\u003chttps://github.com/Ar1haraNaN7mI/RainyXscientist/releases\u003e\n2. 在最新 Release 的 **Assets** 中下载 **`Rxscientist-*-py3-none-any.whl`**\n3. 在下载目录执行（版本号按文件名修改）：\n\n```powershell\npy -3.12 -m pip install .\\Rxscientist-0.0.10-py3-none-any.whl\nrxsci\n```\n\n若仍找不到命令，直接使用模块入口：\n\n```powershell\npy -3.12 -m Rxscientist --help\n```\n\n安装成功后，`rxsci` 一般位于：\n\n`%LOCALAPPDATA%\\Programs\\Python\\Python3xx\\Scripts\\rxsci.exe`\n\n或当前虚拟环境的：\n\n`.venv\\Scripts\\rxsci.exe`\n\n把对应 **`Scripts` 目录** 加入系统 **PATH**，即可在任意目录运行 `rxsci`。\n\n**3）克隆源码开发/本地运行**\n\n```powershell\ngit clone https://github.com/Ar1haraNaN7mI/RainyXscientist.git\ncd RainyXscientist\nuv sync\nuv run rxsci\n```\n\n### 自行打包成独立 `.exe`（可选）\n\n仓库未内置官方单文件 exe。若需要分发无 Python 环境的机器，可自行使用 **PyInstaller** 等对入口 **`Rainscientist.cli:main`**（包名 **`rxsci`**）打包；需在本地解决依赖与体积问题，此处不展开。\n\n### 维护者：如何把项目上传到 PyPI？\n\n1. **账号**：在 [pypi.org](https://pypi.org) 注册并完成邮箱验证。\n2. **项目名**：打开 \u003chttps://pypi.org/project/Rxscientist/\u003e ，若已被占用需在 `pyproject.toml` 里修改 **`[project] name`**（例如换成唯一名称）。\n3. **可信发布（推荐，无需把 token 放进仓库）**  \n   - PyPI：**Account settings → Publishing → Add pending publisher**  \n   - 选择 GitHub：**Owner** `Ar1haraNaN7mI`，**Repository** `RainyXscientist`，**Workflow** `publish-pypi.yml`，**PyPI project name** `Rxscientist`（须与 `pyproject.toml` 一致）。  \n   - 详见官方说明：\u003chttps://docs.pypi.org/trusted-publishers/\u003e\n4. **发版**：在 GitHub 打开 **Actions → Publish PyPI → Run workflow**（一般选 `main`）。工作流会运行 **`scripts/pypi_next_version.py`**，按 PyPI 上已有版本自动 **递 Patch**，避免 *File already exists*；在任务里更新 `pyproject.toml` 后执行 **`uv build`** 并上传。若版本有递增，工作流成功后会 **把新的 `version` 提交并推回** 对应分支。无需再手动改版本号或打 `v*.*.*` 标签来触发本工作流（标签推送 **不会** 再自动触发，以免与 PyPI 策略冲突）。\n5. **本地用令牌上传（备用）**：在 PyPI 账户设置里创建 **API token**，切勿提交到 Git：\n\n```bash\nuv build\nuv publish --token \u003c粘贴token\u003e\n```\n\n同一版本/同一 wheel 在 PyPI 上 **不可覆盖**；本仓库通过上述脚本在 CI 中自动选择下一个可用 **patch** 版本。若用本地 `uv publish`，请手工递增 **`pyproject.toml` 的 `version`** 后再上传。\n\n---\n\n## Why this project\n\nRXscientist focuses on turning fragmented prompts into a repeatable research loop:\nquestion intake, task decomposition, evidence collection, implementation, review, and refinement.\nThe goal is to make one local agent runtime usable for both exploratory research and engineering-heavy scientific tasks.\n\n## Project status\n\nThis repository is being positioned as the new RXscientist project.\nDocumentation and examples are intentionally being simplified and refreshed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Far1haranan7mi%2Frainyxscientist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Far1haranan7mi%2Frainyxscientist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Far1haranan7mi%2Frainyxscientist/lists"}