Agent skill

Pure Lsp Status

by finos in finos/legend-engine

Checks whether the Legend Pure LSP dev-loop bridge is running and its current state — initializing/ready/failed, live compiler progress text, symbol/repository counts.

Apache-2.0Auto-check passed

Install Pure Lsp Status

skills CLI
$ npx skills add finos/legend-engine --skill pure-lsp-status -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install finos/legend-engine pure-lsp-status --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/finos/legend-engine.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/pure-dev/skills/pure-lsp-status .claude/skills/pure-lsp-status && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pure-lsp-status
GitHub stars
113
Token cost
~1.8k tokens
SKILL.md length
811 words
Files
1
Skills in repo
15
Repo updated
First seen
Licence
Apache-2.0

At a glance

Checks whether the Legend Pure LSP dev-loop bridge is running and its current state — initializing/ready/failed, live compiler progress text, symbol/repository counts.

  • The user asks if the Pure LSP
  • SKILL.md covers Usage, Reading the status JSON, How long to expect and recovering or failed: restart…
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Pure-lsp bridge is up/running/ready

What it does

Pure Lsp Status is an agent skill from finos/legend-engine. Checks whether the Legend Pure LSP dev-loop bridge is running and its current state — initializing/ready/failed, live compiler progress text, symbol/repository counts. Use whenever the user asks if the Pure LSP or pure-lsp bridge is up/running/ready, what it's currently doing, why it seems stuck, or wants to confirm it's ready before using pure-lsp-check or pure-lsp-go.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The licence is Apache-2.0.

When your agent uses it

  • The user asks if the Pure LSP
  • Pure-lsp bridge is up/running/ready
  • What its currently doing
  • Why it seems stuck

Example prompts

  • “s currently doing, why it seems stuck, or wants to confirm it”
  • “Use the pure-lsp-status skill to check whether the Legend Pure LSP dev-loop bridge is running and its current state — initializing/ready/failed…”
  • “/pure-lsp-status”

What it can do on your machine

Read from SKILL.md and the folder at commit 558cdbb. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Pure Lsp Status loads about 1.8k tokens when it runs. Until then it costs about 97 tokens; SKILL.md has 811 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~97
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from finos/legend-engine at commit 558cdbb, republished under its Apache-2.0 licence (© finos). 811 words, ~1,786 tokens.

