Your scripts, as tools your team can run
Add @deploy to a Python function and push. Shipfn turns it into a form with schedules and run history.
Free for 30 days · No credit card required
1
Write a normal Python function in your editor.
From a function to a tool in one push
Write a function
Plain Python with type hints. Add @deploy, a title and the secrets it needs.
Push to GitHub
Every push builds and deploys. Roll back to any version that's still around.
Your team runs it
Each function becomes a form in the web app, and a command in the terminal.
Start with the SDK
Install it where you write your scripts. shipfn init sets up a project with a starter function and a guide, and shipfn local runs any function on your machine before you push.
Python today. More languages are coming, and they all deploy the same way.
$pip install "shipfn @ git+https://github.com/TheRizzock/shipfn-sdk"$shipfn init$shipfn checkThe type hints are the interface
No front end to build or keep in sync. The same signature drives the web form, the input checks and the command line, so they can't drift apart.
- Literal and Enum become dropdowns, bool a checkbox, date a date picker
- Return a list of dicts for a table, a str for Markdown, or a file to download
- shipfn check finds problems before you push; shipfn local runs it on your machine
from typing import Literal
from shipfn import deploy
@deploy(title="Refund an order", secrets=["STRIPE_KEY"])
def refund(
order_id: str,
reason: Literal["Damaged", "Late", "Other"],
notify_customer: bool = True,
) -> str:
"""Refunds the order in Stripe and records why."""
...
return f"Refunded {order_id}"Everything around the function, handled
Forms from type hints
Dropdowns from Literal, dates, files, lists and models. Validation matches the function exactly.
Schedules
Run anything on a cron, in any time zone, as the person who set it up.
Run history
Every run keeps its inputs, logs, result and files. Tables download as CSV.
Secrets by scope
Team, project or single function. Injected at run time, never shown to the people running it.
Share with the right people
Give the whole team or chosen people run or manage access, per function.
Flows
Offer next steps on each result row: find a user, then make them an admin, in one click.
Ship the script you keep running by hand
Free for 30 days, no credit card. Connect a GitHub repo, and your first function is live after one push.