Cockpit

· #294 most-used

Manage structured content and deliver it anywhere via API

ProductivityDocumentsDatabaseDeveloperAutomationWebsite & CMS

Cockpit is a self-hosted, API-first headless CMS that gives teams complete data ownership and zero vendor lock-in. Built on PHP with a REST and GraphQL API, it lets you define any content model — Collections for repeatable items, Singletons for unique configurations, Trees for hierarchical structures, and Forms for structured intake. Connect it to Actionist and your agents can create, read, update, and delete collection entries, flip singleton values for site-wide content like pricing and legal pages, store and retrieve form submissions, and query multiple collections in a single batch call — all without anyone logging into the CMS.

Average time saved
7 hours
per person · per month
≈ 1 workdays back

Eliminates manual work. Agents eliminate the manual cycle of logging into Cockpit to create, update, and archive content entries — the most time-consuming routine for teams using a self-hosted headless CMS.

Schedule

What your Cockpit agent runs on autopilot

A week of scheduled jobs your Actionist agent will execute on your behalf.

28Scheduled jobs
7Agents at work
24/7Always on
Agents
TueThu
Tue
Wed
Thu
7a
8a
9a
10a
11a
12p
1p
2p
3p
4p
5p
6p
Multi-app workflows

Cockpit × every other app you use

End-to-end automations that span multiple apps — each one a real business outcome.

6Workflows
6Apps spanned
~13 hrsSaved / week
6Personas served
For marketing
Featured3 apps

Approved content published to Cockpit without CMS login

When a content item is approved in Notion, the agent reads the full content fields, creates a new collection entry in Cockpit's blog model, sets its published status, and posts the live API URL to the content team's Slack channel — the front-end picks up the new entry within about a minute, and no one touched the CMS.

~3 hrs

Time saved for your team — every week, on autopilot

The flow
Trigger·When a Notion page status changes to Approved in the content tracker
Result
Create a collection entry in the blog modelUpdate a collection entry to set published status to truePost publish confirmation with the content API URL to #content-team
The win
Saved per run
20 min
Runs / week
~8×
Content goes live from approval to API in under a minute
Driven byMarketing Agent
ROI

Savings

What your team gets back — two angles: what you stop doing manually, and what that's worth.

Without Actionist

What you do manually today

With Actionist

What your agent runs for you

  • Sales
    40 min / week
    Manual CMS entry for every content update

    A sales ops manager logs into Cockpit, navigates to the collection, fills in each field manually, and saves — 10 minutes per content item, repeated for every new case study or one-pager.

    Sales Agent
    0 min
    Agent queries and publishes sales content automatically

    When a case study is approved in Notion, the agent creates the collection entry in Cockpit and the sales portal's API picks it up before the rep's next call — no CMS login or manual upload.

  • Marketing
    30 min / week
    Manual publish and archive cycle for every campaign

    The marketing manager logs into Cockpit at launch to set published=true and logs in again at end-of-campaign to update the status field — every campaign requires two manual CMS sessions.

    Marketing Agent
    0 min
    Agent publishes and archives campaign content on schedule

    The agent creates campaign entries at launch, flips their published status on the scheduled date, and archives them when the campaign ends — all without a developer or CMS login from the marketing team.

  • Customer Support
    45 min / week
    Manual knowledge base maintenance and form export

    The support lead logs into Cockpit weekly to update stale articles, then exports form submissions to a spreadsheet for the team to review — two manual processes, both error-prone when rushed.

    Customer Support Agent
    0 min
    Agent updates help articles and surfaces feedback automatically

    The agent updates stale help-center entries with corrections from ticket reviews and retrieves weekly form submission digests without anyone logging into Cockpit or exporting CSV files.

  • Human Resources
    35 min / week
    Manual job posting entry and closure

    HR logs into Cockpit to create each posting manually, filling every field, and returns after a hire to close it. With multiple open roles, posting delays are common and filled roles often stay live for days.

    Human Resources Agent
    0 min
    Agent creates and closes job postings via API

    When a role is approved in the headcount tracker, the agent creates the Cockpit job-posting entry immediately — the careers page goes live within about a minute. Filled roles are closed the same day.

  • Finance
    25 min / week
    Manual pricing update and developer handoff

    Finance updates the pricing spreadsheet, emails the request to the web team, and waits for a developer to log into Cockpit and update the singleton — a process that often takes 24-48 hours.

    Finance Agent
    0 min
    Agent syncs pricing and creates financial records via API

    When the approved pricing spreadsheet changes, the agent updates the Cockpit pricing singleton in seconds — the website reflects the new price within about a minute, with no developer or CMS involvement.

  • Operations
    90 min / week
    Manual cross-collection content audit

    An ops team member logs into Cockpit weekly, browses each collection manually for stale entries, updates settings one by one, and tracks changes in a spreadsheet — a process that takes hours and is often skipped.

    Operations Agent
    0 min
    Agent maintains content health across all collections on a schedule

    The agent runs weekly batch queries across all Cockpit collections, flags stale entries, updates settings singletons, and removes confirmed outdated content — a content health audit that runs without anyone logging in.

  • Legal
    20 min / week
    Manual policy singleton update after approval

    The legal team emails the web team to request a CMS update after every policy change. The web team queues the Cockpit singleton update, which may take days and requires a CMS login — creating a compliance gap.

    Legal Agent
    0 min
    Agent updates legal singletons from approved documents automatically

    When an approved legal document is uploaded to Google Drive, the agent reads it and updates the Cockpit singleton within about a minute — the website's policy page is current without a CMS login or developer ticket.

+ 100s of other Cockpit automations
Average time saved
29 hrs / person / month
Calculator

Calculate what your team saves

Team size
5 people
Hourly rate
$75 / hr
Hours saved / week
9
Hours saved / year
450
Annual ROI
$33,750

Based on Cockpit's typical team usage — the visible tasks plus a few other automations the agent runs: ~1.8 hrs / person / week of admin work automated.

Connect

How to plug Cockpit into Actionist

Pick the connection method that suits your environment.

Connect using a Cockpit API key and your instance's base URL. Generate the key in your Cockpit admin panel under Settings → API Keys, selecting the content scopes your agent requires.

1
Create an API Key in Cockpit

Log in to your Cockpit admin panel and navigate to Settings → API Keys. Click Create API Key and give it a descriptive name such as 'Actionist'.

2
Set scopes and copy the key

Select the scopes your agent needs — content read, content write, or both. Copy the generated API key and store it securely.

3
Enter credentials in Actionist

In Actionist, find Cockpit in the Apps tab and click Connect. Paste your API key and enter the base URL of your Cockpit instance (e.g. https://cms.yoursite.com). Click Test connection — Actionist will verify the handshake before saving.

Credentials you'll need
API Key*
Cockpit admin panel → Settings → API Keys → Create new API key
Instance URL*
The base URL of your self-hosted Cockpit instance, e.g. https://cms.yoursite.com
Actions

13 actions your agent can call

Read and write operations available to your Actionist agent.

Triggers

0 events your agent can react to

Events your agent watches for, and the actions it kicks off in response.

This app has no triggers yet.
MCP servers

MCP servers that work with Cockpit

Connect Actionist to MCP servers built for or around this app.

One Person Company OS

Build and update a visual operating cockpit for AI-native solo founders.

FAQs

Questions about Cockpit + Actionist

How does Actionist connect to Cockpit?
Go to the Apps tab, find Cockpit, and click Connect. Cockpit uses API key authentication — open your Cockpit admin panel, navigate to Settings → API Keys, create a new API key with the scopes you need, and paste it into the API key field in Actionist. Actionist runs a read-only test call against your Cockpit instance to confirm the handshake before any actions run. You will also need to provide the base URL of your self-hosted Cockpit instance.
Cockpit is self-hosted — does Actionist still work with it?
Yes. Cockpit is self-hosted on your own server or cloud environment — your content never passes through any vendor's infrastructure. Cockpit is MIT-licensed and supports deployment on any server running PHP 8.3+ with either SQLite or MongoDB. You can host it on your own VPS, AWS, GCP, or any container environment. Actionist connects to your instance over HTTPS using your API key; no content is cached or stored on Actionist's side beyond what's needed to execute the action.
What content models does Cockpit support and which can the agent use?
Cockpit organizes content into three model types: Collections (repeatable items like blog posts, products, or events), Singletons (unique one-off content like a settings page or an about section), and Trees (hierarchical content like navigation menus or category structures). You define the schema for each model — Cockpit provides 20+ field types. Your agents can read and write to any model you create, so workflows are specific to your content architecture, not to a fixed schema.
Can the agent filter collection entries, or does it pull everything?
Yes. Cockpit's content API supports filtering using MongoDB-style query syntax. When your agent calls Get all collection entries it can pass filter parameters to return only items matching specific field values, date ranges, or complex conditions. Combined with field projection to limit which fields are returned, this means your agent only fetches and processes the exact subset of content it needs — efficient for both API response size and downstream processing steps.
Does Cockpit support multi-language content, and can agents query by locale?
Yes. Cockpit supports multi-language content natively. When you call Get a singleton or Get all collection entries you can pass a locale parameter to retrieve content in a specific language. Cockpit applies fallback logic when a translation doesn't exist for a given locale, returning the default-language value instead. Your agents can query content in any locale your Cockpit instance has configured, making it straightforward to build locale-aware publishing and content sync workflows.
Does Cockpit have webhooks so the agent can react to content changes?
Cockpit has a built-in webhooks feature. You can configure Cockpit to POST to an external URL when content events occur — item created, updated, or deleted. In Actionist, you can listen to those webhook payloads as an incoming trigger. This means your agents can react to content changes within about a minute of them happening in Cockpit, rather than running on a schedule. Set up the webhook in Cockpit's Settings → Webhooks and point it at your Actionist webhook receiver.
How do I keep Cockpit API responses small when collections have many fields?
Cockpit's REST API and GraphQL interface both support field projection — you pass a list of fields you want returned and the API omits the rest. For collections with many fields, this significantly reduces response payload size and speeds up agent processing. In the Get all collection entries action you can specify exactly which fields to include. Combined with pagination via limit and skip parameters, your agent can process large collections in batches without hitting memory or timeout limits.
When should I use Get a singleton versus Get all collection entries?
A Singleton in Cockpit is a single content item with no repeated instances — used for things like global site settings, a homepage hero block, or an about page. The Get a singleton action fetches the single object associated with that model name. When you update site-wide settings (a brand color, a promotional banner text, a feature flag), your agent can read the singleton to get current values and write back an updated singleton without touching any collection items. Singletons are the right model for content that exists exactly once.