Download SKILL.mdSave it as .claude/skills/pure-lsp-status/SKILL.md (or your agent's skills folder).
name
pure-lsp-status
description
Checks whether the Legend Pure LSP dev-loop bridge is running and its current state — initializing/ready/failed, live compiler progress text, symbol/repository counts. Use whenever the user asks if the Pure LSP or pure-lsp bridge is up/running/ready, what it's currently doing, why it seems stuck, or wants to confirm it's ready before using pure-lsp-check or pure-lsp-go.

Check the Pure LSP bridge's status

Never curl the bridge — pure-lsp is the only reliable client (see references/lsp-devloop-usage-rules.md).

Usage

bash
pure-lsp health   # is the process even alive?
pure-lsp status   # what is it actually doing?

Add --port <N> / PURE_LSP_PORT to target a specific bridge; otherwise pure-lsp discovers a running one automatically (sidecar lookup, falling back to 8991). pure-lsp status --wait <N> polls up to N seconds and returns as soon as it reaches a terminal state (ready/degraded/failed) — useful right after starting it instead of guessing how long to sleep.

If health fails to connect at all, nothing is running — use pure-lsp-launch-engine rather than trying to interpret a connection error as a Pure-side problem.

Reading the status JSON

json
{
  "state": "ready",
  "repositoryCount": 143,
  "symbolCount": 41788,
  "message": "Ready in 143973ms",
  "recoveryAttempts": 0,
  "recoveryInProgress": false,
  "compiledRepositories": 0,
  "totalRepositories": 0,
  "connectedClientCount": 1,
  "port": 9100,
  "transport": "socket",
  "requestPoolSize": 12,
  "executionConcurrency": 6,
  "repoRoots": ["/home/developer/projects/legend-pure", "/home/developer/projects/legend-engine"],
  "jvmArgs": ["-Dlegend.test.server.host=127.0.0.1", "-Dlegend.test.server.port=9095"],
  "recentErrors": [],
  "lockContended": false,
  "recentDisconnectCount": 0
}

The bridge passes the server's legend/status payload through verbatim.

  • state: created → initializing → ready, or failed/degraded on the way. reindexing and recovering are transient states after a workspace file change or a crash-recovery attempt.
  • message: live, human-readable compiler progress (e.g. "Loading 2854 sources...", "Finished compiling platform_dsl_mapping in 00:00:03") while initializing — or the real failure reason (e.g. a NoClassDefFoundError) if state is failed. It updating between polls means it's making progress, not hanging.
  • repositoryCount/symbolCount: only count workspace repos (discovered via *.definition.json under --repo-root) and indexed symbols. A --classpath-file (engine-scale mode) adds a lot to symbolCount once ready but does not change repositoryCount — that stat is workspace-only, so seeing it "stuck" at a small number in engine-scale mode is expected, not a bug.
  • compiledRepositories/totalRepositories: only populate during a genuine from-source compile pass (the "Compiling repositories in the following order: [...]" phase). Sitting at 0/0 the rest of the time — including while ready — is normal, not a sign anything is broken.
  • port is the LSP daemon's SOCKET port, not the bridge's HTTP port. In socket mode this is the --socket-port value (9100 above), so it will not match the --port you pass to pure-lsp. Use pure-lsp health for the HTTP port.
  • executionConcurrency is how many Pure executions run at once — the real ceiling for pure-lsp execute-parallel, and the number to raise/lower (-Dlegend.lsp.executionConcurrency) rather than hand-chunking batches. Default 0.75 x cores: execution is CPU-bound, so more threads than that cost throughput instead of adding it.
  • requestPoolSize is the pool for every other request (status, check, hover, …). It is deliberately larger and is NOT the execution ceiling — executions have their own pool precisely so a big batch cannot occupy every request thread and make the daemon look wedged.
  • recoveryAttempts/recoveryInProgress track crash-recovery; MAX_RECOVERY_ATTEMPTS is 3, after which the runtime latches to failed and only a restart clears it (see pure-lsp-restart below).
  • recentErrors is a list of {"timestamp": <epoch-ms>, "message": "..."}.
  • lockContended reflects whether the LSP's internal read/write lock is currently contended (e.g. a check/go() blocked behind a long-running compile). The richer detail arrives as an async legend/lockContention notification ({active, lockType, reason, pendingCount}) pushed while contention is ongoing — it is not a /status field, so don't poll for one.
Show full SKILL.md (365 more words)Show less

How long to expect

  • Plain repo-only mode: ready in roughly 10 seconds.
  • Engine-scale mode (--classpath-file): roughly 3 minutes, and it genuinely burns CPU the whole time (confirmed via ps/jstack — a healthy compile shows real, sustained CPU usage, not near- zero). If status is stuck on the exact same message for several minutes and the java process's CPU usage is near zero, that's a real hang, not slowness — check with:
    bash
    ps -eo pid,cmd | grep LegendPureLspServer | grep -v grep
    ps -p <pid> -o pid,etimes,time,%cpu
    A hang like this is what motivated adding real failure reporting to the server — if it's actually broken (not just slow), state should transition to failed with a specific message rather than sitting silently in initializing forever.

recovering or failed: restart the daemon, don't just poll

A bad request (e.g. checking a non-.pure file, see pure-lsp-check's note on .legend files) can knock the runtime into recovering. Recovery can silently fail — status may keep reporting recovering while the runtime is actually dead, or flip to failed, and either way the next pure-lsp-go call errors with "Runtime not initialized". Don't wait it out — restart:

bash
pure-lsp-restart [--socket-port N] [--dry-run]

This finds the java daemon and its bridge for --socket-port (default 9100), captures the bridge's exact original argv from /proc/<pid>/cmdline before touching anything, kills the daemon (then the now-stale bridge), relaunches the bridge with that captured argv, and polls it until the runtime reports ready/failed or a timeout. --dry-run prints the same discovery (pids, captured argv, what would be killed/relaunched) without killing or relaunching anything — use it to sanity- check before touching a shared daemon.

Exit codes: 0 restarted and ready (or, under --dry-run, a valid plan was found); 2 nothing is listening on --socket-port — nothing to restart; 3 a bridge was found but its daemon's pid couldn't be determined — aborts without killing anything; 4 a daemon is listening but no bridge is attached to it, so there's no captured argv to relaunch with (use pure-lsp-connect instead); 5 the daemon/bridge were killed and relaunched but never reached ready within the timeout (see stderr and the bridge log). The backend Server (EngineServerForTest, if one is wired in) is a separate process and normally survives this; no need to restart it too.

© finos, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/pure-dev/skills/pure-lsp-status of finos/legend-engine.

Open the folder on GitHubat commit 558cdbb

Compare with similar skills

Pure Lsp Status next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Pure Lsp Status compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pure Lsp Status this skillfinos/legend-engine113—~1.8kAutomated safety check: PassApache-2.0
Lspcode-yeongyu/oh-my-openagent70k—~304Automated safety check: PassCustom licence
Memory Bridgeruvnet/ruflo74k—~601Automated safety check: NotesMIT
Lsp Setupgithub/awesome-copilot40k1 repos~996Automated safety check: PassMIT
Lspatopile/atopile4k—~594Automated safety check: PassMIT
LspLuisaGroup/LuisaCompute1.1k—~758Automated safety check: PassApache-2.0

Similar skills

  • Lsp

    code-yeongyu/oh-my-openagent

    A skill your agent uses when Codex needs language-server diagnostics, definitions, references, symbols, or rename safety checks in the current workspace.

    70k GitHub stars~304 tokensUpdated today
    Auto-check passed
  • Memory Bridge

    ruvnet/ruflo

    Bridge Claude Code auto-memory into AgentDB with ONNX embeddings, deduplicate, and enable unified cross-project search

    74k GitHub stars~601 tokensUpdated yesterday
    AI & LLM EngineeringAuto-check: notes
  • Lsp Setup

    github/awesome-copilot

    Official

    Enable code intelligence (go-to-definition, find-references, hover, type info) for any programming language by installing and configuring an LSP server for Copilot CLI.

    40k GitHub starsUsed in 1 repo~996 tokens
    DevelopmentAuto-check passed
  • Lsp

    atopile/atopile

    How the atopile Language Server works (pygls), how it builds per-document graphs for completion/hover/defs, and the invariants for keeping it fast and crash-proof.

    4k GitHub stars~594 tokensUpdated 4 mo ago
    Auto-check passed
  • Lsp

    LuisaGroup/LuisaCompute

    clangd LSP over HTTP for C++ syntax checks and symbol navigation in LuisaCompute sources.

    1.1k GitHub stars~758 tokensUpdated yesterday
    Auto-check passed
  • Cowork To Code Bridge

    sickn33/agentic-awesome-skills

    Use an already-installed, independently verified cowork-to-code bridge to run narrowly approved actions on the user's own macOS, Linux, or WSL2 machine through a local file queue.

    47k GitHub starsUsed in 1 repo~2.6k tokens
    Auto-check passed

More from finos/legend-engine

All 15 skills in this repo
  • Pure Backend Start

    finos/legend-engine

    Starts (or confirms) the standalone legend-engine backend - engine Server + H2 + local metadata server on fixed ports 9095/9092 - so a Pure LSP started with -Dlegend.test.

    113 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Pure Chain Update

    finos/legend-engine

    Procedure for git-syncing and rebuilding a local legend-pure + legend-engine checkout, in dependency order, with pinned dependency versions resynced.

    113 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Pure Code Style

    finos/legend-engine

    Reformats a .pure file (or a block of Pure code) to a consistent house style: 2-space indentation with no column-aligned hanging indents, tight colons in type annotations, spaced pipes on…

    113 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Pure Lsp Check

    finos/legend-engine

    Compiles/checks a single .pure file against the already-running Legend Pure LSP bridge and reports diagnostics (errors/warnings) in under a second, as a fast alternative to a full mvn test/mvn…

    113 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Pure Lsp Connect

    finos/legend-engine

    Attaches the pure-lsp HTTP bridge to an LSP daemon that is ALREADY running (e.g.

    113 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Pure Lsp Execute

    finos/legend-engine

    Runs exactly ONE existing Pure function by path (signature, mangled id or bare path) through the running Legend Pure LSP bridge, without a go() wrapper, and returns its typed value in returnValue.

    113 GitHub stars~883 tokensUpdated today
    Auto-check passed

Questions about Pure Lsp Status

What does Pure Lsp Status do?

Checks whether the Legend Pure LSP dev-loop bridge is running and its current state — initializing/ready/failed, live compiler progress text, symbol/repository counts. Pure Lsp Status is an agent skill from finos/legend-engine. Checks whether the Legend Pure LSP dev-loop bridge is running and its current state — initializing/ready/failed, live compiler progress text, symbol/repository counts.

When should I use Pure Lsp Status?

Pure Lsp Status fits situations like: the user asks if the Pure LSP; pure-lsp bridge is up/running/ready; what its currently doing; why it seems stuck.

How do I install Pure Lsp Status in Claude Code?

Run `npx skills add finos/legend-engine --skill pure-lsp-status -a claude-code`. Or copy the skill folder (plugins/pure-dev/skills/pure-lsp-status in finos/legend-engine) into .claude/skills/pure-lsp-status in your project. Claude Code loads it when a task matches its description.

How do I install Pure Lsp Status in Codex?

Run `npx skills add finos/legend-engine --skill pure-lsp-status -a codex`. Or copy the skill folder (plugins/pure-dev/skills/pure-lsp-status in finos/legend-engine) into .agents/skills/pure-lsp-status in your project. Codex loads it when a task matches its description.

Can I use Pure Lsp Status in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add finos/legend-engine --skill pure-lsp-status -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pure-lsp-status, .gemini/skills/pure-lsp-status, .github/skills/pure-lsp-status and .opencode/skills/pure-lsp-status in your project.

What does Pure Lsp Status need to run?

SKILL.md names no scripts, command-line tools or credentials: Pure Lsp Status is instructions for the agent only.

Does Pure Lsp Status access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Pure Lsp Status safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Pure Lsp Status use?

Pure Lsp Status is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Pure Lsp Status use?

About 1.8k tokens (SKILL.md is roughly 7.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Pure Lsp Status?

Skills that share tags, products or a category with Pure Lsp Status: Lsp (code-yeongyu/oh-my-openagent, 70k stars), Memory Bridge (ruvnet/ruflo, 74k stars), Lsp Setup (github/awesome-copilot, 40k stars) and Lsp (atopile/atopile, 4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pure Lsp Status?

finos (a GitHub organization) maintains it in finos/legend-engine, which has 113 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 10, 2026.

Source: finos/legend-engine on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.