| name | adobe-local-dev-loop |
| description | Configure Adobe local development with App Builder CLI, Runtime actions,
hot reload, and mock testing for Firefly/PDF/Photoshop APIs.
Use when setting up a development environment, configuring test workflows,
or establishing a fast iteration cycle with Adobe APIs.
Trigger with phrases like "adobe dev setup", "adobe local development",
"adobe dev environment", "develop with adobe", "aio app".
|
| allowed-tools | Read, Write, Edit, Bash(npm:*), Bash(pnpm:*), Grep |
| version | 1.6.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","design","adobe"] |
| compatibility | Designed for Claude Code |
Adobe Local Dev Loop
Overview
Set up a fast local development workflow for Adobe integrations using the aio CLI for App Builder projects, or a standalone Node.js setup for direct API usage (Firefly Services, PDF Services).
Prerequisites
- Completed
adobe-install-auth setup
- Node.js 18+ with npm/pnpm
- Adobe Developer Console project configured
@adobe/aio-cli installed globally (for App Builder projects)
Instructions
Step 1: Choose Your Project Type
Option A — App Builder (serverless Runtime actions):
npm install -g @adobe/aio-cli
aio login
aio app init my-adobe-app
aio app run
Option B — Standalone SDK project:
mkdir my-adobe-project && cd my-adobe-project
npm init -y
npm install @adobe/pdfservices-node-sdk @adobe/firefly-apis dotenv
npm install -D typescript tsx vitest @types/node
Step 2: Project Structure
my-adobe-project/
├── src/
│ ├── adobe/
│ │ ├── auth.ts # OAuth token management (from install-auth)
│ │ ├── firefly.ts # Firefly API client wrapper
│ │ ├── pdf-services.ts # PDF Services client wrapper
│ │ └── photoshop.ts # Photoshop API client wrapper
│ └── index.ts
├── tests/
│ ├── fixtures/
│ │ └── sample.pdf # Test PDF for extraction tests
│ ├── adobe-auth.test.ts
│ └── firefly.test.ts
├── .env.local # Local secrets (git-ignored)
├── .env.example # Template for team
├── tsconfig.json
└── package.json
Step 3: Configure Hot Reload and Scripts
{
"scripts": {
"dev": "tsx watch src/index.ts",