Skip to main content

LangSmith Fetch - Minimal CLI for fetching LangSmith threads and traces

Project description

LangSmith Fetch

LangSmith Fetch is CLI for fetching threads or traces from LangSmith projects. It is designed to be easily used by humans or code agents to programmatically fetch LangSmith data for testing and debugging.

LangSmith Fetch Banner

🚀 Quickstart

pip install langsmith-fetch

Set your LangSmith API key and project name:

export LANGSMITH_API_KEY=lsv2_...
export LANGSMITH_PROJECT=your-project-name

That's it! The CLI will automatically fetch traces or threads in LANGSMITH_PROJECT.

Fetch recent traces to directory (recommended):

langsmith-fetch traces ./my-traces --limit 10

Fetch specific trace by ID:

langsmith-fetch trace 3b0b15fe-1e3a-4aef-afa8-48df15879cfe

Same commands work for threads:

langsmith-fetch threads ./my-threads --limit 10
langsmith-fetch thread my-thread-id

Usage Example

Include metadata and feedback:

langsmith-fetch traces ./my-traces --limit 10 --include-metadata --include-feedback

For code agents:

Use langsmith-fetch to fetch recent LangSmith traces. Run langsmith-fetch --help for usage details.

Commands

Command What it fetches Output
trace <id> Specific trace by ID stdout or file
thread <id> Specific thread by ID stdout or file
traces [dir] Recent traces (bulk) Multiple JSON files in directory (RECOMMENDED) or stdout
threads [dir] Recent threads (bulk) Multiple JSON files in directory (RECOMMENDED) or stdout

Flags

Flag Applies To Description Default
--project-uuid <uuid> thread, threads, traces LangSmith project UUID (overrides config) From config or env
-n, --limit <int> traces, threads Maximum number to fetch 1
--last-n-minutes <int> traces, threads Only fetch from last N minutes None
--since <timestamp> traces, threads Only fetch since ISO timestamp None
--filename-pattern <text> traces, threads Filename pattern (use {trace_id}, {thread_id}, {index}) {trace_id}.json or {thread_id}.json
--format <type> All commands Output format: pretty, json, or raw pretty
--file <path> trace, thread Save to file instead of stdout stdout
--include-metadata traces Include run metadata (status, timing, tokens, costs) Not included
--include-feedback traces Include feedback data (requires extra API call) Not included
--max-concurrent <int> traces, threads Concurrent fetches (max 10 recommended) 5
--no-progress traces, threads Disable progress bar Progress shown

Output Formats

  • pretty (default): Human-readable Rich panels with color and formatting
  • json: Pretty-printed JSON with syntax highlighting
  • raw: Compact single-line JSON for piping to tools like jq

Concepts

LangSmith organizes data into three levels:

  • Runs: Individual LLM calls or tool executions
  • Traces: A collection of runs representing a single execution path (one trace contains multiple runs)
  • Threads: A collection of traces representing a conversation or session (one thread contains multiple traces)

Configuration

langsmith-fetch requires only LANGSMITH_PROJECT env var. It automatically looks up the Project UUID and saves both to ~/.langsmith-cli/config.yaml.

Finding IDs in LangSmith UI:

Project UUID (automatic lookup via LANGSMITH_PROJECT): Project ID location

Trace ID (for fetching specific traces): Trace ID location

Thread ID (for fetching specific threads): Thread ID location

Tests

Run the test suite:

# Install with test dependencies
pip install -e ".[test]"

# Or with uv
uv sync --extra test

# Run all tests
pytest tests/

# Run with verbose output
pytest tests/ -v

# Run with coverage
pytest tests/ --cov=langsmith_cli

The test suite includes 71 tests covering:

  • All CLI commands (traces, trace, thread, threads, config)
  • All output formats (pretty, json, raw)
  • Config management and storage
  • Project UUID lookup and caching
  • API fetching and error handling
  • Time filtering and SDK integration
  • Edge cases and validation

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langsmith_fetch-0.3.0.tar.gz (5.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langsmith_fetch-0.3.0-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

Details for the file langsmith_fetch-0.3.0.tar.gz.

File metadata

  • Download URL: langsmith_fetch-0.3.0.tar.gz
  • Upload date:
  • Size: 5.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for langsmith_fetch-0.3.0.tar.gz
Algorithm Hash digest
SHA256 cad87ac8828e8a9cbca3c7b647444f3f4af149ca8515c612b8ed02d0646ba05e
MD5 a0f22931095e345dcf87fb95efd70b68
BLAKE2b-256 f265fefe646d40a3eb9a45f1009de9d16551d9e1e5245a7daab7937a19f02a4e

See more details on using hashes here.

File details

Details for the file langsmith_fetch-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for langsmith_fetch-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd10329cb5df1c810bc0e6437c884621003c05d8b21d9671e09e01b2eabb9f0b
MD5 507c798330570d0d57c23a2cfbe69db4
BLAKE2b-256 8f7082e40e3e6a22658b3dd0619bfdef8c138358b54f2570913ee8cd7ee43b39

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page