/SKILL.md
Access Aident's 1000+ integrations and automation platform. Prefer MCP tools if available; otherwise use HTTPS API fallback.
npx skillsauth add aident-ai/aident-skill aident-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Access 1k+ integrations (Gmail, Slack, GitHub, Firecrawl, Exa, etc.), create and manage automation playbooks, discover templates, and monitor all running automations from a command center dashboard.
It supports two execution modes:
aident server.POST /api/mcp/rest with { tool, arguments } when MCP tools are unavailable.Use MCP mode if the client has MCP tools available named like:
capability_search, skill_list, skill_get_info, skill_executeplaybook_list, playbook_generate, playbook_executetemplate_search, template_list, template_instantiateintegration_status, integration_connectdashboard_active_playbooks, execution_listOtherwise use REST API fallback.
When: The client is connected to the Aident MCP server and can call tools like capability_search, playbook_list, etc.
Setup: See references/mcp.md for client configuration.
Workflow:
auth_logout, delete ~/.aident/credentials.json, then reconnect via OOB flow.integration_connect to connect it, then retry.When: No Aident MCP tools are available in the client.
Authentication is persisted in ~/.aident/credentials.json so tokens survive across sessions:
{
"base_url": "https://app.aident.ai",
"client_id": "<oauth_client_id>",
"access_token": "<bearer_token>",
"refresh_token": "<refresh_token>",
"expires_at": "<ISO8601_timestamp>"
}
AIDENT_TOKEN env var is set. If yes, use it directly as the Bearer token and skip to Step 3. (This is an advanced override -- do not ask the user for it.)~/.aident/credentials.json. If the file exists and has a non-empty access_token:
expires_at is in the past and refresh_token is present, go to Step 2b (refresh).access_token, go to Step 2a (first-time setup).Run these steps automatically -- never ask the user to provide a token manually.
AIDENT_BASE_URL env if set, otherwise https://app.aident.ai.mkdir -p ~/.aidentcurl -s -X POST $BASE_URL/api/mcp/oauth/register \
-H "Content-Type: application/json" \
-d '{
"redirect_uris": ["'"$BASE_URL"'/mcp/oob"],
"client_name": "aident-skill-cli",
"grant_types": ["authorization_code", "refresh_token"],
"response_types": ["code"],
"token_endpoint_auth_method": "none"
}'
Save client_id from the JSON response.$BASE_URL/api/mcp/oauth/authorize?response_type=code&client_id=$CLIENT_ID&redirect_uri=$BASE_URL/mcp/oob
Use open (macOS), xdg-open (Linux), or start (Windows) to launch the browser.~/.aident/credentials.json:
{
"base_url": "$BASE_URL",
"client_id": "$CLIENT_ID",
"access_token": "<pasted_token>",
"refresh_token": "",
"expires_at": ""
}
curl -s -X POST $BASE_URL/api/mcp/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=refresh_token&client_id=$CLIENT_ID&refresh_token=$REFRESH_TOKEN"
If refresh succeeds, update access_token, refresh_token, and expires_at in ~/.aident/credentials.json. If refresh fails (e.g. token revoked or expired), delete the credentials file and go back to Step 2a.
Use the access_token from the credentials file (or AIDENT_TOKEN env) and base_url (or AIDENT_BASE_URL env, default https://app.aident.ai):
curl -s -X POST $BASE_URL/api/mcp/rest \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{ "tool": "<tool_name>", "arguments": { ... } }'
Parse the result field from the JSON response.
On HTTP 401: The token has expired. Go to Step 2b to refresh, then retry the request. If refresh also fails, go to Step 2a.
~/.aident/credentials.json so the next request triggers a fresh OOB flow.executionSessionIdUser: "Find skills for sending emails and send a meeting summary to [email protected]"
Assistant workflow:
capability_search with { "query": "send email" }gmail_send_email)skill_execute with the skill and inputUser: "Send an email to [email protected] with today's meeting notes"
Assistant workflow (no ~/.aident/credentials.json found):
~/.aident/credentials.jsoncapability_search for email skills via RESTskill_execute to send the email via RESTUser: "List my playbooks"
Assistant workflow (reads existing ~/.aident/credentials.json):
access_token and base_url from credentials file$BASE_URL/api/mcp/rest with { "tool": "playbook_list", "arguments": {} }result field from responseMIT License - See LICENSE file for details
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.