Skip to content

copilot-community-sdk/copilot-sdk-java

Repository files navigation

Copilot SDK for Java

Build Site Documentation Java 17+ License: MIT

Latest release

GitHub Release Maven Central Documentation Javadoc

Overview

⚠️ Disclaimer: This is an unofficial, community-driven SDK and is not supported or endorsed by GitHub. This SDK may change in breaking ways. Use at your own risk.

Java SDK for programmatic control of GitHub Copilot CLI, enabling you to build AI-powered applications and agentic workflows.

Installation

Requirements

  • Java 17 or later
  • GitHub Copilot CLI 0.0.405 or later installed and in PATH (or provide custom cliPath)

Maven

<dependency>
    <groupId>io.github.copilot-community-sdk</groupId>
    <artifactId>copilot-sdk</artifactId>
    <version>1.0.7</version>
</dependency>

Gradle

implementation 'io.github.copilot-community-sdk:copilot-sdk:1.0.7'

Quick Start

import com.github.copilot.sdk.*;
import com.github.copilot.sdk.events.*;
import com.github.copilot.sdk.json.*;
import java.util.concurrent.CompletableFuture;

public class CopilotSDK {
    public static void main(String[] args) throws Exception {
        // Create and start client
        try (var client = new CopilotClient()) {
            client.start().get();

            // Create a session
            var session = client.createSession(
                new SessionConfig().setModel("claude-sonnet-4.5")).get();

            // Handle assistant message events
            session.on(AssistantMessageEvent.class, msg -> {
                System.out.println(msg.getData().getContent());
            });

            // Handle session usage info events
            session.on(SessionUsageInfoEvent.class, usage -> {
                var data = usage.getData();
                System.out.println("\n--- Usage Metrics ---");
                System.out.println("Current tokens: " + (int) data.getCurrentTokens());
                System.out.println("Token limit: " + (int) data.getTokenLimit());
                System.out.println("Messages count: " + (int) data.getMessagesLength());
            });

            // Send a message
            var completable = session.sendAndWait(new MessageOptions().setPrompt("What is 2+2?"));
            // and wait for completion
            completable.get();
        }
    }
}

Documentation

📚 Full Documentation — Complete API reference, advanced usage examples, and guides.

Quick Links

Projects Using This SDK

Project Description
JMeter Copilot Plugin JMeter plugin for AI-assisted load testing

Want to add your project? Open a PR!

Contributing

Contributions are welcome! Please see the Contributing Guide for details.

Development Setup

# Clone the repository
git clone https://github.com/copilot-community-sdk/copilot-sdk-java.git
cd copilot-sdk-java

# Enable git hooks for code formatting
git config core.hooksPath .githooks

# Build and test
mvn clean verify

The tests require the official copilot-sdk test harness, which is automatically cloned during build.

License

MIT — see LICENSE for details.

Contributors 4

  •  
  •  
  •  
  •