https://github.com/ar1haranan7mi/rainyxscientist
No description, website, or topics provided.
https://github.com/ar1haranan7mi/rainyxscientist
agent cli scientist
Last synced: 2 months ago
JSON representation
No description, website, or topics provided.
- Host: GitHub
- URL: https://github.com/ar1haranan7mi/rainyxscientist
- Owner: Ar1haraNaN7mI
- License: apache-2.0
- Created: 2026-04-21T20:28:45.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-25T17:12:28.000Z (3 months ago)
- Last Synced: 2026-04-26T12:04:59.587Z (3 months ago)
- Topics: agent, cli, scientist
- Language: Python
- Homepage:
- Size: 1.19 MB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# RainyXscientist
RainyXscientist is a new project for end-to-end AI-assisted research execution.
It 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.
## What RainyXscientist does
- Multi-agent workflow for planning, research, coding, analysis, and writing.
- CLI and TUI interfaces for interactive local work.
- MCP tool integration for extending external capabilities.
- Multi-channel architecture (for example Telegram, Slack, Feishu, WeChat, Discord, QQ).
- Persistent thread/session state to continue research over time.
## Complete tutorial: download → configure → launch
Follow these steps once on a clean machine. **PyPI package name:** `Rxscientist` · **CLI commands:** `rxsci` / `Rxscientist`.
### Step 1 — Prerequisites
| Requirement | Notes |
|-------------|--------|
| **Python** | **3.11+** (see `requires-python` in `pyproject.toml`). |
| **Installer** | `pip` (bundled with Python) or **`uv`** ([docs.astral.sh/uv](https://docs.astral.sh/uv/)). |
| **Network** | Needed to install packages and call LLM / search APIs. |
| **API key** | Default stack uses **Anthropic** (`ANTHROPIC_API_KEY`). Other providers need their own keys (see Step 3). |
Check Python: `python --version` or `py -3.12 --version` on Windows.
### Step 2 — Install the package (choose one path)
**A — PyPI (simplest once a release exists)**
```bash
pip install Rxscientist
```
Or with uv:
```bash
uv tool install Rxscientist
```
If PyPI returns *package not found*, use B–D until maintainers publish.
**B — Install directly from Git** (always up to date with `main`)
```bash
uv tool install "git+https://github.com/Ar1haraNaN7mI/RainyXscientist.git"
```
Pin a branch/tag if needed:
```bash
uv tool install "git+https://github.com/Ar1haraNaN7mI/RainyXscientist.git@main"
```
**C — Clone and run in a dev environment**
```bash
git clone https://github.com/Ar1haraNaN7mI/RainyXscientist.git
cd RainyXscientist
uv sync
uv run rxsci
```
After `uv sync`, activate `.venv` if you prefer and run `rxsci` from that environment.
**D — Offline / air-gapped: wheel from GitHub Releases**
1. Open [Releases](https://github.com/Ar1haraNaN7mI/RainyXscientist/releases) and download **`Rxscientist-*-py3-none-any.whl`** (source `.tar.gz` is optional).
2. Install with the Python you plan to use:
```bash
pip install /path/to/Rxscientist-0.0.10-py3-none-any.whl
```
Replace the filename with the asset you downloaded.
### Step 3 — Configure API keys and defaults
Configuration **priority** (highest first): **CLI flags** → **environment variables** → **`config.yaml`** → **built-in defaults**.
**Recommended first-time setup — interactive wizard**
```bash
rxsci onboard
```
This walks you through API keys and basic options (you can skip validation flags if needed).
**Environment variables**
Set at least the key for your provider. Defaults in code target **Anthropic** unless you change `provider` / `model` in config.
| Provider (examples) | Typical variable |
|---------------------|------------------|
| Anthropic (Claude) | `ANTHROPIC_API_KEY` |
| OpenAI | `OPENAI_API_KEY` |
| Google Gemini | `GOOGLE_API_KEY` |
| Others | See `Rainscientist/config/settings.py` mappings (`*_API_KEY`) |
On Windows (PowerShell, current session):
```powershell
$env:ANTHROPIC_API_KEY = "sk-ant-api03-..."
```
**Config file**
User-wide YAML (created on first save):
- **Windows:** `%USERPROFILE%\.config\Rxscientist\config.yaml`
- **Linux / macOS:** `$XDG_CONFIG_HOME/Rxscientist/config.yaml` or `~/.config/Rxscientist/config.yaml`
Inspect or edit keys with:
```bash
rxsci config
```
**`.env` files** (loaded automatically when present)
Layers are merged; later layers override earlier ones for the same variable name:
1. `.env` next to the repo’s **`pyproject.toml`** (so keys work even if your shell is not in the project folder).
2. `.env` under the Rxscientist config directory (same folder as `config.yaml`).
3. `.env` discovered from the **current working directory** (highest priority).
Example **repo** `.env` at the clone root:
```env
ANTHROPIC_API_KEY=sk-ant-api03-...
```
### Step 4 — Launch
Start the interactive UI (default may be TUI or CLI depending on config):
```bash
rxsci
```
Help and subcommands:
```bash
rxsci --help
```
If `rxsci` is not on `PATH`, call the module entry (same CLI):
```bash
python -m Rxscientist --help
```
On Windows, `rxsci.exe` usually lives under your Python or virtualenv **`Scripts`** directory — add that folder to **PATH** if the command is not found.
### Step 5 — Verify and next steps
- Send a short prompt; if you see credential errors, re-check Step 3 (wizard, env, YAML, `.env`).
- Explore **`rxsci config`**, **`/help`** inside the UI (when available), and optional **MCP** tooling for external integrations.
#### 中文简明步骤
1. **安装 Python 3.11+**,建议使用 **pip** 或 **uv**。
2. **安装包**:优先 `pip install Rxscientist`;若 PyPI 暂无包,使用上文 **B/C/D**(Git / 克隆 / Release wheel)。
3. **配置密钥**:运行 **`rxsci onboard`**,或设置环境变量(如 **`ANTHROPIC_API_KEY`**),或编辑 **`%USERPROFILE%\.config\Rxscientist\config.yaml`**(Windows),或在项目根 / 配置目录放置 **`.env`**。
4. **启动**:执行 **`rxsci`**;若无命令,使用 **`python -m Rxscientist`**,并把 Python 的 **`Scripts`** 加入 **PATH**。
---
## Quick start (install then run)
Start the CLI with **`rxsci`** after installing the **`Rxscientist`** Python package (see `pyproject.toml` — PyPI name is **`Rxscientist`**, CLI commands are **`rxsci`** / **`Rxscientist`**).
### Option A — From PyPI
After a release is published to PyPI:
```bash
pip install Rxscientist
rxsci
```
```bash
uv tool install Rxscientist
rxsci
```
If install fails with *package not found*, maintainers may not have uploaded yet — use Options B–D.
### Option B — Install from Git (recommended if PyPI is empty)
```bash
uv tool install "git+https://github.com/Ar1haraNaN7mI/RainyXscientist.git"
rxsci
```
To pin a branch or tag:
```bash
uv tool install "git+https://github.com/Ar1haraNaN7mI/RainyXscientist.git@main"
```
### Option C — Clone repository and run in a project environment
```bash
git clone https://github.com/Ar1haraNaN7mI/RainyXscientist.git
cd RainyXscientist
uv sync
uv run rxsci
```
After `uv sync`, you can also activate the virtualenv (`.venv`) and run `rxsci` directly.
### Option D — Install from GitHub Release wheel (offline-friendly)
Each 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).
1. Open the latest Release and download **`Rxscientist-*-py3-none-any.whl`** (and optionally the `.tar.gz` source distribution).
2. Install with pip (use the same Python where you want `rxsci`):
```bash
pip install "C:\path\to\Rxscientist-0.0.10-py3-none-any.whl"
rxsci
```
Replace the path and version string with the file you actually downloaded.
### Publishing to PyPI (maintainers)
This repo includes **`.github/workflows/publish-pypi.yml`**. One-time setup:
1. Create accounts on [pypi.org](https://pypi.org) (and optionally [test.pypi.org](https://test.pypi.org) for trials).
2. Confirm the project name **`Rxscientist`** is available on PyPI (change `[project] name` in `pyproject.toml` if it is taken).
3. 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`).
4. 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.
Manual upload (API token):
```bash
uv build
uv publish --token
```
Use a token with **Entire account** or **Project-scoped** upload scope from PyPI account settings (do not commit tokens).
---
## 中文:下载与启动说明(Windows)
更系统的「下载 → 配置 → 启动」全流程见前文 **Complete tutorial: download → configure → launch**(含中英文摘要);本节补充 Windows 常见问题与路径。
### PyPI 安装(推荐,在维护者已上传之后)
```powershell
pip install Rxscientist
rxsci
```
### 为什么有时会提示找不到包?
- **尚未上传到 PyPI**:会提示 *was not found in the package registry*,请先使用下面的 **Git / Release / 源码** 方式。
- **包名**:PyPI 上的分发名为 **`Rxscientist`**(区分大小写以索引为准);安装后终端命令仍为 **`rxsci`**。
### 本项目有没有官方 `.exe`?
- **GitHub Actions 当前只构建并上传 `.whl` / `.tar.gz`**,**不提供一键绿色版 `.exe`**。
- 启动方式是安装 Python 包后使用控制台命令 **`rxsci`**(安装脚本会在 Python 的 `Scripts` 目录生成 `rxsci.exe`)。
### Windows 推荐流程
**1)已安装 Python 3.11+ 与 uv**
在 PowerShell 或 CMD 中:
```powershell
uv tool install "git+https://github.com/Ar1haraNaN7mI/RainyXscientist.git"
rxsci
```
若提示找不到 `rxsci`,请将 uv 安装的 **tools 目录**加入 `PATH`,或使用 Python 模块方式:
```powershell
python -m Rxscientist
```
(与控制台脚本 `rxsci` 等价,均调用同一 CLI 入口。)
**2)下载 Release 里的 wheel 再安装**
1. 打开:
2. 在最新 Release 的 **Assets** 中下载 **`Rxscientist-*-py3-none-any.whl`**
3. 在下载目录执行(版本号按文件名修改):
```powershell
py -3.12 -m pip install .\Rxscientist-0.0.10-py3-none-any.whl
rxsci
```
若仍找不到命令,直接使用模块入口:
```powershell
py -3.12 -m Rxscientist --help
```
安装成功后,`rxsci` 一般位于:
`%LOCALAPPDATA%\Programs\Python\Python3xx\Scripts\rxsci.exe`
或当前虚拟环境的:
`.venv\Scripts\rxsci.exe`
把对应 **`Scripts` 目录** 加入系统 **PATH**,即可在任意目录运行 `rxsci`。
**3)克隆源码开发/本地运行**
```powershell
git clone https://github.com/Ar1haraNaN7mI/RainyXscientist.git
cd RainyXscientist
uv sync
uv run rxsci
```
### 自行打包成独立 `.exe`(可选)
仓库未内置官方单文件 exe。若需要分发无 Python 环境的机器,可自行使用 **PyInstaller** 等对入口 **`Rainscientist.cli:main`**(包名 **`rxsci`**)打包;需在本地解决依赖与体积问题,此处不展开。
### 维护者:如何把项目上传到 PyPI?
1. **账号**:在 [pypi.org](https://pypi.org) 注册并完成邮箱验证。
2. **项目名**:打开 ,若已被占用需在 `pyproject.toml` 里修改 **`[project] name`**(例如换成唯一名称)。
3. **可信发布(推荐,无需把 token 放进仓库)**
- PyPI:**Account settings → Publishing → Add pending publisher**
- 选择 GitHub:**Owner** `Ar1haraNaN7mI`,**Repository** `RainyXscientist`,**Workflow** `publish-pypi.yml`,**PyPI project name** `Rxscientist`(须与 `pyproject.toml` 一致)。
- 详见官方说明:
4. **发版**:在 GitHub 打开 **Actions → Publish PyPI → Run workflow**(一般选 `main`)。工作流会运行 **`scripts/pypi_next_version.py`**,按 PyPI 上已有版本自动 **递 Patch**,避免 *File already exists*;在任务里更新 `pyproject.toml` 后执行 **`uv build`** 并上传。若版本有递增,工作流成功后会 **把新的 `version` 提交并推回** 对应分支。无需再手动改版本号或打 `v*.*.*` 标签来触发本工作流(标签推送 **不会** 再自动触发,以免与 PyPI 策略冲突)。
5. **本地用令牌上传(备用)**:在 PyPI 账户设置里创建 **API token**,切勿提交到 Git:
```bash
uv build
uv publish --token <粘贴token>
```
同一版本/同一 wheel 在 PyPI 上 **不可覆盖**;本仓库通过上述脚本在 CI 中自动选择下一个可用 **patch** 版本。若用本地 `uv publish`,请手工递增 **`pyproject.toml` 的 `version`** 后再上传。
---
## Why this project
RXscientist focuses on turning fragmented prompts into a repeatable research loop:
question intake, task decomposition, evidence collection, implementation, review, and refinement.
The goal is to make one local agent runtime usable for both exploratory research and engineering-heavy scientific tasks.
## Project status
This repository is being positioned as the new RXscientist project.
Documentation and examples are intentionally being simplified and refreshed.