NVIDIA / NVIDIA/OpenShell

Add asyncio client using grpc.aio

Open
#1,820 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:sdk state:stale
Dominant language
Rust
Stars
8.7k
Forks
1.3k
Avg merge
2d 11h
Merged PRs (30d)
253

Description

Motivation

The current Python SDK is sync-oriented. Agent runtimes and web services often run on asyncio, so an async client would make OpenShell easier to integrate without thread pools or blocking calls.

Proposed change

Add an asyncio client built on grpc.aio that mirrors the sync client surface where practical.

Example shape:

async with openshell.AsyncClient.from_env() as client:
    result = await client.execute("print('hello')")

Acceptance criteria

  • Add async connect/execute/close flows using grpc.aio.
  • Mirror the sync API surface where practical and document any differences.
  • Add async unit tests.
  • Ensure sync APIs remain unchanged.

Notes

This is expected to be SDK-only unless gaps in the generated gRPC bindings are discovered.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the Python sync SDK and its generated gRPC bindings, then trace the existing connect, execute, and close flows. Add the asyncio client with grpc.aio, cover the async flows with unit tests, document practical API differences, and verify the sync APIs remain unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
grpc, python
Domain
api
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.