From documenso-pack
Installs Documenso SDKs for TypeScript/Node.js or Python and configures API authentication, including key generation, env storage, and v1/v2 client setup.
How this skill is triggered — by the user, by Claude, or both
Slash command
/documenso-pack:documenso-install-authThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Set up the Documenso SDK and configure API authentication for document signing. Covers the TypeScript SDK (`@documenso/sdk-typescript`), the Python SDK (`documenso-sdk-python`), and raw REST API usage. Documenso exposes two API versions: **v1** (legacy, documents only) and **v2** (envelopes, multi-document, recommended for new work).
Set up the Documenso SDK and configure API authentication for document signing. Covers the TypeScript SDK (@documenso/sdk-typescript), the Python SDK (documenso-sdk-python), and raw REST API usage. Documenso exposes two API versions: v1 (legacy, documents only) and v2 (envelopes, multi-document, recommended for new work).
app.documenso.com or self-hosted instanceTypeScript / Node.js:
npm install @documenso/sdk-typescript
# or
pnpm add @documenso/sdk-typescript
Python:
pip install documenso-sdk-python
# or
uv pip install documenso-sdk-python
https://app.documenso.com or your self-hosted URL).ci-pipeline-prod).Team API keys inherit the team's document and template access. Personal keys only access your own documents.
# .env (never commit this file)
DOCUMENSO_API_KEY=api_xxxxxxxxxxxxxxxxxxxxxxxxxx
Add .env to .gitignore:
echo ".env" >> .gitignore
TypeScript — v2 API (recommended):
import { Documenso } from "@documenso/sdk-typescript";
const documenso = new Documenso({
apiKey: process.env.DOCUMENSO_API_KEY!,
// For self-hosted, override the server URL:
// serverURL: "https://sign.yourcompany.com/api/v2",
});
TypeScript — v1 REST (legacy):
const BASE = process.env.DOCUMENSO_BASE_URL ?? "https://app.documenso.com/api/v1";
const headers = { Authorization: `Bearer ${process.env.DOCUMENSO_API_KEY}` };
const res = await fetch(`${BASE}/documents`, { headers });
const docs = await res.json();
Python:
from documenso_sdk_python import Documenso
import os
client = Documenso(api_key=os.environ["DOCUMENSO_API_KEY"])
// verify-connection.ts
import { Documenso } from "@documenso/sdk-typescript";
async function verify() {
const client = new Documenso({ apiKey: process.env.DOCUMENSO_API_KEY! });
const { documents } = await client.documents.findV0({ page: 1, perPage: 1 });
console.log(`Connected — ${documents.length >= 0 ? "OK" : "FAIL"}`);
}
verify().catch(console.error);
Run with npx tsx verify-connection.ts.
| Environment | Base URL (v2) | Base URL (v1, legacy) |
|---|---|---|
| Cloud production | https://app.documenso.com/api/v2 | https://app.documenso.com/api/v1 |
| Cloud staging | https://stg-app.documenso.com/api/v2 | https://stg-app.documenso.com/api/v1 |
| Self-hosted | https://your-instance.com/api/v2 | https://your-instance.com/api/v1 |
const documenso = new Documenso({
apiKey: process.env.DOCUMENSO_API_KEY!,
serverURL: process.env.DOCUMENSO_BASE_URL, // e.g. "https://sign.acme.com/api/v2"
});
| Error | HTTP | Cause | Solution |
|---|---|---|---|
| Unauthorized | 401 | Invalid or expired API key | Regenerate key in dashboard |
| Forbidden | 403 | Personal key accessing team resources | Use team-scoped API key |
| Module not found | N/A | SDK not installed | Run npm install @documenso/sdk-typescript |
| Network error | N/A | Firewall or DNS issue | Verify outbound HTTPS to app.documenso.com |
ERR_INVALID_URL | N/A | Bad serverURL value | Include protocol and path: https://host/api/v2 |
.env is listed in .gitignoreAfter successful auth, proceed to documenso-hello-world for your first document.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin documenso-packApply production-ready Documenso SDK patterns for TypeScript and Python, including singleton clients, typed services, error handling, and testing.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.