@jeffguo7/s-loop
Agit clone https://github.com/JeffGuo7/s-loop.git cd s-loop npm install npm run tauri:dev
Install
agr install @jeffguo7/s-loop --target claudeThis artifact does not publish files for Claude.
Document
{ "type": "module", "dependencies": { "@earendil-works/pi-agent-core": "0.80.6", "@earendil-works/pi-ai": "0.80.6", "@earendil-works/pi-coding-agent": "0.80.6", "@modelcontextprotocol/sdk": "^1.29.0", "cheerio": "^1.2.0", "cron-parser": "^4.9.0", "jiti": "^2.7.0", "nodemailer": "^6.9.0", "puppeteer-core": "^24.0.0", "undici": "^6.0.0" } }
Repository README
Describes JeffGuo7/s-loop as a whole, which may contain artifacts other than this one. Where this artifact had no useful description of its own, its summary was taken from here.
S-Loop
AI Desktop Workbench — chat, agent orchestration, scheduled tasks, desktop pet, all in one Tauri 2 app
Quick Start
Development
git clone https://github.com/JeffGuo7/s-loop.git
cd s-loop
npm install
npm run tauri:dev
Prerequisites: Node.js ≥ 18, Rust ≥ 1.85 (MSVC), npm
When running Vite and pi-server as separate development processes, set the same
temporary value in VITE_SNOTRA_API_TOKEN and SNOTRA_API_TOKEN.
Download (Windows)
Download the latest installer from the Releases page.
| Format | File |
|---|---|
| Installer (recommended) | S-Loop_<version>_x64-setup.exe |
| Portable | S-Loop_<version>_x64_en-US.msi |
Features
| Module | Description |
|---|---|
| AI Chat | Streaming SSE output, reasoning visualization, tool call logs, Markdown + syntax highlighting, Mermaid / LaTeX |
| Agent Builder | Custom agents (instructions / model / Skills / MCP / permissions), slash commands, drag-and-drop assembly |
| MCP Servers | stdio MCP process management, auto tool discovery, Rust-managed lifecycle |
| Skills | Local SKILL.md scanning, remote install from ClawHub, CLI integration, ZIP drag-and-drop |
| Scheduled Tasks | Cron / interval / one-shot, bind Agent + Skills, deliver to chat or platform |
| Platform Hub | Telegram (bidirectional sync), Email, Webhook, Feishu, DingTalk, WeCom, Slack, Discord, QQ Bot |
| Desktop Pet | SVG animated pet, transparent overlay window, multi-state, theme packs |
| Web Search | Bing / Brave / SearXNG / Tavily / Exa — 5 engines, zero-config default |
| Themes | 9 color palettes × dark/light, glassmorphism, CSS variable driven |
Tech Stack
| Layer | Stack |
|---|---|
| Desktop | Tauri 2 |
| Frontend | React 19 + TypeScript + Vite |
| Styling | Tailwind CSS 4 + HeroUI v3 |
| State | Zustand |
| Animation | Framer Motion |
| Icons | Lucide React |
| Syntax | Shiki |
| AI Engine | @earendil-works/pi-agent-core + pi-ai + pi-coding-agent |
| AI Runtime | pi-server (Node.js child process, HTTP + SSE) |
| Database | SQLite (tauri-plugin-sql) |
| i18n | i18next (English / Chinese) |
Architecture
The security and permission invariants shared by chat, tasks, MCP, platforms, and sub-agents are documented in docs/security-model.md.
┌─ Tauri 2 ───────────────────────────────────────────────────┐
│ │
│ Rust Backend Node.js AI Engine │
│ ┌──────────────────┐ ┌──────────────────────────┐ │
│ │ pi_server.rs │◄──────►│ pi-server (HTTP + SSE) │ │
│ │ mcp_manager.rs │ │ Agent sessions │ │
│ │ commands.rs │ │ delegate_task / subagent │ │
│ │ skill_installer │ │ Goal Loop executor │ │
│ │ skills_cli.rs │ │ task-scheduler (cron) │ │
│ │ system_tray │ │ platform-center (hub) │ │
│ │ │ │ telegram-monitor │ │
│ └──────────────────┘ └──────────────────────────┘ │
│ │
│ React Frontend │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ ChatView │ AgentBuilder │ TasksPage │ PetPage │ │
│ │ SettingsModal │ FileTree │ WorkspacePanel │ Sidebar │ │
│ │ MCP │ Skills │ Platforms │ WebSearch │ i18n │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
└───────────────────────────────────────────────────────────────┘
License
Trustgrade A
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- warnType matchbest-effort: server code not analyzed
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- passLicense
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-20696292456e2026-08-03