Create a new issue in Plane using plane-cli. Interactively asks for project, state, priority, assignees, and labels.
Create a new issue in Plane via the CLI. The user provides a title and description; remaining fields are resolved interactively.
Available projects: !cargo run -- projects list 2>/dev/null
Identify the project from the user's request or ask which project to use. Use the project list from Context above to match by name. Extract the project ID (UUID).
Prepare title and description from the user's request.
description_html). See HTML formatting reference below.Fetch project metadata in parallel using --json flag and jq to extract names and IDs:
cargo run -- --json states list -p <PROJECT_ID> 2>/dev/null | jq '[.results[] | {name, id, group}]'
cargo run -- --json labels list -p <PROJECT_ID> 2>/dev/null | jq '[.results[] | {name, id}]'
cargo run -- --json members list -p <PROJECT_ID> 2>/dev/null | jq '[.[] | {display_name, id}]'
Ask the user interactively using AskUserQuestion with the fetched data. Ask all four questions at once:
none, low, medium, high, urgentRun the create command:
cargo run -- issues create \
-p <PROJECT_ID> \
--title "<TITLE>" \
--description "<HTML>" \
--state <STATE_ID> \
--priority <PRIORITY> \
--assignee <MEMBER_ID> \
--label <LABEL_ID> \
2>/dev/null
--state, --assignee, --label if the user chose "no assignee" or "none"--assignee and --label flags can be repeatedReport the result — show the created issue name, sequence ID, and a link:
{base_url}/{workspace}/projects/{project_id}/issues/{issue_id}
where base_url and workspace come from config/settings.local.json.
The Plane editor uses specific CSS classes. Use these exact patterns:
Paragraph:
<p class="editor-paragraph-block">Text here</p>
Heading (h2):
<h2 class="editor-heading-block">Section title</h2>
Inline code (for short references like variable names, endpoints, commands):
<code class="rounded bg-custom-background-80 px-[6px] py-[1.5px] font-mono font-medium text-orange-500 border-[0.5px] border-custom-border-200" spellcheck="false">some_variable</code>
Code block (for multi-line code, shell commands, JSON, etc.):
<pre class=""><code class="language-bash">ssh -L 8080:10.0.0.1:80 user@host -N</code></pre>
Supported language classes: language-json, language-bash, language-rust, etc. Omit the class for plain code blocks: <pre class=""><code>plain code</code></pre>
Bulleted list:
<ul class="list-disc pl-7 space-y-[--list-spacing-y] tight" data-tight="true">
<li class="not-prose space-y-2"><p class="editor-paragraph-block">Item one</p></li>
<li class="not-prose space-y-2"><p class="editor-paragraph-block">Item two</p></li>
</ul>
2>/dev/null when running cargo to suppress build warnings--json when fetching data for parsingnone, urgent, high, medium, low