GitHub Copilot SDK가 정식으로 공개되어 빠르게 둘러볼 수 있는 샘플 코드를 작성해봤습니다. 추후 정식 버전까지 지켜봐야 하겠으나, 일단 살펴보기로는 AOT 지원도 하고 있는 것으로 보여서 만족스럽습니다. ![]()
GitHub Copilot SDK는 시스템에 설치된 GitHub Copilot CLI를 찾아서 활용하는 래퍼이므로 OS에 무관하게 지원되며, 원격 서버 형태로도 연결이 가능한 것으로 보입니다.
아래 코드를 ghcopilot.cs 로 저장하시고, dotnet run ghcopilot.cs 또는 chmod +x ghcopilot.cs; ./ghcopilot.cs 명령어로 실행하면 실행해볼 수 있습니다.
#!/usr/bin/env dotnet
#:package GitHub.Copilot.SDK@0.*
#:property PublishAot=true
using GitHub.Copilot.SDK;
using System.Threading.Tasks;
await using var client = new CopilotClient(new()
{
// Windows 기준. Linux, macOS의 경우 다른 경로 탐색 기준 필요.
CliPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
"Microsoft", "WinGet", "Links", "copilot.exe"),
});
await client.StartAsync();
// Create a session (OnPermissionRequest is required)
await using var session = await client.CreateSessionAsync(new SessionConfig
{
Model = "gpt-5.4",
OnPermissionRequest = PermissionHandler.ApproveAll,
});
// Wait for response using session.idle event
var done = new TaskCompletionSource();
session.On(e =>
{
if (e is AssistantMessageEvent msg)
{
Console.WriteLine(msg.Data.Content);
}
else if (e is SessionIdleEvent)
{
done.SetResult();
}
});
// Send a message and wait for completion
await session.SendAsync(new MessageOptions { Prompt = "What is 2+2?" });
await done.Task;