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.2.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.2-py3-none-any.whl (60.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: action_platform-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 758804a4b593d2d1caeacf89e989637a4e359ab406fdad5e1545a100f02f166f
MD5 c159bec3723c8af1ba507e2fe12d0191
BLAKE2b-256 e573c2a0459f141d5a5e4ff6efaf7a2bc0339457370ee5117d7460876a6da38b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: action_platform-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4341a63281a7aaa41cbd9b94f96b20d4abb4e590610a6c4c86dddf7dcc4d14a7
MD5 75fc5544884851446a96fcb16a45dfe6
BLAKE2b-256 6b743f9ac5bde952653e97f08ffebc2e7fbf768653d283225be6755ada938a9b

See more details on using hashes here.

Provenance

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

This release

0.1.2 This release

2 files

0.1.1

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