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 Git-flow and Conventional Commits enforced by git hooks before a commit exists and by CI on every PR; 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 install [--dry-run]               # existing repo: platform.toml, hooks, code quality, CI — never overwrites

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

action-platform branch feature 42 login           # develop (or main) → pull → feature/42-login → push
action-platform branch hotfix PROJ-7              # from main/master
action-platform gitflow                           # audit current branch + commits; --install-hooks
action-platform pr [--draft] [--dry-run]          # PR for the current branch: target from git-flow, body from commits
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.0.tar.gz (42.9 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.0-py3-none-any.whl (60.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: action_platform-0.1.0.tar.gz
  • Upload date:
  • Size: 42.9 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.0.tar.gz
Algorithm Hash digest
SHA256 c3b9e1d9318784ccdd9f6a772a2fbbf78a9b7b86bd1a10002cf1401da2a11b55
MD5 857c76e4826d909a745c4f4052fadc1a
BLAKE2b-256 572b51467c8f599479b3b085106adb4e9def86ae370a4154d530ac7dfafb53d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for action_platform-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: action_platform-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 60.3 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dcef10387c7197ca77fd5ca8ef725e02ca2986c2874b81a7b84974807960e990
MD5 fc9107f2cbeabaa63922f02bf7a4c0e3
BLAKE2b-256 9b874f3229058d4f8d0d458e1f97800a18a75df4b1fa4a91be10db6d8a6dabe4

See more details on using hashes here.

Provenance

The following attestation bundles were made for action_platform-0.1.0-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

0.1.1

2 files

This release

0.1.0 This release

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