Skip to content

v0.1.0

Latest

Choose a tag to compare

@amackera amackera released this 21 Jul 16:29

First release of the Elixir SDK for Norns, the durable agent runtime on BEAM. Define agents and tools, connect as a worker, or drive agents as a client.

Highlights

  • Worker — connect to Norns over WebSocket (Slipstream), register agents and tools, and handle LLM + tool tasks from the orchestrator. Reconnects automatically. Drops into your supervision tree.
  • Client — send messages, poll runs to completion, and manage conversations. All read functions return typed structs (RunResponse, EventResponse, AgentResponse, ConversationResponse, MessageResult), each built from a from_map/1 constructor — access fields with dot syntax (run.status, agent.id).
  • StreamingNornsSdk.Client.stream/4 forwards a run's events to a subscriber process as {:norns_event, pid, %StreamEvent{}} messages, with {:norns_closed, pid, reason} on early socket close. Idiomatic Elixir: events land in your mailbox, so it drops straight into a GenServer or LiveView handle_info/2.
  • Multi-provider LLM via ReqLLM (Anthropic, OpenAI, Google, Mistral, and more), with automatic provider inference from the model name.
  • Provider-neutral wire format handling via NornsSdk.Format.

Install

{:norns_sdk, "~> 0.1"}

Known limitations

  • Early v0.1 focused on core worker/client flows; API contracts will continue to harden alongside Norns runtime releases.
  • Live streaming is exercised via an integration test against a running Norns instance (tagged :llm), not in the default unit suite.

See the CHANGELOG for the full list.