typescript-lsp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited typescript-lsp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill provides TypeScript Language Server Protocol integration for exploring and understanding TypeScript/JavaScript codebases.
IMPORTANT: Prefer LSP tools over Grep/Glob when working with *.ts, *.tsx, *.js, *.jsx files. LSP provides type-aware results that understand imports, exports, and symbol relationships.
Use these tools to:
| Tool | LSP Method | Purpose |
|---|---|---|
| Glob | — | Find files by pattern |
| Grep | — | Search text content |
workspace/symbol | symbol search | Find a TypeScript symbol by name across the workspace |
textDocument/hover | hover | Get type signature + TSDoc at a position |
textDocument/references | references | Find all usages of a symbol |
textDocument/documentSymbol | doc symbols | List all symbols in a file |
| Task | Use LSP | Use Grep/Glob |
|---|---|---|
| Find all usages of a function/type | ✅ textDocument/references | ❌ Misses re-exports, aliases |
| Search for a symbol by name | ✅ workspace/symbol | ❌ Matches strings, comments |
| Get type signature + TSDoc | ✅ textDocument/hover | ❌ Not possible |
| List all symbols in a file | ✅ textDocument/documentSymbol | ❌ Doesn't resolve re-exports |
| Find files by pattern | ❌ | ✅ Glob |
| Search non-TS files (md, json) | ❌ | ✅ Grep |
| Search for text in comments/strings | ❌ | ✅ Grep |
Exploring code (prefer LSP):
workspace/symbol to search for a symbol by name across the workspacetextDocument/documentSymbol to get an overview of all symbols in a filetextDocument/hover to get the exact type signature at a positionBefore editing code:
textDocument/references to find all usages of a symbol you plan to modifytextDocument/hover to verify current type signaturesBefore writing code:
workspace/symbol to find similar patterns or related symbolstextDocument/hover on APIs you plan to useThe TypeScript Language Server is available locally and started via:
bun typescript-language-server --stdioThis launches the LSP server communicating over stdin/stdout using the Language Server Protocol — JSON-RPC messages with a Content-Length header followed by a newline-separated JSON body.
Each message is framed as:
Content-Length: <byte-length>\r\n
\r\n
<json-body>{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"processId":null,"rootUri":"file:///absolute/path/to/project","capabilities":{}}}Follow with:
{"jsonrpc":"2.0","method":"initialized","params":{}}{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///absolute/path/to/file.ts","languageId":"typescript","version":1,"text":"<file contents>"}}}{"jsonrpc":"2.0","id":2,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///absolute/path/to/file.ts"},"position":{"line":42,"character":10}}}Line and character are 0-indexed.
{"jsonrpc":"2.0","id":3,"method":"textDocument/references","params":{"textDocument":{"uri":"file:///absolute/path/to/file.ts"},"position":{"line":42,"character":10},"context":{"includeDeclaration":true}}}{"jsonrpc":"2.0","id":4,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///absolute/path/to/file.ts"}}}{"jsonrpc":"2.0","id":5,"method":"workspace/symbol","params":{"query":"parseConfig"}}{"jsonrpc":"2.0","id":99,"method":"shutdown","params":null}
{"jsonrpc":"2.0","method":"exit","params":null}textDocument/didOpen with the file's full texttextDocument/documentSymbol to list all symbolstextDocument/hover at positions of interest for type signaturestextDocument/hover to confirm the current type signaturetextDocument/references to find every call siteworkspace/symbol with the symbol name as the queryA single bun typescript-language-server --stdio process handles the full session. Start it once, send all requests, then shutdown. Starting a new process per query costs ~300–500ms for server init each time.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.