Skip to main content

lsproxy SDK

A Python SDK for interacting with the lsproxy container, providing language-server protocol functionality for code analysis across multiple languages.

Features

  • Symbol definition lookup
  • Reference lookup across files
  • Support for analyzing Python, TypeScript/JavaScript, and Rust
  • Pydantic models for type safety

Try it out!

If you just want to get a feel for lsproxy try out the tutorial at demo.lsproxy.dev

Installation

pip install lsproxy-sdk

Usage

You can use lsproxy either by running a local server or using Modal cloud infrastructure.

Using Modal

First, install the Modal dependencies:

pip install 'lsproxy-sdk[modal]'

Then use the SDK:

from lsproxy import Lsproxy

# Synchronous usage
lsp = Lsproxy.initialize_with_modal(
    repo_url="https://github.com/username/repo",
    git_token="your-github-token",  # Optional, for private repos
)

# Async usage
from lsproxy import AsyncLsproxy
import asyncio

async def main():
    lsp = await AsyncLsproxy.initialize_with_modal(
        repo_url="https://github.com/username/repo"
    )
    try:
        files = await lsp.list_files()
    finally:
        await lsp.close()

asyncio.run(main())

Using Local Server

  1. Start the LSProxy container:
docker run --rm -d -p 4444:4444 -v "/path/to/your/code:/mnt/workspace" -e USE_AUTH=false --name lsproxy agenticlabs/lsproxy:0.3.5
  1. Use the SDK:
# Synchronous usage
from lsproxy import Lsproxy

lsp = Lsproxy()

# Async usage
from lsproxy import AsyncLsproxy
import asyncio

async def main():
    async with AsyncLsproxy() as lsp:
        # Use async methods
        files = await lsp.list_files()
        
# Run the async code
asyncio.run(main())

List all files in the workspace

lsp.list_files()

Get symbols in a file

lsp.definitions_in_file(path="path/to/file.py")

Get references to a symbol

# Find all references to a symbol at a specific position
references = lsp.find_references(
    GetReferencesRequest(
        identifier_position=FilePosition(
            file_path="path/to/file.py",
            line=10,
            character=15
        ),
        include_code_context_lines=2,  # Show 2 lines of context around each reference
        include_declaration=True       # Include the original declaration
    )
)

# Print found references
for ref in references.references:
    print(f"Reference in {ref.file_path} at line {ref.range.start.line}")
    if ref.code_context:
        print(ref.code_context)

Metadata

Release files for lsproxy-sdk 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lsproxy-sdk 0.3.1
File Size Uploaded
lsproxy_sdk-0.3.1.tar.gz 10.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lsproxy-sdk 0.3.1
File Interpreter ABI Platform
lsproxy_sdk-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 22.7 kB

Release files / lsproxy_sdk-0.3.1.tar.gz

Download URL lsproxy_sdk-0.3.1.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ae6fb01e1891455a8cded009739245bcbdf8129fcb063e8c510b710ee18cf7e5
BLAKE2b-256 checksum
How to use checksums
7a55b47720c5f28d854ba329bcc826cd7403afbb1465ab2048f3ef839f63a814
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release files / lsproxy_sdk-0.3.1-py3-none-any.whl

Download URL lsproxy_sdk-0.3.1-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
56962e37a14773f0db55fde70a26aa526b80faa1ef25554f98446c405ba055f4
BLAKE2b-256 checksum
How to use checksums
9cca37faf59b4d7a09766e9f4c4c1f942460489aa50bc069e1cff56b18d983e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page