Add message-level streaming support with query_stream() #13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
query_stream()function for message-level streamingDetails
This PR introduces streaming support to ClaudeCodeSDK.jl, allowing applications to receive and process messages as they arrive from the Claude CLI rather than waiting for the complete response.
Key Changes
query_stream()function: Returns aChannel{Message}that yields messages as they're receivedstream_messages()that reads CLI output line-by-lineprocess_query_stream()method to handle streaming workflowImportant Note
This implementation provides message-level streaming, not character-level streaming. The Claude CLI outputs complete messages as JSON objects, so we receive:
This is still valuable for:
Usage Example
Testing
All existing tests pass. The streaming functionality gracefully handles CLI availability and provides the same error handling as the batch
query()function.🤖 Generated with Claude Code