[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2288":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":16,"starSnapshotCount":16,"syncStatus":13,"lastSyncTime":32,"discoverSource":33},2288,"OpenPawlet","JackLuguibin\u002FOpenPawlet","JackLuguibin","OpenPawlet (PyPI package name open-pawlet) is a single-process web console for the OpenPawlet ecosystem. It exposes an HTTP API, a browser UI, an OpenAI-compatible \u002Fv1\u002F* surface and the embedded agent runtime","",null,"Python",6,2,102,13,0,1.43,"MIT License",false,"main",true,[23,24,25,26,27,28],"agent","ai","ai-agent","nanobot","openclaw","openpawlet","2026-06-12 02:00:39","# OpenPawlet\n\n**Languages:** [中文说明](README.zh.md)\n\n## What it is\n\nOpenPawlet (PyPI package name `open-pawlet`) is a **single-process web console** for the **OpenPawlet** ecosystem. It exposes an HTTP API, a browser UI, an OpenAI-compatible `\u002Fv1\u002F*` surface and the embedded agent runtime (agent loop, channels, cron, heartbeat) over a single FastAPI port so you can manage bot-related resources locally or in deployment.\n\n**Stack:** FastAPI backend (consistent error envelope and OpenAPI; Swagger\u002FReDoc\u002F`openapi.json` are served by default at `\u002Fdocs`, `\u002Fredoc`, `\u002Fopenapi.json` — set each `*_url` to empty to hide) and a Vite frontend under `src\u002Fconsole\u002Fweb` (HMR in development, production build supported).\n\n## Feature areas\n\nThe console roughly covers the areas below (see the UI and OpenAPI for the exact surface):\n\n| Area | Capabilities |\n|------|--------------|\n| **Bots & agents** | Inspect and manage bots and agents |\n| **Chat & channels** | Sessions, chat, channels; debug with gateway WebSocket and realtime events |\n| **Config & env** | Console and bot configuration, environment variables, bot file access (e.g. `bot_files`) |\n| **Tools & extensions** | Tools, MCP servers, skills, memory |\n| **Automation** | Cron jobs |\n| **Ops & observability** | Status, health, health audit, usage, alerts, activity; control endpoints where applicable |\n| **Workspace** | Workspace browsing and management |\n| **Session transcripts** | Optional append-only JSONL logs (OpenPawlet) under workspace `transcripts\u002F` when `agents.defaults.persistSessionTranscript` is true; `transcriptIncludeFullToolResults` controls full tool payloads in the log |\n\n**Typical use:** run `open-pawlet start`; the embedded OpenPawlet runtime comes up in the same process so you can immediately inspect status, debug sessions, and manage these resources from the console without supervising a separate gateway.\n\n## Screenshots\n\nThe **OpenPawlet** web UI (branded “OpenPawlet · AI Assistant” in the console) provides a sidebar for Chat, Control, Agent, and Management areas, plus a top bar for workspace selection, language, theme, and gateway status.\n\n### Dashboard overview\n\nThe overview page surfaces key metrics (status, uptime, active sessions, messages, tokens, cost), the **current model**, and charts such as daily token usage and usage by model—useful for at-a-glance monitoring in local or deployed setups.\n\n![OpenPawlet dashboard overview](docs\u002Fscreenshots\u002Fdashboard-overview.png)\n\n### Chat\n\nThe chat view supports **multiple sessions** (list with message counts and last activity), streaming-style replies with optional **thinking** \u002F progress indicators, and an input area with token budget hints. Navigation to channels, MCP, memory, workspace, agents, skills, and related tools stays one click away in the sidebar.\n\n![OpenPawlet chat](docs\u002Fscreenshots\u002Fchat.png)\n\n### Channels\n\n**Channels** lists integrations for your bot (for example WebSocket, Weixin, DingTalk, Discord, Email, Feishu, Matrix, MoChat, Microsoft Teams, QQ, Slack, Telegram, WeCom, and WhatsApp). You can enable or edit each channel from the grid; the UI notes that changes are saved to `config.json` and that you should **restart the bot** for them to take effect.\n\n![OpenPawlet channels management](docs\u002Fscreenshots\u002Fchannels.png)\n\n## Architecture notes\n\n- **Backend:** FastAPI-based OpenPawlet service with a consistent error envelope and OpenAPI documentation.\n- **Frontend:** Vite app under `src\u002Fconsole\u002Fweb`, with HMR in development and a production build path.\n\n## Tech stack\n\n| Layer | Technology |\n|-------|------------|\n| Runtime | Python ≥ 3.11 |\n| Backend | FastAPI, Uvicorn, Pydantic v2, Loguru |\n| OpenPawlet agent framework | Bundled in this repo (`src\u002Fopenpawlet`); installed as part of `open-pawlet` |\n| Frontend | Node.js + npm (see `src\u002Fconsole\u002Fweb`) |\n| Single-process entrypoint | `open-pawlet start` (unified FastAPI service) |\n\n## Quick start\n\n### 1. Virtual environment and install\n\nA project-local `.venv` is recommended:\n\n```bash\npython3.11 -m venv .venv\nsource .venv\u002Fbin\u002Factivate   # Windows: .venv\\Scripts\\activate\npip install --upgrade pip\npip install -e \".[dev]\"\n```\n\nThe `openpawlet` Python package ships inside this repository; `pip install -e \".[dev]\"` installs the console and agent framework together.\n\n### 2. Frontend dependencies\n\n```bash\ncd src\u002Fconsole\u002Fweb && npm install && cd ..\u002F..\u002F..\n```\n\n### 3. Run\n\n> All workflows use the **`open-pawlet`** command (`openpawlet.cli.commands:app`): e.g.\n> `open-pawlet start`, `open-pawlet agent`, `open-pawlet onboard`.\n>\n> Since 0.3.x **all services are collapsed into a single FastAPI process**:\n> REST API, SPA, OpenAI-compatible `\u002Fv1\u002F*`, queues admin `\u002Fqueues\u002F*`,\n> WebSocket `\u002Fopenpawlet-ws\u002F*` and the embedded OpenPawlet runtime (AgentLoop,\n> Channels, Cron, Heartbeat) share the same event loop and expose **one HTTP\n> port**. The legacy standalone `gateway` \u002F `serve` commands,\n> `open-pawlet-queue-manager`, `Procfile` and `honcho` entrypoints have all\n> been removed.\n\n#### Single-command production (recommended for local use)\n\n```bash\nnpm --prefix src\u002Fconsole\u002Fweb run build\nopen-pawlet start   # open http:\u002F\u002Flocalhost:8000\n```\n\n`open-pawlet start` runs the unified FastAPI server, mounts the prebuilt SPA\nfrom `src\u002Fconsole\u002Fweb\u002Fdist` (so the UI and `\u002Fapi\u002Fv1\u002F*` share a single origin\nand port) and **starts the OpenPawlet runtime in the same event loop** (no\nsubprocess fork; no ZeroMQ broker). All WebSocket \u002F channel \u002F cron tasks\nlive inside the FastAPI lifespan. On first launch run `open-pawlet onboard` once\nif `~\u002F.openpawlet\u002Fconfig.json` is missing. Press Ctrl+C to gracefully stop the\nprocess.\n\nFlags:\n\n- `--no-spa` — skip mounting the prebuilt SPA. Useful for headless API-only\n  deployments where the UI is hosted elsewhere.\n\nRe-run `npm run build` (or `open-pawlet web build`) after frontend changes.\n\n#### Frontend dev mode (hot reload)\n\nRun the unified server and the Vite dev server in two terminals:\n\n```bash\nopen-pawlet start         # single process: FastAPI + embedded OpenPawlet, on http:\u002F\u002Flocalhost:8000\nopen-pawlet web dev       # Vite dev server on http:\u002F\u002Flocalhost:3000 (open this for the UI)\n```\n\nOpen the **Vite URL** (`http:\u002F\u002Flocalhost:3000`); Vite proxies `\u002Fapi\u002F*`,\n`\u002Fv1\u002F*`, `\u002Fqueues\u002F*` and `\u002Fopenpawlet-ws\u002F*` to `:8000`. You no longer need a\nseparate gateway or queue-manager process.\n\n#### Cross-platform notes\n\n- The single-process layout runs unchanged on **Windows and Linux**; the\n  CLI flips to `WindowsSelectorEventLoopPolicy` automatically on Windows.\n- Signal handling lives in `console.server.signals`: Linux uses\n  `loop.add_signal_handler`, Windows falls back to `signal.signal`.\n- `pytest -q` passes on both platforms (only one ExecTool case unrelated to\n  this repository is skipped on Windows because `sleep` is not on `PATH`).\n\n#### Configuration\n\nSettings are resolved with the following **priority (highest first)**:\n\n1. Environment variables prefixed with `OPENPAWLET_SERVER_` (e.g.\n   `OPENPAWLET_SERVER_PORT=9000`)\n2. Optional `.env` file in the working directory\n3. `~\u002F.openpawlet\u002Fopenpawlet_web.json` under the top-level `server` key\n4. Built-in defaults (see `console.server.config.schema.ServerSettings`)\n\nThe JSON file is **opt-in**: it is no longer written automatically on first\nboot. Create a starter file with `open-pawlet init-config` when you want to\npersist non-default values to disk.\n\n## Version history (timeline)\n\n\nMajor releases for the `open-pawlet` PyPI package (matches `[project] version` in the root `pyproject.toml`). The console is built for the **OpenPawlet** stack; the agent framework lives under `src\u002Fopenpawlet` and ships with each install. **Newest at the top; older entries below.** Add new rows at the **top** when you cut a release.\n\n```text\n2026-04-26 ──●── 0.3.0  Unified single-process FastAPI: console + OpenPawlet OpenAI API + queues admin + gateway collapsed into one entrypoint; ZMQ broker \u002F Procfile \u002F honcho removed; in-process MessageBus; cross-platform Win\u002FLinux hardening; new unified-app end-to-end tests\n              │\n2026-04-20 ──●── 0.2.2  OpenPawlet WebSocket (session lifecycle, delta stream, busy state); tests\u002Fdocs; UI & dashboard\n              │\n2026-04-19 ──●── 0.2.1  Aligned versions (pyproject, API schema, web); OpenPawlet framework + console version metadata\n              │\n2026-04-19 ──●── 0.2.0  Deps & packaging; README; bundled OpenPawlet framework; WhatsApp bridge under bridge\u002F\n              │\n2026-04-19 ──●── 0.1.0  First release: FastAPI console for the OpenPawlet agent, CLI, workspace, README \u002F Procfile\n```\n\n| Date | Version | Summary |\n|------|---------|---------|\n| 2026-04-26 | **0.3.0** | **Architecture collapse:** all services (REST \u002F SPA \u002F OpenAI-compatible `\u002Fv1\u002F*` \u002F queues admin \u002F WebSocket \u002F OpenPawlet runtime) merged into a single FastAPI process; removed legacy standalone `gateway` \u002F `serve`, `open-pawlet-queue-manager`, `Procfile` and the ZeroMQ broker; in-process MessageBus replaces ZMQ; unified Win\u002FLinux event-loop policy and signal handling; introduced `EmbeddedOpenPawlet` runtime and unified-app end-to-end tests. |\n| 2026-04-20 | **0.2.2** | **OpenPawlet:** WebSocket session lifecycle, delta streaming, and busy-state handling in gateway and UI; broader framework test coverage and channel docs. Console: dashboard\u002Fcharts, activity filters, workspace and bot-profile flows, ErrorBoundary, layout and control tweaks; CI and Vitest hardening. |\n| 2026-04-19 | **0.2.1** | Single source of truth for version strings (Python package, server API version, frontend `package.json`) so **OpenPawlet** installs report consistent versions end-to-end. |\n| 2026-04-19 | **0.2.0** | Dependency and optional extras cleanup, install docs; **OpenPawlet** framework bundled in-repo; `bridge\u002F` (including WhatsApp-related pieces). |\n| 2026-04-19 | **0.1.0** | Initial OpenPawlet web **console**: FastAPI backend, `console` CLI, workspace features, docs, and Honcho\u002FProcfile entry points. |\n\n## License\n\nMIT — see [LICENSE](LICENSE) in the repository root.\n","OpenPawlet是一个用于OpenPawlet生态系统的单进程Web控制台，通过FastAPI提供HTTP API、浏览器UI、兼容OpenAI的\u002Fv1\u002F*接口以及嵌入式代理运行时。该项目采用Python语言开发，基于FastAPI后端与Vite前端构建，支持通过统一端口管理本地或部署环境中的机器人相关资源。其核心功能包括机器人和代理的检查与管理、聊天及频道调试、配置与环境变量设置、工具扩展、自动化任务调度、操作监控以及工作区浏览等。适用于需要在一个界面内集中管理和调试多渠道AI助手及其相关组件的场景，如企业内部的客服系统或个人开发者对AI代理进行快速原型设计和测试。","2026-06-11 02:49:17","CREATED_QUERY"]