[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73561":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":17,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":45,"readmeContent":46,"aiSummary":47,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":48,"discoverSource":49},73561,"pyspur","PySpur-Dev\u002Fpyspur","PySpur-Dev","A visual playground for agentic workflows: Iterate over your agents 10x faster","https:\u002F\u002Fpyspur.dev",null,"TypeScript",5734,425,49,29,0,2,17,6,38.89,"Apache License 2.0",false,"main",[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"agent","agents","ai","builder","deepseek","framework","gemini","graph","human-in-the-loop","llm","llms","loops","multimodal","ollama","python","rag","reasoning","tool","trace","workflow","2026-06-12 02:03:15","![PySpur](.\u002Fdocs\u002Fimages\u002Fhero.png)\n\n\u003Cp align=\"center\">\u003Cstrong>Iterate over your agents 10x faster. AI engineers use PySpur to iterate over AI agents visually without reinventing the wheel.\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\".\u002FREADME.md\">\u003Cimg alt=\"README in English\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FEnglish-blue\">\u003C\u002Fa>\n  \u003Ca href=\".\u002FREADME_CN.md\">\u003Cimg alt=\"简体中文版自述文件\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F简体中文-blue\">\u003C\u002Fa>\n  \u003Ca href=\".\u002FREADME_JA.md\">\u003Cimg alt=\"日本語のREADME\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F日本語-blue\">\u003C\u002Fa>\n  \u003Ca href=\".\u002FREADME_KR.md\">\u003Cimg alt=\"README in Korean\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F한국어-blue\">\u003C\u002Fa>\n  \u003Ca href=\".\u002FREADME_DE.md\">\u003Cimg alt=\"Deutsche Version der README\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDeutsch-blue\">\u003C\u002Fa>\n\u003Ca href=\".\u002FREADME_FR.md\">\u003Cimg alt=\"Version française du README\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFrançais-blue\">\u003C\u002Fa>\n\u003Ca href=\".\u002FREADME_ES.md\">\u003Cimg alt=\"Versión en español del README\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FEspañol-blue\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fdocs.pyspur.dev\u002F\" target=\"_blank\">\n  \u003Cimg alt=\"Docs\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocs-green.svg?style=for-the-badge&logo=readthedocs&logoColor=white\">\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fforms.gle\u002F5wHRctedMpgfNGah7\" target=\"_blank\">\n  \u003Cimg alt=\"Cloud\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCloud-orange.svg?style=for-the-badge&logo=cloud&logoColor=white\">\n\u003C\u002Fa>\n\u003C\u002Fp>\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F54d0619f-22fd-476c-bf19-9be083d7e710\n\n# 🕸️ Why PySpur?\n\n## Problem: It takes a 1,000 tiny paper cuts to make AI reliable\n\nAI engineers today face three problems of building agents: \n\n* **Prompt Hell**: Hours of prompt tweaking and trial-and-error frustration.\n* **Workflow Blindspots**: Lack of visibility into step interactions causing hidden failures and confusion.\n* **Terminal Testing Nightmare** Squinting at raw outputs and manually parsing JSON.\n\nWe've been there ourselves, too. We launched a graphic design agent early 2024 and quickly reached thousands of users, yet, struggled with the lack of its reliability and existing debugging tools. \n\n## Solution: A playground for agents that saves time\n\n### Step 1: Define Test Cases\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fed9ca45f-7346-463f-b8a4-205bf2c4588f\n \n### Step 2: Build the agent in Python code or via UI\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F7043aae4-fad1-42bd-953a-80c94fce8253\n\n### Step 3: Iterate obsessively\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F72c9901d-a39c-4f80-85a5-f6f76e55f473\n\n### Step 4: Deploy\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb14f34b2-9f16-4bd0-8a0f-1c26e690af93\n\n# ✨ Core features:\n\n- 👤 **Human in the Loop**: Persistent workflows that wait for human approval.\n- 🔄 **Loops**: Iterative tool calling with memory.\n- 📤 **File Upload**: Upload files or paste URLs to process documents.\n- 📋 **Structured Outputs**: UI editor for JSON Schemas.\n- 🗃️ **RAG**: Parse, Chunk, Embed, and Upsert Data into a Vector DB.\n- 🖼️ **Multimodal**: Support for Video, Images, Audio, Texts, Code.\n- 🧰 **Tools**: Slack, Firecrawl.dev, Google Sheets, GitHub, and more.\n- 📊 **Traces**: Automatically capture execution traces of deployed agents.\n- 🧪 **Evals**: Evaluate agents on real-world datasets.\n- 🚀 **One-Click Deploy**: Publish as an API and integrate wherever you want.\n- 🐍 **Python-Based**: Add new nodes by creating a single Python file.\n- 🎛️ **Any-Vendor-Support**: >100 LLM providers, embedders, and vector DBs.\n\n# ⚡ Quick start\n\nThis is the quickest way to get started. Python 3.11 or higher is required.\n\n1. **Install PySpur:**\n    ```sh\n    pip install pyspur\n    ```\n\n2. **Initialize a new project:**\n    ```sh\n    pyspur init my-project\n    cd my-project\n    ```\n    This will create a new directory with a `.env` file.\n\n3. **Start the server:**\n    ```sh\n    pyspur serve --sqlite\n    ```\n    By default, this will start PySpur app at `http:\u002F\u002Flocalhost:6080` using a sqlite database.\n    We recommend you configure a postgres instance URL in the `.env` file to get a more stable experience.\n\n4. **[Optional] Configure Your Environment and Add API Keys:**\n    - **App UI**: Navigate to API Keys tab to add provider keys (OpenAI, Anthropic, etc.)\n    - **Manual**: Edit `.env` file (recommended: configure postgres) and restart with `pyspur serve`\n\n\n# 😎 Feature Reel\n\n## Human-in-the-loop breakpoints:\n\nThese breakpoints pause the workflow when reached and resume whenever a human approves it.\nThey enable human oversight for workflows that require quality assurance: verify critical outputs before the workflow proceeds.\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F98cb2b4e-207c-4d97-965b-4fee47c94ce8\n\n## Debug at Node Level:\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F6e82ad25-2a46-4c50-b030-415ea9994690\n\n## Multimodal (Upload files or paste URLs)\n\nPDFs, Videos, Audio, Images, ...\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F83ed9a22-1ec1-4d86-9dd6-5d945588fd0b\n\n## Loops\n\n\u003Cimg width=\"1919\" alt=\"Loops\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F3aea63dc-f46f-46e9-bddd-e2af9c2a56bf\" \u002F>\n\n## RAG\n\n### Step 1) Create Document Collection (Chunking + Parsing)\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fc77723b1-c076-4a64-a01d-6d6677e9c60e\n\n### Step 2) Create Vector Index (Embedding + Vector DB Upsert)\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F50e5c711-dd01-4d92-bb23-181a1c5bba25\n\n## Modular Building Blocks\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F6442f0ad-86d8-43d9-aa70-e5c01e55e876\n\n## Evaluate Final Performance\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F4dc2abc3-c6e6-4d6d-a5c3-787d518de7ae\n\n## Coming soon: Self-improvement\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F5bef7a16-ef9f-4650-b385-4ea70fa54c8a\n\n# 🛠️ PySpur Development Setup\n#### [ Instructions for development on Unix-like systems. Development on Windows\u002FPC not supported ]\n\nWe recommend using Cursor\u002FVS Code with our dev container (`.devcontainer\u002Fdevcontainer.json`) for:\n- Consistent development environment with pre-configured tools and extensions\n- Optimized settings for Python and TypeScript development\n- Automatic hot-reloading and port forwarding\n\n**Option 1: Cursor\u002FVS Code Dev Container (Recommended)**\n1. Install [Cursor](https:\u002F\u002Fwww.cursor.com\u002F)\u002F[VS Code](https:\u002F\u002Fcode.visualstudio.com\u002F) and the [Dev Containers extension](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-vscode-remote.remote-containers)\n2. Clone and open the repository\n3. Click \"Reopen in Container\" when prompted\n\n**Option 2: Manual Setup**\n1. **Clone the repository:**\n    ```sh\n    git clone https:\u002F\u002Fgithub.com\u002FPySpur-com\u002Fpyspur.git\n    cd pyspur\n    ```\n\n2. **Launch using docker-compose.dev.yml:**\n    ```sh\n    docker compose -f docker-compose.dev.yml up --build -d\n    ```\n\n3. **Customize your setup:**\n    Edit `.env` to configure your environment (e.g., PostgreSQL settings).\n\nNote: Manual setup requires additional configuration and may not include all dev container features.\n\n# ⭐ Support us\n\nYou can support us in our work by leaving a star! Thank you!\n\n![star](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F71f65273-6755-469d-be44-087bb89d5e76)\n\nYour feedback will be massively appreciated.\nPlease [tell us](mailto:founders@pyspur.dev?subject=Feature%20Request&body=I%20want%20this%20feature%3Ai) which features on that list you like to see next or request entirely new ones.\n","PySpur是一个面向AI工程师的可视化工作流平台，旨在加速AI代理的迭代开发。其核心功能包括通过图形界面定义测试用例、构建和优化代理，并支持多模态数据处理、结构化输出编辑以及文件上传等功能。技术特点上，PySpur采用TypeScript编写，强调人机协作的工作流设计，允许在循环中调用工具并保持记忆，同时提供了向量数据库的数据解析与更新能力。该项目特别适用于需要快速迭代复杂AI系统的情景下，如开发对话式AI、智能客服等应用场景，帮助开发者更高效地调试和完善AI模型。","2026-06-11 03:46:07","high_star"]