Packages
claude_code
0.17.0
0.36.5
0.36.4
0.36.3
0.36.2
0.36.1
0.36.0
0.35.0
0.34.0
0.33.1
0.32.2
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.1
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Claude Agent SDK for Elixir – Build AI agents with Claude Code
Current section
Files
Jump to
Current section
Files
claude_code
mix.exs
mix.exs
defmodule ClaudeCode.MixProject do
use Mix.Project
@version "0.17.0"
@source_url "https://github.com/guess/claude_code"
def project do
[
app: :claude_code,
version: @version,
elixir: "~> 1.18",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
deps: deps(),
aliases: aliases(),
test_coverage: [tool: ExCoveralls],
preferred_cli_env: [
coveralls: :test,
"coveralls.detail": :test,
"coveralls.post": :test,
"coveralls.html": :test,
"coveralls.github": :test
],
dialyzer: [
plt_file: {:no_warn, "priv/plts/project.plt"},
plt_core_path: "priv/plts/core.plt",
plt_add_apps: [:mix]
],
# Hex
package: package(),
description: "The Elixir SDK for building AI agents with Claude Code",
# Docs
name: "ClaudeCode",
docs: docs(),
source_url: @source_url,
homepage_url: @source_url
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger, :inets, :ssl]
]
end
# Specifies which paths to compile per environment.
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
# Run "mix help deps" to learn about dependencies.
defp deps do
[
# Production dependencies
{:jason, "~> 1.4"},
{:nimble_options, "~> 1.0"},
{:nimble_ownership, "~> 1.0"},
{:telemetry, "~> 1.2"},
# Optional dependencies
{:hermes_mcp, "~> 0.14", optional: true},
# Development and test dependencies
{:styler, "~> 1.0", only: [:dev, :test], runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
{:ex_doc, "~> 0.34", only: :dev, runtime: false},
{:excoveralls, "~> 0.18", only: :test},
{:mox, "~> 1.1", only: :test},
{:stream_data, "~> 1.1", only: [:test, :dev]}
]
end
defp aliases do
[
# Ensure code quality before commit
quality: [
"compile --warnings-as-errors",
"format --check-formatted",
"credo --strict",
"dialyzer"
],
# Run all tests with coverage
"test.all": [
"test --cover",
"coveralls.html"
]
]
end
defp package do
[
files: ~w(lib .formatter.exs mix.exs README.md LICENSE CHANGELOG.md),
licenses: ["MIT"],
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md"
}
]
end
defp docs do
[
main: "readme",
source_ref: "v#{@version}",
source_url: @source_url,
extras: [
"README.md",
"CHANGELOG.md",
# Guides
"docs/guides/getting-started.md",
"docs/guides/streaming.md",
"docs/guides/sessions.md",
"docs/guides/permissions.md",
# Testing
"docs/guides/testing.md",
# Integration
"docs/integration/phoenix.md",
"docs/integration/mcp.md",
"docs/integration/tool-callbacks.md",
# Advanced
"docs/advanced/configuration.md",
"docs/advanced/supervision.md",
"docs/advanced/agents.md",
# Reference
"docs/reference/examples.md",
"docs/reference/architecture.md",
"docs/reference/troubleshooting.md"
],
groups_for_extras: [
Introduction: [
"README.md",
"docs/guides/getting-started.md"
],
Guides: [
"docs/guides/streaming.md",
"docs/guides/sessions.md",
"docs/guides/permissions.md"
],
Testing: [
"docs/guides/testing.md"
],
Integration: [
"docs/integration/phoenix.md",
"docs/integration/mcp.md",
"docs/integration/tool-callbacks.md"
],
Advanced: [
"docs/advanced/configuration.md",
"docs/advanced/supervision.md",
"docs/advanced/agents.md"
],
Reference: [
"docs/reference/examples.md",
"docs/reference/architecture.md",
"docs/reference/troubleshooting.md"
]
],
groups_for_modules: [
"Core API": [
ClaudeCode,
ClaudeCode.Session,
ClaudeCode.Supervisor
],
Configuration: [
ClaudeCode.Options
],
Streaming: [
ClaudeCode.Stream
],
"Types & Parsing": [
ClaudeCode.Types,
ClaudeCode.Message,
ClaudeCode.Content
],
Callbacks: [
ClaudeCode.ToolCallback
],
Testing: [
ClaudeCode.Test,
ClaudeCode.Test.Factory,
ClaudeCode.Adapter.Test
],
"MCP Integration": ~r/ClaudeCode.MCP/,
Messages: ~r/ClaudeCode.Message/,
"Content Blocks": ~r/ClaudeCode.Content/,
Installation: [
ClaudeCode.Installer
],
Internal: [
ClaudeCode.Adapter,
ClaudeCode.Adapter.CLI,
ClaudeCode.CLI,
ClaudeCode.Input
]
]
]
end
end