Skip to content

Can langgraph-cli[inmem] be an optional dependency? #343

Description

@bevanjkay

langgraph-cli[inmem] is declared as a hard runtime dependency in [project.dependencies], but nothing under src/skillspector/ imports it. Its
only consumers in the repo are the make langgraph-dev target and langgraph.json, both of which are developer tooling for LangGraph Studio.

Because it is a runtime dependency, every install of the skillspector CLI — including ones that never run the dev server — pulls in the full LangGraph API server stack.

Impact

langgraph-cli[inmem] resolves to langgraph-api + langgraph-runtime-inmem.

langgraph-api alone requires:
grpcio, grpcio-tools, grpcio-health-checking, opentelemetry-api, opentelemetry-sdk, opentelemetry-exporter-otlp-proto-http, opentelemetry-exporter-prometheus, uvicorn, starlette, sse-starlette, structlog, cloudpickle, croniter, watchfiles

None of these dependencies seem to be required in a production build.

Suggested Fix

Move it to an optional extra, so the dev-server workflow keeps working while a plain install stays lean:

[project.optional-dependencies]
studio = [
    "langgraph-cli[inmem]>=0.4.14",
]
dev = [
    "skillspector[mcp]",
    "skillspector[studio]",
    ...
]

If I'm missing anything here, please let me know.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions