
Company News
Jerod Santo Joins Socket as Head of Media
Allow myself to introduce... myself.
The Figma workspace layer that agents can manage. Seats, teams, permissions, billing, offboarding -- from the terminal, Claude, Cursor, or OpenClaw.
npm install -g figmanage
figmanage login
Extracts your Chrome session cookie, prompts for a PAT, and stores credentials locally at ~/.config/figmanage/. One-time setup -- no env vars, no JSON config editing.
figmanage whoami # verify auth
figmanage logout # clear credentials
Commands use a noun-verb pattern: figmanage <group> <action>.
figmanage org seat-optimization # find inactive paid seats
figmanage org offboard sarah@co.com # audit what a user owns
figmanage org offboard sarah@co.com --execute \
--transfer-to jake@co.com # execute the offboarding
figmanage org onboard alex@co.com --teams 123,456 \
--role editor --seat full --confirm # set up a new hire
figmanage org quarterly-report # org-wide design ops snapshot
figmanage org members --search danny # find org members
figmanage navigate list-teams # list all teams
figmanage permissions get file abc123 # who has access to a file
figmanage permissions audit --scope team --id 789 # audit a team's permissions
figmanage branches cleanup 573408414 # find stale branches
figmanage files summary abc123 # pages, components, styles overview
Run figmanage <group> --help for available subcommands. All commands output JSON when piped or when --json is passed.
figmanage runs as an MCP server for Claude, ChatGPT, Cursor, and other AI assistants:
# Claude Code
claude mcp add figmanage -- npx -y figmanage
# Claude Desktop / Cursor / other clients
# Add to your MCP config:
{
"mcpServers": {
"figmanage": {
"command": "npx",
"args": ["-y", "figmanage"]
}
}
}
On first run, figmanage walks you through setup right in the conversation -- extracts your Chrome session cookie, asks you to create a PAT, and stores credentials locally. No env vars, no JSON editing, no separate terminal step.
If you prefer CLI setup or need to reconfigure: npx figmanage login.
Env vars (FIGMA_PAT, FIGMA_AUTH_COOKIE, etc.) override the config file for backwards compatibility. HTTP transport available via --mcp --http <port>.
Use FIGMA_TOOLSETS to expose only specific tool groups:
| Preset | Toolsets |
|---|---|
starter | navigate, reading, comments, export |
admin | navigate, org, permissions, analytics, teams, libraries |
readonly | navigate, reading, comments, export, components, versions |
full | everything (default) |
figmanage uses two Figma API surfaces:
| Client | Auth | Capabilities |
|---|---|---|
| Internal API | Session cookie | Workspace management, search, permissions, org admin, seats, billing |
| Public API | Personal Access Token | Comments, export, file reading, components, versions, webhooks, variables |
Both together give full access to all 85 tools. Cookie-only or PAT-only work but limit available tools.
Auth resolution: env vars > config file > interactive setup (MCP) or figmanage login (CLI).
The tables below list all 85 commands. The Command column shows MCP tool names (snake_case). The CLI equivalent is the noun-verb form: figmanage <group> <action> where <action> is the kebab-case version of the tool name without the group prefix (e.g. list_recent_files becomes figmanage navigate list-recent-files).
| Command | Auth | Description |
|---|---|---|
check_auth | either | Validate PAT and cookie authentication |
list_orgs | cookie | List available Figma workspaces |
switch_org | cookie | Switch active workspace for this session |
list_teams | cookie | List teams in your org |
list_projects | either | List projects in a team |
list_files | either | List files in a project |
list_recent_files | cookie | Recently viewed/edited files |
search | cookie | Search files across the workspace |
get_file_info | either | File metadata: name, project, team, link access |
list_favorites | cookie | Favorited files (broken -- Figma BigInt bug) |
| Command | Auth | Description |
|---|---|---|
create_file | cookie | Create design, whiteboard, slides, or sites file |
rename_file | cookie | Rename a file |
move_files | cookie | Move files between projects (batch) |
duplicate_file | cookie | Copy a file |
trash_files | cookie | Move files to trash (batch) |
restore_files | cookie | Restore files from trash (batch) |
favorite_file | cookie | Add/remove from favorites |
set_link_access | cookie | Set link sharing level |
file_summary | pat | Pages, components, styles, comment counts |
cleanup_stale_files | either | Find old files, optionally trash (dry run default) |
| Command | Auth | Description |
|---|---|---|
create_project | cookie | Create a project in a team |
rename_project | cookie | Rename a project |
move_project | cookie | Move a project to another team |
trash_project | cookie | Move a project to trash |
restore_project | cookie | Restore a project from trash |
set_project_description | cookie | Set or update project description |
organize_project | cookie | Batch-move files into a project |
setup_project_structure | cookie | Create multiple projects from a plan |
| Command | Auth | Description |
|---|---|---|
get_permissions | cookie | List who has access with roles |
set_permissions | cookie | Change a user's access level |
share | cookie | Invite someone by email |
revoke_access | cookie | Remove someone's access |
list_role_requests | cookie | List pending access requests |
approve_role_request | cookie | Accept an access request |
deny_role_request | cookie | Decline an access request |
permission_audit | cookie | Team/project access audit with oversharing flags |
| Command | Auth | Description |
|---|---|---|
list_versions | pat | Version history |
create_version | cookie | Create a named version checkpoint |
| Command | Auth | Description |
|---|---|---|
list_branches | either | List branches of a file |
create_branch | cookie | Create a branch |
delete_branch | cookie | Archive a branch |
branch_cleanup | either | Stale branch detection with optional archival |
| Command | Auth | Description |
|---|---|---|
list_comments | pat | Comments with thread structure |
post_comment | pat | Post a comment |
delete_comment | pat | Delete a comment |
list_comment_reactions | pat | Emoji reactions on a comment |
open_comments | pat | Unresolved comments across a project |
| Command | Auth | Description |
|---|---|---|
export_nodes | pat | Export as PNG, SVG, PDF, or JPG |
get_image_fills | pat | URLs for all images used as fills |
| Command | Auth | Description |
|---|---|---|
get_file | pat | Read file as a node tree with depth control |
get_nodes | pat | Read specific nodes by ID |
| Command | Auth | Description |
|---|---|---|
list_file_components | pat | Components published from a file |
list_file_styles | pat | Styles in a file |
list_team_components | pat | Published components across a team |
list_team_styles | pat | Published styles across a team |
| Command | Auth | Description |
|---|---|---|
list_webhooks | pat | List webhooks for a team |
create_webhook | pat | Create a webhook subscription |
update_webhook | pat | Update a webhook |
delete_webhook | pat | Delete a webhook |
| Command | Auth | Description |
|---|---|---|
list_local_variables | pat | Local variables and collections |
list_published_variables | pat | Published variables from a library |
update_variables | pat | Bulk create, update, or delete variables |
| Command | Auth | Description |
|---|---|---|
library_usage | cookie | Team-level library adoption metrics |
component_usage | cookie | Per-file component usage |
| Command | Auth | Description |
|---|---|---|
list_admins | cookie | Org admins with permission levels |
list_org_teams | cookie | All teams with member and project counts |
seat_usage | cookie | Seat breakdown by type and activity |
list_team_members | cookie | Team members with roles and activity |
list_org_members | cookie | All org members with seats and activity |
contract_rates | cookie | Per-seat pricing |
change_seat | cookie | Change a user's seat type |
billing_overview | cookie | Invoice history and billing status |
list_invoices | cookie | Open and upcoming invoices |
org_domains | cookie | Domain config and SSO/SAML |
ai_credit_usage | cookie | AI credit usage summary |
export_members | cookie | Trigger CSV export of all members |
workspace_overview | cookie | Org snapshot: teams, seats, billing |
seat_optimization | cookie | Inactive seat detection with cost analysis |
offboard_user | cookie | Audit + execute user departure |
onboard_user | cookie | Batch invite to teams, share files, set seat |
quarterly_design_ops_report | cookie | Seat utilization, billing, teams, library adoption |
| Command | Auth | Description |
|---|---|---|
list_org_libraries | cookie | Design system libraries with sharing info |
| Command | Auth | Description |
|---|---|---|
create_team | cookie | Create a team |
rename_team | cookie | Rename a team |
delete_team | cookie | Delete a team |
All parameters that accept Figma IDs are validated against /^[\w.:-]+$/ before use. Rate limit retries are restricted to safe HTTP methods. Mutations are never retried. Billing responses strip PII. Destructive operations default to dry-run mode. Config file is stored with 0o600 permissions.
favorite_file works fine.figmanage login --refresh to renew.depth param or get_nodes.git clone https://github.com/dannykeane/figmanage.git
cd figmanage
npm install
npm run build
npm test
Three-layer design: shared operations power both the CLI and MCP server.
src/
index.ts Entry: --setup, --mcp, or CLI mode
mcp.ts MCP server setup, toolset presets
setup.ts Cross-platform Chrome cookie extraction
auth/ AuthConfig from env vars and config file
clients/ Axios clients for internal (cookie) and public (PAT) APIs
operations/ Shared business logic (18 modules)
tools/ MCP tool wrappers (thin, call operations)
cli/ CLI Commander wrappers (thin, call operations)
types/figma.ts Shared types including Toolset union
MIT
FAQs
MCP server for managing your Figma workspace from the terminal.
The npm package figmanage receives a total of 58 weekly downloads. As such, figmanage popularity was classified as not popular.
We found that figmanage demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Allow myself to introduce... myself.

Research
/Security News
A Twitch browser extension on Chrome and Firefox forwards users’ live OAuth session tokens through proxies controlled by a Russian bot service.

Security News
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.