Agent skill

Lsp

by atopile in 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.

MITAuto-check passed

Install Lsp

skills CLI
$ npx skills add atopile/atopile --skill lsp -a claude-code

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

GitHub CLI
$ gh skill install atopile/atopile lsp --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/atopile/atopile.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/lsp .claude/skills/lsp && 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
lsp
GitHub stars
4k
Token cost
~594 tokens
SKILL.md length
243 words
Files
1
Skills in repo
19
Repo updated
First seen
Licence
MIT

At a glance

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.

  • Works in 2 steps: Edit handlers/helpers in… → Run completion tests (fast loop) and…
  • SKILL.md covers Quick Start, Relevant Files, Dependants (Call Sites) and How to Work With / Develop /…, plus 2 more sections
  • Calls python

What it does

Lsp is an agent skill from 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.

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

The repository describes itself as: Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️. The licence is MIT.

Example prompts

  • “/lsp”

Requirements

  • Python 3

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Edit handlers/helpers in src/atopile/lsp/lsp_server.py.
  2. Run completion tests (fast loop) and verify GraphView cleanup paths.

What it can do on your machine

Read from SKILL.md and the folder at commit 619eda7. 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

    Shell commands in SKILL.md call:

    • python

    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

Lsp loads about 594 tokens when it runs. Until then it costs about 42 tokens; SKILL.md has 243 words of instructions outside code blocks.

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

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 atopile/atopile at commit 619eda7, republished under its MIT licence (© atopile). 243 words, ~594 tokens.

Download SKILL.mdSave it as .claude/skills/lsp/SKILL.md (or your agent's skills folder).
name
lsp
description
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.

LSP Module

The lsp module (located in src/atopile/lsp/) implements the Language Server Protocol for atopile. It provides IDE features like autocomplete, go-to-definition, and diagnostics (error reporting) for ato files.

Quick Start

Run the server on stdio (what editors expect):

bash
python -m atopile.lsp.lsp_server

Relevant Files

  • Server implementation: src/atopile/lsp/lsp_server.py
    • owns global LSP_SERVER (pygls LanguageServer)
    • maintains per-document DocumentState (graph/typegraph/build_result)
    • implements completion/hover/definition/diagnostics handlers
  • Utilities: src/atopile/lsp/lsp_utils.py
  • Optional debugging helper: src/atopile/lsp/_debug_server.py

Dependants (Call Sites)

  • VSCode Extension: The designated client for this server.
  • Compiler: The LSP invokes the compiler (often in a partial or fault-tolerant mode) to understand the code structure.

How to Work With / Develop / Test

Core Concepts
  • Partial Compilation: Unlike the CLI build, the LSP must handle broken or incomplete code without crashing.
  • Latency: Features must be fast (<50ms for typing, <200ms for completion).
  • Per-document graphs: each open document has an isolated GraphView + TypeGraph stored in DocumentState.
  • Keep last good build: the server keeps the last successful BuildFileResult to power completion/hover even when the current edit has errors.
Development Workflow
  1. Edit handlers/helpers in src/atopile/lsp/lsp_server.py.
  2. Run completion tests (fast loop) and verify GraphView cleanup paths.
Testing
  • Integration-style tests: ato dev test --llm test/test_lsp_completion.py -q

Best Practices

  • Robustness: Never let the server crash. Catch all exceptions in handlers and log them.
  • Debouncing: Don't trigger expensive operations on every keystroke.

Core Invariants (easy to regress)

  • Always destroy old graphs on rebuild/reset (DocumentState.reset_graph calls GraphView.destroy()).
  • Do not assume builds succeed; most features must handle:
    • syntax errors (ANTLR)
    • partial typegraphs
    • exceptions from linking/deferred execution

© atopile, MIT. 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 .claude/skills/lsp of atopile/atopile.

Open the folder on GitHubat commit 619eda7

Compare with similar skills

Lsp 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.

Lsp compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Lsp this skillatopile/atopile4k—~594Automated safety check: PassMIT
Lspcode-yeongyu/oh-my-openagent70k—~304Automated safety check: PassCustom licence
Lsp Setupgithub/awesome-copilot40k1 repos~996Automated safety check: PassMIT
LspLuisaGroup/LuisaCompute1.1k—~758Automated safety check: PassApache-2.0
LSP Setupcode-yeongyu/oh-my-openagent70k—~1.4kAutomated safety check: NotesCustom licence
Kode LSP MaintenanceshareAI-lab/Kode-CLI5.2k—~573Automated 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
  • 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

    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
  • LSP Setup

    code-yeongyu/oh-my-openagent

    Detects which languages a project uses, installs the matching language server, writes its config and checks it with a real call so diagnostics and go-to-definition work.

    70k GitHub stars~1.4k tokensUpdated today
    DevelopmentAuto-check: notes
  • Kode LSP Maintenance

    shareAI-lab/Kode-CLI

    Diagnoses why Kode's LSP tool returns nothing and fixes it through plugin .lsp.json files and slash commands, then verifies with a real LSP call.

    5.2k GitHub stars~573 tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Shows when to answer a code question through a real language server instead of grep, covering definitions, references, hover, outlines, and errors.

    5.6k GitHub stars~794 tokensUpdated yesterday
    DevelopmentAuto-check passed

More from atopile/atopile

All 19 skills in this repo
  • Ato Language

    atopile/atopile

    Reference for the .ato declarative DSL: type system, connection semantics, constraint model, and standard library.

    4k GitHub stars~3.5k tokensUpdated 3 mo ago
    Auto-check passed
  • Compiler

    atopile/atopile

    How the atopile compiler builds and links TypeGraphs from .ato (ANTLR front-end → AST → TypeGraph → Linker → DeferredExecutor), plus the key invariants and test entrypoints.

    4k GitHub stars~1k tokensUpdated 3 mo ago
    Auto-check passed
  • Domain Layer

    atopile/atopile

    Instructions for electronics-specific logic and build processes: netlists, PCBs, build steps, and exporters.

    4k GitHub stars~791 tokensUpdated 3 mo ago
    Auto-check passed
  • Fabll

    atopile/atopile

    How FabLL (faebryk.core.node) maps Python node/trait declarations into the TypeGraph + instance graph, including field/trait invariants and instantiation patterns.

    4k GitHub stars~1.1k tokensUpdated 3 mo ago
    Auto-check passed
  • Faebryk

    atopile/atopile

    How Faebryk's TypeGraph works (GraphView + Zig edges), how to traverse/resolve references, and how FabLL types/traits map onto edge types.

    4k GitHub stars~861 tokensUpdated 3 mo ago
    Auto-check passed
  • Graph

    atopile/atopile

    How the Zig-backed instance graph works (GraphView/NodeReference/EdgeReference), the real Python API surface, and the invariants around allocation, attributes, and cleanup.

    4k GitHub stars~952 tokensUpdated 3 mo ago
    Auto-check passed

Questions about Lsp

What does Lsp do?

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. Lsp is an agent skill from 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.

How do I install Lsp in Claude Code?

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

How do I install Lsp in Codex?

Run `npx skills add atopile/atopile --skill lsp -a codex`. Or copy the skill folder (.claude/skills/lsp in atopile/atopile) into .agents/skills/lsp in your project. Codex loads it when a task matches its description.

Can I use Lsp 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 atopile/atopile --skill lsp -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lsp, .gemini/skills/lsp, .github/skills/lsp and .opencode/skills/lsp in your project.

What does Lsp need to run?

Going by SKILL.md and its folder, Lsp needs the command-line tools its instructions call (python). Our summary lists: Python 3.

Does Lsp 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 Lsp 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 Lsp use?

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

How many tokens does Lsp use?

About 594 tokens (SKILL.md is roughly 2.4k 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 Lsp?

Skills that share tags, products or a category with Lsp: Lsp (code-yeongyu/oh-my-openagent, 70k stars), Lsp Setup (github/awesome-copilot, 40k stars), Lsp (LuisaGroup/LuisaCompute, 1.1k stars) and LSP Setup (code-yeongyu/oh-my-openagent, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Lsp?

atopile (a GitHub organization) maintains it in atopile/atopile, which has 3,976 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on June 13, 2026.

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