Why PySpur?

1. Rapid Feedback Loops

  • Build and test in one place: Run the workflow, observe each node’s outputs, and iterate.
  • Drag-and-drop: Add new nodes that just work off-the-shelf within seconds.
  • Vendor unification: Instead of 20 nodes for 20 vendors, unified nodes enable you to jump between eg. models quickly to see which one is best for your use case.

2. AI-Native

Unlike traditional workflow platforms, PySpur is AI-Native and comes with batteries included.

  • RAG: Parse, chunk, embed, upsert data and maintain vector indices.
  • Loops: Workflow graphs can include cycles for iterative tool calling.
  • Evals: Score the performance of your agents to improve their robustness.
  • Tools: >10 Popular integrations available as tools, with more to come.
  • Multimodal: Support for video, images, audio, texts, code.

3. Easy Extensibility

You can add custom nodes with a simple Python decorator:

@NodeRegistry.register(
    category="Integrations",
    display_name="Firecrawl Scrape",
    logo="/images/firecrawl.png"
)
class FirecrawlScrapeNode(BaseNode):
    name = "firecrawl_scrape_node"
    config_model = FirecrawlScrapeNodeConfig
    input_model = FirecrawlScrapeNodeInput
    output_model = FirecrawlScrapeNodeOutput
    category = "Firecrawl"  # This will be used by the frontend for subcategory grouping

    async def run(self, input: BaseModel) -> BaseModel:
        """
        Scrapes a URL and returns the content in markdown or structured format.
        """
        pass

Next steps

The first step to documentation is setting up your editing environments.