claudecode

package
v1.233.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 20, 2026 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Overview

Package claudecode provides an AI provider that invokes the Claude Code CLI as a subprocess, reusing the user's Claude Pro/Max subscription instead of requiring separate API tokens.

Index

Constants

View Source
const (
	// ProviderName is the name of this provider for configuration lookup.
	ProviderName = "claude-code"
	// DefaultBinary is the default binary name for Claude Code.
	DefaultBinary = "claude"
	// DefaultMaxTurns is the default maximum agentic turns per invocation.
	DefaultMaxTurns = 5
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client invokes the Claude Code CLI in non-interactive mode.

func NewClient

func NewClient(atmosConfig *schema.AtmosConfiguration) (*Client, error)

NewClient creates a new Claude Code CLI client from Atmos configuration.

func (*Client) GetMaxTokens

func (c *Client) GetMaxTokens() int

GetMaxTokens returns 0 — managed by Claude Code internally.

func (*Client) GetModel

func (c *Client) GetModel() string

GetModel returns the provider name.

func (*Client) SendMessage

func (c *Client) SendMessage(ctx context.Context, message string) (string, error)

SendMessage sends a prompt to Claude Code and returns the response.

func (*Client) SendMessageWithHistory

func (c *Client) SendMessageWithHistory(ctx context.Context, messages []types.Message) (string, error)

SendMessageWithHistory concatenates history into a single prompt.

func (*Client) SendMessageWithSystemPrompt

func (c *Client) SendMessageWithSystemPrompt(ctx context.Context, systemPrompt string, messages []types.Message) (string, error)

SendMessageWithSystemPrompt sends messages with a system prompt via --append-system-prompt, without tools.

func (*Client) SendMessageWithSystemPromptAndTools

func (c *Client) SendMessageWithSystemPromptAndTools(
	ctx context.Context,
	systemPrompt string,
	atmosMemory string,
	messages []types.Message,
	_ []tools.Tool,
) (*types.Response, error)

SendMessageWithSystemPromptAndTools sends with system prompt via --append-system-prompt.

func (*Client) SendMessageWithTools

func (c *Client) SendMessageWithTools(_ context.Context, _ string, _ []tools.Tool) (*types.Response, error)

SendMessageWithTools is not supported — Claude Code manages its own tools.

func (*Client) SendMessageWithToolsAndHistory

func (c *Client) SendMessageWithToolsAndHistory(_ context.Context, _ []types.Message, _ []tools.Tool) (*types.Response, error)

SendMessageWithToolsAndHistory is not supported — Claude Code manages its own tools.

func (*Client) SetApprover

func (c *Client) SetApprover(approver approval.Approver)

SetApprover registers the approver consulted before Claude runs a tool that needs permission. Passing nil restores unattended operation.

func (*Client) SetProgressHandler

func (c *Client) SetProgressHandler(handler func(approval.Event))

SetProgressHandler registers a callback for tool progress events. The callback runs on the goroutine that called SendMessage*, never concurrently with it.

func (*Client) SetTimeout

func (c *Client) SetTimeout(timeout time.Duration)

SetTimeout sets the run timeout. Time spent inside the approver does not count. Zero disables the timeout (the caller's context still applies).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL