Skip to main content

A visual programming interface for node based programming in python

Project description

Typeflow

Typeflow is a visual, type-safe workflow engine for Python.
It turns your Python functions and classes into reusable visual nodes that can be connected to build complete systems.

You design workflows visually — Typeflow generates the orchestrator and runs it with full type validation.


Features

Feature Description
Visual DAG editor React Flow UI served locally
Type-safe nodes @node() and @node_class decorators
Deterministic lifecycle compile → generate → run
Live execution Real-time updates via Server-Sent Events (SSE)
Auto orchestrator Generates src/orchestrator.py
Isolated dependencies Project-level .venv via uv
Python-first No external server or cloud required
Fully offline Pure local development

Installation

pip install typeflowapp

Quickstart

1. Create a new project

typeflow setup my_project
cd my_project
source .venv/bin/activate    # macOS/Linux
# or
.\.venv\Scripts\activate     # Windows

2. Create your first node

typeflow create-node word_counter

Edit src/nodes/word_counter/main.py:

from typeflow import node

@node()
def word_counter(text: str) -> int:
    """Count words in a string."""
    return len(text.split())

3. Create a class node

typeflow create-class TextFormatter

Edit src/classes/TextFormatter.py:

from typeflow import node_class

@node_class
class TextFormatter:
    prefix: str = ""
    suffix: str = ""

    def format(self, text: str) -> str:
        """Apply prefix and suffix."""
        return f"{self.prefix}{text}{self.suffix}"

4. Validate all nodes

typeflow validate

5. Open the visual editor

typeflow start-ui

Navigate to: http://localhost:8000

6. Build your workflow

Drag and connect:

Input → TextFormatter.format → word_counter → Output

7. Compile, generate, and run

typeflow compile
typeflow generate
typeflow run

This builds and executes the orchestrator at src/orchestrator.py.


Documentation

Complete documentation, examples, and guides are available at:

https://typeflow.dev (replace with your hosted MkDocs URL)


Why Typeflow?

  • Brings structure, clarity, and determinism to workflow creation
  • Makes Python functions/classes visually orchestratable
  • Encourages modular, strongly typed design
  • Future-ready for AI-assisted node generation
  • Ideal for:
    • Data pipelines
    • ETL
    • Automation
    • ML preprocessing
    • AI agents

Contributing

Contributions are welcome!
See CONTRIBUTING.md or See Contributing from hosted Documentation for details on:

  • Development workflow
  • Testing standards
  • Area ownership

License

Licensed under the GNU General Public License.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typeflowapp-0.0.4.tar.gz (491.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

typeflowapp-0.0.4-py3-none-any.whl (521.8 kB view details)

Uploaded Python 3

File details

Details for the file typeflowapp-0.0.4.tar.gz.

File metadata

  • Download URL: typeflowapp-0.0.4.tar.gz
  • Upload date:
  • Size: 491.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for typeflowapp-0.0.4.tar.gz
Algorithm Hash digest
SHA256 388403274ad4ace1a38480239bc46d536289aa5322b01ac05ca0a5f476a4aa98
MD5 0fe3feda932daf2aa394f8e1cc1f2bc7
BLAKE2b-256 54b4033bd4358b306f674cd368ccd9816d118868fd2119134b86c55d3f67cea4

See more details on using hashes here.

File details

Details for the file typeflowapp-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: typeflowapp-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 521.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for typeflowapp-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 187b20d70db720a416178cf32ccbb2bafa1305df17cc9afd2693f932ea4b8812
MD5 2ab9cfcf2904d038dc398314f840842c
BLAKE2b-256 2693af14823af6230f8887b25ca1be71cbffdbd45ffb3334f4d25d7050f8900a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page