elnora/skills/elnora-orgs/SKILL.md
This skill should be used when the user asks to "list organizations", "create org", "org members", "billing", "invite member", "manage invitations", "list invitations", "resend invitation", "reinvite", "cancel invitation", "accept invitation", "get invitation info", "remove member from org", "organization library", "shared library", "library files", "library folders", "set default org", "delete org", "list all orgs", "set stripe", or any task involving Elnora Platform organization management and shared library resources.
npx skillsauth add elnora-ai/elnora-plugins elnora-orgsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage organizations, members, billing, invitations, and the shared organization library.
Elnora is available via two methods. Use whichever is configured.
Option A — CLI via Bash (preferred)
Run commands via your Bash/Shell tool as elnora <group> <action> .... Verify with elnora --version. CLI uses ~5× fewer tokens than MCP.
Option B — MCP tools (when CLI isn't installed)
Look for tools prefixed mcp__elnora__ in your available tools. Call them with structured parameters (camelCase — e.g. projectId, not project-id). See the "MCP Tool Names" table below for the mapping.
If neither is available, tell the user to install one:
curl -fsSL https://cli.elnora.ai/install.sh | bash (macOS/Linux)
or irm https://cli.elnora.ai/install.ps1 | iex (Windows)claude mcp add elnora --transport http --scope user https://mcp.elnora.ai/mcp
then /mcp to authenticate.Never fabricate tool names. Valid commands are in the Commands section; their MCP equivalents are in the MCP Tool Names table.
CLI="elnora"
$CLI --compact orgs list
$CLI --compact orgs get <ORG_ID>
$CLI --compact orgs create --name "Elnora Bio Lab"
$CLI --compact orgs create --name "Elnora Bio Lab" --description "Main research org"
$CLI --compact orgs update <ORG_ID> --name "New Name"
$CLI --compact orgs update <ORG_ID> --description "Updated description"
Must provide at least one of --name or --description.
$CLI --compact orgs members <ORG_ID>
$CLI --compact orgs update-role <ORG_ID> <MEMBERSHIP_ID> --role Admin
Both positional. --role is required. Uses the membership ID (not user ID) — get it from orgs members.
$CLI --compact orgs remove-member <ORG_ID> <MEMBERSHIP_ID>
# -> {"removed":true}
Both positional. Destructive — confirm with user first.
$CLI --compact orgs billing <ORG_ID>
$CLI --compact orgs files <ORG_ID>
$CLI --compact orgs files <ORG_ID> --page 2 --page-size 50
<ORG_ID> is positional (orgId). Lists all files across all projects in the organization.
$CLI --compact orgs set-default <ORG_ID>
$CLI --compact orgs set-stripe <ORG_ID> <CUSTOMER_ID>
Both positional. Example: elnora --compact orgs set-stripe <ORG_ID> cus_xxx
$CLI --compact orgs list-all
$CLI --compact orgs delete <ORG_ID>
$CLI --compact orgs delete <ORG_ID> --yes
# -> {"deleted":true,"orgId":"<UUID>"}
DANGEROUS. Requires y/N confirmation. Use --yes to skip (non-interactive/CI only).
$CLI --compact orgs invite <ORG_ID> --email [email protected]
$CLI --compact orgs invite <ORG_ID> --email [email protected] --role Admin
Smart upsert: if an invitation already exists for this email (pending or
expired), orgs invite routes to the resend endpoint automatically — you don't
need to cancel first, and the invitation ID stays stable across resends.
$CLI --compact orgs invitations <ORG_ID>
Returns all unaccepted invitations, both pending and expired. Use the
isExpired field on each item to distinguish them. Accepted invitations are
excluded (they're members now).
$CLI --compact orgs resend-invite <ORG_ID> <INVITATION_ID>
Regenerates the invitation token, extends the expiry by 7 days, and re-sends the invitation email. Works on both pending and expired invitations. Preserves the invitation ID so external references remain valid.
Both positional. Prefer this command when you already have an invitation ID;
use orgs invite by email when you don't.
$CLI --compact orgs cancel-invite <ORG_ID> <INVITATION_ID>
# -> {"cancelled":true,"invitationId":"..."}
Both positional. Works on pending or expired invitations (any unaccepted row).
$CLI --compact orgs invitation-info --token <TOKEN>
--token is a flag (not positional — token doesn't end in "Id").
$CLI --compact orgs accept-invite --token <TOKEN>
--token is a flag.
The organization library holds shared files and folders accessible to all org members.
$CLI --compact library files --org <ORG_ID>
$CLI --compact library files --org <ORG_ID> --page 2 --page-size 50
--org is a flag (org doesn't end in "Id").
$CLI --compact library folders --org <ORG_ID>
$CLI --compact library create-folder --org <ORG_ID> --name "Shared Protocols"
$CLI --compact library create-folder --org <ORG_ID> --name "Sub Folder" --parent <PARENT_FOLDER_ID>
$CLI --compact library rename-folder --org <ORG_ID> <FOLDER_ID> --name "New Name"
<FOLDER_ID> is positional (folderId). --org and --name are flags.
$CLI --compact library delete-folder --org <ORG_ID> <FOLDER_ID>
# -> {"deleted":true,"folderId":"..."}
Destructive — confirm with user first.
| CLI command | MCP tool name |
|-------------|---------------|
| orgs list | elnora_orgs_list |
| orgs get | elnora_orgs_get |
| orgs create | elnora_orgs_create |
| orgs update | elnora_orgs_update |
| orgs members | elnora_orgs_members |
| orgs update-role | elnora_orgs_updateRole |
| orgs remove-member | elnora_orgs_removeMember |
| orgs billing | elnora_orgs_billing |
| orgs files | elnora_orgs_files |
| orgs set-default | elnora_orgs_setDefault |
| orgs set-stripe | elnora_orgs_setStripe |
| orgs list-all | elnora_orgs_listAll |
| orgs delete | elnora_orgs_delete |
| orgs invite | elnora_orgs_invite |
| orgs invitations | elnora_orgs_invitations |
| orgs resend-invite | elnora_orgs_resendInvite |
| orgs cancel-invite | elnora_orgs_cancelInvite |
| orgs invitation-info | elnora_orgs_invitationInfo |
| orgs accept-invite | elnora_orgs_acceptInvite |
| library files | elnora_library_files |
| library folders | elnora_library_folders |
| library create-folder | elnora_library_createFolder |
| library rename-folder | elnora_library_renameFolder |
| library delete-folder | elnora_library_deleteFolder |
Get org ID, then check billing:
ORG=$($CLI --compact orgs list | jq -r 'if type == "array" then .[0].id else .items[0].id end')
$CLI --compact orgs billing "$ORG"
Invite a team member:
$CLI --compact orgs invite <ORG_ID> --email [email protected] --role Member
Resend a stalled or expired invitation (by email):
# orgs invite is idempotent — if the email has any unaccepted invitation
# (pending or expired), it automatically resends instead of creating a new one.
$CLI --compact orgs invite <ORG_ID> --email [email protected]
Resend a specific invitation by ID:
# 1. List invitations to find the ID (includes expired rows)
$CLI --compact orgs invitations <ORG_ID>
# 2. Resend the specific one
$CLI --compact orgs resend-invite <ORG_ID> <INVITATION_ID>
Browse shared library:
$CLI --compact library folders --org <ORG_ID>
$CLI --compact library files --org <ORG_ID>
data-ai
This skill should be used when the user asks to "create a task", "send a message", "generate a protocol", "list tasks", "get task", "view task details", "read task messages", "update task status", "archive a task", "talk to Elnora", "ask Elnora to generate", "protocol conversation", or any task involving Elnora Platform task management and protocol generation.
development
This skill should be used when the user asks to "search tasks", "find a protocol", "search files", "search file content", "search inside files", "find tasks about", "query Elnora", "search Elnora platform", "full text search", "search all", "search everything", "find", or any task involving searching the Elnora Platform for tasks, files, or all resources by keyword. NOT for web search — use elnora-agent for that.
data-ai
This skill should be used when the user asks to "list projects", "create a project", "get project details", "show my Elnora projects", "new project", "project members", "update project", "archive project", "add member", "remove member", "leave project", or any task involving Elnora Platform project management.
tools
Use when the user asks about "Elnora platform", "elnora CLI", "platform API", "platform overview", "what commands are available", "elnora help", "how to use Elnora", or any general question about the Elnora AI Platform that doesn't fit a specific domain. Routes to domain-specific sub-skills for token-efficient guidance.