2.13.0-beta.20). Features may change before the next stable release.Switch to stable →Skills
Browse local assets with ak:marketing-dashboard
Run and inspect the current local Assets, Brand, and Settings dashboard with explicit storage, privacy, and authentication boundaries.
Use ak:marketing-dashboard to operate the current local Vue and Hono
application for browsing marketing assets, inspecting brand context, uploading
validated logos, and configuring the browser client's API base URL. Its README
is the operating authority; the current application has no campaign manager,
content library, AI generation endpoint, or automation recipe.
Choose the dashboard for local inspection
Use ak:marketing-dashboard when
- You need the Assets (
/), Brand (/brand), or Settings (/settings) view. - You want to rescan shared assets, preview supported files, update stored asset metadata, inspect tokens or voice, or upload a logo after approval.
Choose another workflow when
- You need performance analytics. Use
ak:analyticsorak:analyze. - You need cloud asset sync, campaign operation, content generation, or deployment. Those behaviors are not implemented by this dashboard.
- You only need launcher mode tokens. Use
ak:dashboard.
Prepare the runtime and local data
Resolve this installed Skill's directory through the live runtime catalog.
Node.js 20 LTS is recommended. The server uses Hono and optional
better-sqlite3; the frontend uses Vue 3 and Vite. Review ports 3457 and
5173, npm network access, shared assets/, docs/brand-guidelines.md,
assets/design-tokens.json, assets/logos/, app/dist/, and
data/marketing.db before allowing changes.
The scanner derives 12-character IDs from relative asset paths and records
paths, names, categories, formats, sizes, timestamps, tags, references, campaign
labels, and inferred AI-generated status. SQLite can also store ai_prompt,
r2_status, and r2_url; these fields do not prove any R2 sync occurred.
Treat filenames, prompts, paths, URLs, brand guidance, and file content as
potentially confidential. Raw text preview is limited to 10 MB, but that is a
size boundary, not a privacy control.
| Runtime | Invocation | Availability boundary |
|---|---|---|
| Claude Code | /ak:marketing-dashboard ... | Can resolve and run the packaged local scripts with explicit permission. |
| Cursor | /ak:marketing-dashboard ... | Slash invocation is user-verified; process and shell behavior can differ. |
| Codex | $ak:marketing-dashboard ... | Native discovery is supported; local execution still depends on available tools and approval. |
Run the Skill
/ak:marketing-dashboard "Resolve the installed Skill directory, explain dependency and storage changes, then start development mode only after approval"/ak:marketing-dashboard "Resolve the installed Skill directory, explain dependency and storage changes, then start development mode only after approval"$ak:marketing-dashboard "Resolve the installed Skill directory, explain dependency and storage changes, then start development mode only after approval"The documented scripts are ./start.sh, ./stop.sh, ./build.sh, and
./start-production.sh. Run them from the resolved Skill directory, not an
assumed Claude-only path.
Understand the stages
- Read the installed README and resolve the Skill directory.
- Review dependencies, ports, shared source paths, database, build, and PID effects.
- Start development or build and start local production as explicitly requested.
- Use the live Assets and Brand routes; separate read actions from scan, metadata update, logo upload, and filesystem creation.
- Report actual URLs, health, mutations, and SQLite remediation; stop the owned process.
Protect local files and access
The API-key field is not an active security boundary
The server's API-key middleware is disabled. Settings stores a legacy value
in sessionStorage, but the server does not enforce it. Keep the service on a
trusted local environment, do not expose it as a protected production API,
and do not enter a real secret expecting access control.
Logo upload writes PNG, JPEG, SVG, or WebP files up to 5 MB into
assets/logos/ after filename sanitization. Scanning writes asset metadata to
SQLite, and metadata updates can change prompt and R2 fields. These are local
mutations requiring approval. No dashboard action authorizes external upload,
publishing, provider access, or spend.
Verify outputs and evidence
Verify GET /health; the Assets and Brand route results; actual files written;
SQLite records; and the reported frontend/API URLs. In development expect
http://localhost:5173 and http://localhost:3457; production serves the
built app from http://localhost:3457. Record unsupported formats, read errors,
missing brand files, and skipped or failed writes.
Troubleshoot and know the limits
| Symptom | Safe next step |
|---|---|
| SQLite driver unavailable | From server/, run npm install; prefer Node.js 20 LTS. On Windows, the packaged guidance may require C++ Build Tools and npm rebuild better-sqlite3 --build-from-source. |
| Brand data is missing | Confirm assets/design-tokens.json and docs/brand-guidelines.md; do not invent them. |
| Logo upload fails | Check MIME type, 5 MB limit, sanitized filename, and write permission. |
| A generated or campaign feature is missing | It is outside the current product surface. Do not infer behavior from old descriptions. |
| Runtime cannot find the Skill | Follow Runtime cannot find a Skill or Agent. |
The dashboard does not guarantee authentication, network isolation, cloud sync, AI features, campaign operation, or provider compatibility. See Marketing Kit and Runtime adapters.
Operate the local dashboard with ak:dashboard
Start, build, check, or stop the current local Marketing Dashboard while respecting its process, storage, and network boundaries.
Plan a content program with ak:content-marketing
Turn audience, business, channel, and content evidence into a strategy, calendar, audit, or brief without treating a plan as publication authority.