Skip to content
This repository was archived by the owner on Oct 14, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/cleanup-product-descriptions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"fulldev": patch
---

Update Contacts descriptions for multiple accounts, document Send and Work, and include HTTP API discovery in the agent skill.
21 changes: 10 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@

Use Fulldev apps from a terminal or an AI agent. The CLI discovers the full HTTP API from OpenAPI and is a thin client of the Fulldev MCP server at `https://app.full.dev/mcp`, which has the tools of every app your organization gives you: it reads the tools, their schemas, and the instructions from the server each time, so it stays in step with the apps. Each app's tools start with its name, such as `cms_`.

| App | For |
| ---------- | ---------------------------------------------------------------------------------------------------- |
| `cms` | Editing your website through the [Fulldev CMS](https://cms.full.dev) |
| `connect` | Your business tools, such as Shopify, through [Fulldev Connect](https://connect.full.dev) |
| `scan` | Scanning websites with [Fulldev Scan](https://scan.full.dev), for administrators only |
| `sites` | A finished website from [Fulldev Sites](https://sites.full.dev), for administrators only |
| `pages` | Reports and plans as web pages with [Fulldev Pages](https://pages.full.dev), for administrators only |
| `contacts` | The daily copy of your Google contacts with [Fulldev Contacts](https://contacts.full.dev) |
| App | For |
| ---------- | -------------------------------------------------------------------------------------------------------------------------- |
| `cms` | Editing your website through the [Fulldev CMS](https://cms.full.dev) |
| `connect` | Your business tools, such as Shopify, through [Fulldev Connect](https://connect.full.dev) |
| `scan` | Scanning websites with [Fulldev Scan](https://scan.full.dev), for administrators only |
| `sites` | A finished website from [Fulldev Sites](https://sites.full.dev), for administrators only |
| `pages` | Reports and plans as web pages with [Fulldev Pages](https://pages.full.dev), for administrators only |
| `contacts` | [Daily synchronization of your Google contacts across multiple accounts with Import and Export](https://contacts.full.dev) |
| `send` | [Customer message scenarios and deliveries](https://send.full.dev) |
| `work` | Tasks, projects and goals in your organization |

## Install

Expand Down Expand Up @@ -55,7 +57,6 @@ How it works:
- The CLI is a public OAuth client that needs no registration: its client id is the address of its [Client ID Metadata Document](https://full.dev/oauth/cli.json), which the authorization server at `https://app.full.dev/api/auth` reads. It never registers a client, so sign-in to a server that does not support such documents fails with `CLIENT_METADATA_UNSUPPORTED`.
- Tokens are stored in the OS keychain (macOS Keychain, Windows Credential Manager, or the Secret Service on Linux) under the service `fulldev`, one entry per server. Where no keychain is available, such as in many containers and CI runners, they go to `~/.config/fulldev/auth.json` (or `$XDG_CONFIG_HOME/fulldev/auth.json`), readable only by you; `fulldev status` says which one is used.
- Access tokens are refreshed when they expire. Parallel commands take turns through a lock file next to it, so they never refresh the same token twice.
- Sign-ins from fulldev 0.3 and earlier were per app and made with Clerk, and no longer work: run `fulldev login` again.

Commands never start a sign-in without a terminal (when stdin or stdout is not a TTY): they fail at once with exit code 3 and say to run `fulldev login`. At a terminal they open the browser sign-in themselves; `--no-login` turns that off.

Expand Down Expand Up @@ -152,5 +153,3 @@ fulldev contacts api accounts.list --file input.json --org my-company
```

Use an operation id from `fulldev api <app>`. Input is a JSON object, a file with `--file`, or stdin with `-`. Reads send query parameters; changes send JSON. Existing OAuth credentials and organization grants cover both interfaces. The CLI refuses redirects and paths outside the selected app before sending credentials. Servers without OpenAPI continue to support the existing MCP commands.

Send and Work are also available as `fulldev send` and `fulldev work`.
2 changes: 1 addition & 1 deletion dist/cli.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -903,7 +903,7 @@ const apps = [
{
name: "contacts",
title: "Fulldev Contacts",
description: "Look after the daily copy of your Google contacts from one Google account to another: its runs, look-alike questions, pausing and resuming."
description: "Manage the daily sync of your Google contacts across multiple accounts with Import and Export: runs, look-alike questions, pausing and resuming."
},
{
name: "send",
Expand Down
7 changes: 6 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "fulldev",
"version": "0.6.0",
"description": "Use Fulldev products, such as the CMS, Connect and Scan, from the command line through their MCP servers.",
"description": "Use Fulldev products from the command line through their shared MCP server and HTTP APIs.",
"license": "MIT",
"repository": {
"type": "git",
Expand Down Expand Up @@ -52,7 +52,12 @@
"fulldev",
"cms",
"connect",
"contacts",
"pages",
"scan",
"send",
"sites",
"work",
"mcp",
"cli",
"agent-skills"
Expand Down
26 changes: 16 additions & 10 deletions skills/fulldev/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,28 @@
---
name: fulldev
description: Use the Fulldev CLI to work with Fulldev apps for the person. Use cms when they want to change their Fulldev website, such as text, pages, images, prices, opening hours, or contact details, or publish a change. Use connect when they want to use their business tools, such as Shopify, through Fulldev Connect. Use scan to scan websites, only for Fulldev administrators. Use sites when they want Fulldev to make a new website from a brief, only for Fulldev administrators for now. Use pages to publish a report or plan as a clear web page, only for Fulldev administrators for now. Use contacts when they want to check, pause or resume the daily copy of their Google contacts with Fulldev Contacts, or answer its look-alike questions.
description: Use the Fulldev CLI to work with Fulldev apps for the person. Use cms when they want to change their Fulldev website, such as text, pages, images, prices, opening hours, or contact details, or publish a change. Use connect when they want to use their business tools, such as Shopify, through Fulldev Connect. Use scan to scan websites, only for Fulldev administrators. Use sites when they want Fulldev to make a new website from a brief, only for Fulldev administrators for now. Use pages to publish a report or plan as a clear web page, only for Fulldev administrators for now. Use send for customer message scenarios and deliveries. Use work for tasks, projects and goals in their organization. Use contacts when they want to check, start, pause or resume the daily synchronization of their Google contacts across multiple accounts with Import and Export in Fulldev Contacts, or answer its look-alike questions.
license: MIT
compatibility: Needs Node.js 24 or later and network access to app.full.dev.
---

# Fulldev

The `fulldev` CLI talks to the Fulldev MCP server, which has the tools of every Fulldev app the person may use. Each app's tools start with its name, such as `cms_`. The tools, their schemas and the instructions come from the server, so they are always current.
The `fulldev` CLI uses the shared HTTP APIs and the Fulldev MCP server, which has the tools of every Fulldev app the person may use. Each app's tools start with its name, such as `cms_`. The tools, their schemas and the instructions come from the server, so they are always current.

| App | For |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `cms` | Editing the person's website. Every change goes to a branch and a draft pull request, within the file permissions Fulldev grants the person. |
| `connect` | The person's business tools, such as Shopify, with the access their organization grants them. |
| `scan` | Scanning websites. Only for Fulldev administrators. |
| `sites` | Making a new website with Fulldev Sites from a brief and design options. Only for Fulldev administrators for now. |
| `pages` | Publishing a report or plan as a web page with Fulldev Pages. Only for Fulldev administrators for now. |
| `contacts` | The person's daily copy of Google contacts from one of their Google accounts to another: its runs, look-alike questions, pausing and resuming. |
| App | For |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `cms` | Editing the person's website. Every change goes to a branch and a draft pull request, within the file permissions Fulldev grants the person. |
| `connect` | The person's business tools, such as Shopify, with the access their organization grants them. |
| `scan` | Scanning websites. Only for Fulldev administrators. |
| `sites` | Making a new website with Fulldev Sites from a brief and design options. Only for Fulldev administrators for now. |
| `pages` | Publishing a report or plan as a web page with Fulldev Pages. Only for Fulldev administrators for now. |
| `contacts` | Daily synchronization of Google contacts across multiple accounts with Import and Export: runs, look-alike questions, pausing and resuming. |
| `send` | Customer message scenarios and deliveries. |
| `work` | Tasks, projects and goals in their organization. |

## HTTP API

Use `fulldev api <app>` to discover the HTTP operations and `fulldev api <app>.<operation> '<json>' --org <slug>` to call one. Discovery requires the server's OpenAPI specification. If it reports `API_UNAVAILABLE`, use the app's MCP commands instead. MCP shortcuts expose the curated tools; HTTP discovery exposes the app's supported API operations. Authentication and permissions are shared.

## Run

Expand Down
2 changes: 1 addition & 1 deletion src/apps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export const apps: Array<App> = [
name: "contacts",
title: "Fulldev Contacts",
description:
"Look after the daily copy of your Google contacts from one Google account to another: its runs, look-alike questions, pausing and resuming.",
"Manage the daily sync of your Google contacts across multiple accounts with Import and Export: runs, look-alike questions, pausing and resuming.",
},
{
name: "send",
Expand Down
Loading