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.

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.