← 返回
未分类 中文

Tidepool

Build and deploy any kind of web app without leaving the command line. This project is built for autonomous AI agents. Handles auth, Stripe payments, admin p...
在命令行中构建和部署任何类型的Web应用。本项目专为自主AI代理设计,支持认证、Stripe支付、管理等功能。
greydanus greydanus 来源
未分类 clawhub v1.0.1 1 版本 100000 Key: 无需
★ 1
Stars
📥 581
下载
💾 0
安装
1
版本
#latest

概述

Tidepool

Build and deploy any kind of web app without leaving the command line. Build for autonomous AI agents. Handles auth, Stripe payments, admin panels, email, database, file storage, custom domains, markdown, secrets, and real-time SSE (chat apps/online games) out of the box. Minimalist approach.

Use when: the user wants to create a website, deploy a Python web app, add subscriptions or paywalls, set up user login, or build anything with a URL. Provides the tidepool CLI and tp.* runtime API. Deploys in seconds, scales to 10+ replicas. NOT for: non-web tasks, general Python scripting.

Learn the API

Before building anything, fetch the full API reference:

curl -s https://tidepool.sh/api | python3 -m json.tool

This returns every endpoint, every tp.* runtime tool, and usage examples. Read it first.

Workflow

Zero to live Substack clone in one command:

pip install tidepool && tidepool quickstart

Or build from scratch:

tidepool init my-app && cd my-app
# edit main.py
tidepool dev                    # local dev server at http://localhost:8000
tidepool register --email you@example.com
tidepool deploy                 # live at https://my-app.tidepool.sh

Iterate on a live pod:

tidepool pull <hash>            # pull pod code + data to work locally
tidepool dev                    # test changes locally
tidepool push                   # push code, db, secrets, files back to prod
tidepool push --secret STRIPE_KEY=sk_xxx   # override a secret
tidepool push --replace-db                 # replace all db keys instead of merging
tidepool push --sync            # also delete remote files not present locally
tidepool push -y                # skip confirmation prompt

Runtime (import tp)

main.py runs once at startup to register routes and configure the app. The server dispatches requests to handlers.

import tp

tp.auth = 'standard'                          # email/password auth
tp.payments = {'products': [{'id': 'pro', 'name': 'Pro', 'price': 500, 'recurring': 'month'}]}
tp.admin = {'users': ['admin@example.com']}

@tp.route('/')
def home(req):
    posts = tp.db.prefix('post:', reverse=True, limit=10)
    return render_posts(posts, req.user)

@tp.route('/post/:slug', methods=['GET', 'POST'])
def post(req, slug):
    if req.method == 'POST':
        tp.db.set(f'post:{slug}', req.body)
        return None  # 303 redirect
    return tp.db.get(f'post:{slug}')

Handler returns: str → HTML, dict → JSON, int → status, None → redirect, tuple → (body, status), generator → SSE.

Request object: req.path, req.method, req.query, req.user, req.body, req.files.

Key tools

ToolUsage
-------------
tp.route(path)@tp.route('/api/:id', methods=['GET','POST'])
tp.page(path, html)tp.page('/about', '

About

')
tp.auth'standard', 'paywall', or config dict
tp.payments{products: [{id, name, price, recurring}]}
tp.admin{users: ['admin@x.com'], models: {...}}
tp.db.get(k), .set(k,v), .delete(k), .prefix(p), .keys(), .count()
tp.files.read(name), .write(name, data), .list(), .delete(name)
tp.email()tp.email('to@x.com', 'Subject', 'body', html='

hi

')
tp.httptp.http.get(url), .post(url, json={})
tp.secretsRead-only dict from tp_data/secrets.json
tp.statePublic JSON state, readable at ?format=json
tp.background()@tp.background(seconds=3600) for recurring tasks
tp.markdown()Convert markdown string to HTML
tp.create_user()tp.create_user('email', 'pass', subscriptions={})
tp.users()Returns all users (password hashes excluded)
tp.publish()tp.publish({'messages': msgs}) — update public JSON state (ETag polling)

Notes

  • Local dev stores data in tp_data/ (db.json, secrets.json, files/).
  • Secrets go in tp_data/secrets.json — they are read-only at runtime.
  • Static files in static/ are served at /static/.
  • Jinja2 is pre-installed for templating.
  • tidepool eject copies runtime files into your project for full control.

版本历史

共 1 个版本

  • v1.0.1 当前
    2026-05-02 10:40 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-agent

self-improving agent

pskoett
记录自身发现以实现自我改进的技能
★ 4,129 📥 886,913
ai-agent

Skill Vetter

spclaudehome
AI智能体技能安全预审工具。安装ClawdHub、GitHub等来源技能前,检查风险信号、权限范围及可疑模式。
★ 1,244 📥 271,817
ai-agent

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,418 📥 325,896