with one click
glean-run
Discover and run Glean skills for enterprise app tasks
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Discover and run Glean skills for enterprise app tasks
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | glean_run |
| description | Discover and run Glean skills for enterprise app tasks |
| argument-hint | <task description> |
| allowed-tools | ["Read(path=\"//**/glean-skills-cache/**\")"] |
Discover and use Glean skills to help with enterprise app tasks (Jira, Slack, Google Workspace, Salesforce, etc.) or actions you don't already have a tool for. Where possible, aim to complete the user's request end-to-end rather than just listing available skills.
Authentication is handled exclusively by the setup tool. If any other tool
returns a response containing [SETUP_REQUIRED], the user needs to
(re-)authenticate via setup.
When this happens:
setup (no arguments).
setup returns [SETUP_REQUIRED] with
instructions. Relay them, ask the user for their work email, then call
setup again with email set to what they provided.setup opens the Glean sign-in page in
the browser and waits for sign-in.setup returns "Glean setup is complete", retry the original tool
call.Do not treat [SETUP_REQUIRED] as an error or try to work around it any
other way.
Call setup (with no arguments). If the connection isn't ready, setup
returns instructions — follow them and call setup again; it guides the whole
flow. Once it returns "Glean setup is complete", proceed to Step 1.
A small set of popular tools is directly available, and no discovery is needed to use them. Discover is complementary and recommended if the direct tools cannot satisfy the user request end to end.
find_skillsIf no arguments were provided and the task can't be inferred from conversation context, ask the user what they'd like to do before proceeding.
Call find_skills with the task descriptions.
Break the request into small, task-atomic queries — keep only the core action,
dropping the surrounding context (recipients, timing, reasons, constraints) —
and pass each as a separate entry in queries.
find_skills({
queries: [
"<atomic sub-task 1>",
"<atomic sub-task 2>"
]
})
The response is an XML index of discovered skills with file paths.
You can call find_skills multiple times — e.g. to discover skills for
individual sub-tasks as you work through a broad request.
Browse the returned skills and select the one most relevant to the user's
request. Read its SKILL.md file for detailed instructions. Skills typically
contain guidance on how to use their tools, but the tools can also be called
as independent units.
Read each tool's JSON file (e.g. tools/TOOL_NAME.json) to get the exact
server_id, name, and inputSchema with parameter names and types.
Never guess parameter names - always read the tool JSON file first.
Call run_tool with the server_id, tool_name (from the name field in the
JSON), and arguments matching the inputSchema exactly.
run_tool({
server_id: "composio/jira-pack",
tool_name: "jirasearch",
arguments: { query: "project = PROJ AND status = Open" }
})
file_argsFor long-form content — drafted Slack messages, Confluence pages, doc
bodies, etc. — write the draft to a local file first, then reference it
via file_args instead of passing it as a huge inline string. The plugin
reads each file and substitutes its UTF-8 contents into the named key in
arguments before calling the remote tool.
run_tool({
server_id: "...",
tool_name: "slack_post_message",
arguments: { channel: "C123" },
file_args: { text: "/tmp/glean-drafts/announce.md" }
})
Constraints:
file_args must not also appear in arguments.GLEAN_FILE_ARG_MAX_BYTES).run_tool - never guess parameters