Skip to main content

langgraph lite cron

Project description

⏰ LangGraph Lite Cron

  • A free, self-hosted alternative to LangGraph Platform's Cron Jobs with the same API interface (compatible with langgraph-sdk).
  • Designed for use with ambient agents to enable scheduled and recurring tasks.

Requirements: Python 3.9+, PostgreSQL, Redis

⚠️ Warning: Early development. Not for production use.

⚡ Quick Start

1. Install

pip install langgraph-lite-cron

Or, if you are using uv (including pre-release versions):

uv add --prerelease allow langgraph-lite-cron

2. Add Custom Routes

Add cron routes to your FastAPI app (e.g., ./src/agent/webapp.py):

from collections.abc import AsyncGenerator
from contextlib import asynccontextmanager

from fastapi import FastAPI

from langgraph_lite_cron import crons
from langgraph_lite_cron.scheduler import create_scheduler


@asynccontextmanager
async def lifespan(app: FastAPI) -> AsyncGenerator[None]:
    async with create_scheduler() as scheduler:
        await scheduler.start_in_background()
        app.state.scheduler = scheduler

        yield

        await scheduler.stop()
        await scheduler.wait_until_stopped()


app = FastAPI(lifespan=lifespan)
app.include_router(crons.router)

3. Configure langgraph.json

Update your langgraph.json to include the custom app:

{
    "dependencies": [
        "."
    ],
    "graphs": {
        "agent": "./src/react_agent/graph.py:graph"
    },
    "env": ".env",
    "image_distro": "wolfi",
    "http": {
        "app": "./src/agent/webapp.py:app"
    },
    "dockerfile_lines": [
        "ENV UV_PRERELEASE=allow"
    ]
}

4. Deploy

Option 1: In-memory mode (development)

langgraph dev

Option 2: Postgres + Redis mode (development)

langgraph up

Option 3: Self-hosted Standalone Server

5. Use Cron API

from langgraph_sdk import get_client

client = get_client(url="http://localhost:8123")

# Create thread
thread = await client.threads.create()

# Schedule job for thread (stateful)
cron_job = await client.crons.create_for_thread(
    thread["thread_id"],
    "agent",
    schedule="27 15 * * *",
    input={"messages": [{"role": "user", "content": "What time is it?"}]},
)

# Schedule job without thread (stateless)
cron_job_stateless = await client.crons.create(
    "agent",
    schedule="0 9 * * *",
    input={"messages": [{"role": "user", "content": "Good morning!"}]},
)

# List all cron jobs
crons = await client.crons.search(assistant_id="agent")

# Delete a specific job
await client.crons.delete(cron_job["cron_id"])

# Delete all jobs
for cron in crons:
    await client.crons.delete(cron["cron_id"])

⏱️ Cron Format

Standard cron format: minute hour day month weekday

  • 0 9 * * * - 9:00 AM daily
  • 30 14 * * 1 - 2:30 PM every Monday
  • 0 */4 * * * - Every 4 hours

💡 Example Use Cases

  • executive-ai-assistant – An AI agent acting as an Executive Assistant
  • social-media-agent – Generates Twitter and LinkedIn posts from a given URL with human-in-the-loop approval
  • agents-from-scratch – Step-by-step tutorial for building an email agent with Gmail API, HITL, and memory
  • ff-take-bot – A “Take Bot” agent that runs in the background to keep a fantasy football league active
  • ambient-agent-101 – Learn LangGraph basics by building an ambient agent that manages Gmail
  • reddit-radar – AI agent for detecting or analyzing Reddit posts
  • daily-brew – Automates publishing daily reflection content to a Slack channel

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

langgraph_lite_cron-0.0.3.tar.gz (66.0 kB view details)

Uploaded Source

Built Distribution

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

langgraph_lite_cron-0.0.3-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file langgraph_lite_cron-0.0.3.tar.gz.

File metadata

  • Download URL: langgraph_lite_cron-0.0.3.tar.gz
  • Upload date:
  • Size: 66.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for langgraph_lite_cron-0.0.3.tar.gz
Algorithm Hash digest
SHA256 9ef277edc1980e336e60b4ca411053019986a77445cc18783442245350d95d66
MD5 ca095acb571bf6c03031ddd03c2aa9c8
BLAKE2b-256 288ef51f1983a1569859db335148797c74a5c9577bb2844adbd69bd4eea38626

See more details on using hashes here.

File details

Details for the file langgraph_lite_cron-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for langgraph_lite_cron-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 13717023f292293a7fccf0e8ad8bd962bccc503521068761e94e690d67ffd878
MD5 01c0f2b829393b334c8053a777034493
BLAKE2b-256 3ba60d2433ef7d8bcc1abedabd591b3aaf89cb19b12f4c4b7b06346a45efbbe8

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