Skip to main content

Action Platform

From idea to production in one command — on any stack, on any cloud.

PyPI Python License Templates


Every new service costs the same week: scaffold, lint config, CI, versioning, deploy pipeline, IAM. Then the next one drifts from the last. Action Platform turns that week into one command and keeps every project on the same rails — without a control plane to host, a UI to learn, or a vendor to trust with your cloud.

pipx install action-platform

action-platform init web python fastapi --name "orders" --cloud aws/lambda

Thirty seconds later you have a FastAPI service with tests, lint, CI wired, a SAM template, a least-privilege IAM policy, and a GitHub repo already pushed (--no-push to keep it local).

Why teams pick it

One command, whole lifecycle initreleasedeployrollbackdiagnosedestroy. Same verbs for a Python API on Lambda, a Go service in Docker, a React app on Amplify.
Templates from production, not tutorials Every project template is extracted from a real shipping product. Real layout, real CI, real gotchas already fixed.
Cloud is a layer, not a fork Projects stay cloud-agnostic. --cloud aws/lambda overlays deploy files; swap to docker tomorrow with one command.
Your CI, your account, your git Runs on GitHub Actions, GitLab CI or Jenkins you already have. Infra lands in your AWS account through OIDC — no long-lived keys, no agent, no SaaS in the loop.
Governance that ships with the code Conventional Commits enforced, changelog generated, AGENTS.md for humans and AI agents, Trivy scans, least-privilege IAM in requirements/.
Fix once, everywhere CI logic lives in versioned shared repos (ci-scripts, ci-github, ci-gitlab, ci-jenkins). Bump v1, every project picks it up.

What you get

action-platform init --list
Type Stacks Ready with
web python (FastAPI, FastMCP), go (Gin), node (React) /ping, versioned API, tests, lint, CI
library python, go, php, node, java, rust packaging, version test, publish workflow
docs mkdocs Material theme, strict build in CI
plugin chrome Manifest V3, popup, background, tests, store zip
empty platform.toml + code quality only
Cloud Adds
aws/lambda SAM template, HTTP API, custom domain, deploy workflow, IAM policy
aws/amplify amplify.yml, security headers, start-job workflow, IAM policy
docker Dockerfile per language, compose
Service Providers
postgres docker (local), aws-rds (Terraform/OpenTofu + SSM)

Commands

action-platform init                              # interactive: type → stack → template → name → ci
action-platform init web go gin --ci gitlab       # direct
action-platform init web python --cloud docker    # project + deploy overlay
action-platform init ... --no-push                # skip creating the remote repo

action-platform cloud set aws/lambda              # add or switch the deploy target
action-platform service add postgres --provider aws-rds

action-platform release patch                     # bump, changelog, tag, GitHub release
action-platform deploy --stage prod
action-platform rollback
action-platform diagnose
action-platform destroy

Everything a project needs is declared in one file:

[project]
name = "orders"
type = "web"
stack = "python"
template = "fastapi"
language = "python"

[source_host]
kind = "github"
repo = "acme/orders"

[deploy]
target = "aws/lambda"

[services]
postgres = "aws-rds"

Use it from an AI client

The platform ships as an MCP server. Claude Code, Codex, Cursor — anything that speaks MCP — gets list_matrix, init_project, cloud_set, service_add, release, deploy, diagnose as tools, plus skills that make the agent preview and ask before pushing or deploying.

pip install "action-platform[mcp]"
action-platform mcp                 # stdio
action-platform mcp --http          # http://127.0.0.1:8765/mcp

Claude Code:

/plugin marketplace add actionplatform/action-platform
/plugin install action-platform@action-platform

Any client — add to .mcp.json:

{ "mcpServers": { "action-platform": { "command": "uvx", "args": ["--from", "action-platform[mcp]", "action-platform-mcp"] } } }

Extend it

Deploy targets are plugins. Implement the DeployTarget contract — preflight, create, deploy, switch_traffic, rollback, diagnose, delete — publish it under the action_platform.deploy_target entry-point group, and action-platform deploy finds it by name.

from action_platform import ActionPlatform, Config
from action_platform.providers import SourceGithub

tool = ActionPlatform(config=Config(source_host=SourceGithub(repo="acme/orders")))
tool.release("minor")

Templates are plain cookiecutters in actionplatform/templates. Add a stack or a cloud with a pull request — the CLI reads index.toml, nothing to redeploy. Point ACTION_PLATFORM_TEMPLATES at a local checkout while you work on them.

Ecosystem

Repo Role
templates projects, clouds, services
ci-scripts the one implementation of setup / check / release / commit lint
ci-github · ci-gitlab · ci-jenkins thin wrappers per CI
strategy why it is built this way

License

Apache 2.0.

Download files

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

Source Distribution

action_platform-0.1.1.tar.gz (32.2 kB view details)

Uploaded Source

Built Distribution

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

action_platform-0.1.1-py3-none-any.whl (43.7 kB view details)

Uploaded Python 3

File details

Details for the file action_platform-0.1.1.tar.gz.

File metadata

  • Download URL: action_platform-0.1.1.tar.gz
  • Upload date:
  • Size: 32.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for action_platform-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d301327dc0c9540287fb309f6cd9406903760f8aea15b407306ac3f1791ceddb
MD5 e6d465b97c6d552aea4f8d5eed0f1b6c
BLAKE2b-256 4fe7c0d4662e8af6339e5b4c3be633ce75900569c1951e4f46ff9813c8e2678e

See more details on using hashes here.

Provenance

The following attestation bundles were made for action_platform-0.1.1.tar.gz:

Publisher: python-publish-pypi.yml on actionplatform/action-platform

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file action_platform-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: action_platform-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 43.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for action_platform-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e10d0016d38b0645846769322739da238002f4af4844c8d3405768cc6b9131f2
MD5 8000cf6a1588b643cbcf044344165e36
BLAKE2b-256 30f2a4eaa81e94b2c23f02b715f659a26b99275daf3a9c264e37d3200a7037e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for action_platform-0.1.1-py3-none-any.whl:

Publisher: python-publish-pypi.yml on actionplatform/action-platform

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.0

2 files

0.1.2

2 files

This release

0.1.1 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page