# Axiom Documentation > Documentation for Axiom: a language-agnostic, multi-tenant, low-latency flow execution platform. Write a function, publish it, compose type-safe flows, invoke them via API. ## Getting started - [Install the Axiom CLI](/docs/getting-started/installation): Install the axiom CLI with Homebrew or the curl install script, authenticate with axiom login, and confirm your identity and tenant with axiom whoami. - [Write your first node](/docs/getting-started/first-node): Scaffold a package with axiom init, create a Python node, and iterate locally with axiom validate, axiom test, and the axiom dev hot-reload server. - [Run your first flow](/docs/getting-started/first-flow): Push your package with axiom push, import its nodes into the canvas editor, connect them into a flow, and run it from the editor. - [Invoke a flow via API](/docs/getting-started/invoke-via-api): Create an API key, copy the ready-made curl command from the Use via API dialog, and call your compiled flow over HTTP — one-shot or as an SSE stream. ## Concepts - [Nodes, packages, and flows](/docs/concepts/nodes-packages-flows): Axiom's core object model — how messages, nodes, packages, flows, executions, and the entry and terminal nodes relate to each other. - [The type system](/docs/concepts/type-system): How Protocol Buffers define every contract in Axiom: messages as node inputs and outputs, importing types from other packages with axiom import, and how the canvas keeps edges type-safe. - [Execution model](/docs/concepts/execution-model): How Axiom runs a flow: immutable compiled artifacts, unary vs pipeline (SSE) invocation, the Executions list and detail pages, and durable resume after worker failure. - [Sandboxing and tenancy](/docs/concepts/sandboxing-and-tenancy): What node code can and cannot do at runtime: the sidecar is a node's only channel to the platform, and tenant isolation is enforced by the platform — never by your code. - [Agent memory](/docs/concepts/memory): How flows remember things across executions: sessions, episodic conversation history, consolidated semantic memories, and the axiom memory CLI. ## Guides - [Create a node in Python](/docs/guides/create-a-node-python): Scaffold a Python package, define protobuf messages, implement a typed node function with AxiomContext, test it with pytest, and push it to Axiom. - [Create a node in Go](/docs/guides/create-a-node-go): Scaffold a Go node with the Axiom CLI, implement the handler against generated protobuf types, test it, and run it locally with hot reload. - [Create a node in TypeScript](/docs/guides/create-a-node-typescript): Scaffold, implement, test, and push a TypeScript node with the Axiom CLI, using google-protobuf message classes and AxiomContext. - [Create a node in Rust](/docs/guides/create-a-node-rust): Scaffold a Rust node package, implement the handler against the AxiomContext trait, run cargo-based tests with axiom test, and push it to the platform. - [Create a node in Java](/docs/guides/create-a-node-java): Scaffold a Java package and node with the Axiom CLI, implement the handler against AxiomContext, test it with Maven, and push it to the platform. - [Create a node in C#](/docs/guides/create-a-node-csharp): Scaffold a C# package, implement a unary or pipeline node against IAxiomContext, and run xUnit tests with axiom test — codegen happens at dotnet build via Grpc.Tools. - [Import message types from another package](/docs/guides/import-package-types): Find a published package with axiom search and axiom info, pull its message types into your package with axiom import, and use them as node inputs and outputs. - [Manage secrets in a flow](/docs/guides/manage-secrets): Store an API key on the console's Secrets page, read it from node code with ax.secrets.get, and know exactly what is and is not encrypted. - [Set per-flow config values](/docs/guides/flow-configs): Create flow config profiles in the console — node timeout and secret overrides — pick one in the Run dialog or via config_id, and see how resolved values reach nodes. - [Publish a flow to the marketplace](/docs/guides/publish-a-flow): Compile a flow.yaml with axiom flow compile, then promote the artifact to the public marketplace with axiom flow publish so other tenants can fork it or import it as a subflow. - [Debug a flow](/docs/guides/debug-a-flow): Start a debug session with breakpoints and pause/step controls, inspect each node's input and output on the canvas, and replay any past execution on its detail page. - [Use the interactive API docs](/docs/guides/use-interactive-api-docs): Open generated, interactive OpenAPI docs for any flow from the inspector's API section, send test requests from the browser, and fetch the raw openapi.json for codegen. - [Build a client SDK](/docs/guides/build-a-client-sdk): Bundle marketplace nodes and flows into a client in Console → Client Builder, build it into a typed SDK in up to six languages, and call it with an API key from the environment. - [Create and manage API keys](/docs/guides/api-keys): Mint, use, and revoke API keys in Console → API Keys, understand what a key can access, and read the Usage page's execution stats. - [Inspect agent memory](/docs/guides/inspect-agent-memory): List, inspect, search, close, and delete agent memory sessions for your flows with the axiom memory CLI commands. - [Author packages and flows with Claude Code](/docs/guides/author-with-claude-code): Install Axiom's authoring Skills into Claude Code with axiom skills install so your agent knows the create→validate→push→publish loop and drives the axiom CLI through the shell. ## Reference - [axiom](/docs/reference/cli/axiom): Axiom CLI — build and push node packages - [axiom build](/docs/reference/cli/axiom-build): Build a local Docker image identical to the publish pipeline - [axiom create](/docs/reference/cli/axiom-create): Create Axiom resources - [axiom create message](/docs/reference/cli/axiom-create-message): Scaffold a new protobuf message in messages/messages.proto - [axiom create node](/docs/reference/cli/axiom-create-node): Scaffold a new node in nodes/ - [axiom dev](/docs/reference/cli/axiom-dev): Start a local development server with hot reload - [axiom doctor](/docs/reference/cli/axiom-doctor): Check the local toolchain needed to build and test Axiom packages - [axiom flow](/docs/reference/cli/axiom-flow): Author and compile flows (graphs of published nodes) - [axiom flow compile](/docs/reference/cli/axiom-flow-compile): Resolve nodes, lay out, and compile a runnable flow artifact - [axiom flow layout](/docs/reference/cli/axiom-flow-layout): Auto-position nodes on the grid and write col/row back - [axiom flow new](/docs/reference/cli/axiom-flow-new): Scaffold a starter flow.yaml - [axiom flow publish](/docs/reference/cli/axiom-flow-publish): Publish a compiled flow to the public marketplace - [axiom flow pull](/docs/reference/cli/axiom-flow-pull): Materialize an existing compiled flow into an editable flow.yaml - [axiom flow run](/docs/reference/cli/axiom-flow-run): Invoke a compiled flow and print its result - [axiom flow validate](/docs/reference/cli/axiom-flow-validate): Validate a flow.yaml's structure (local checks) - [axiom generate](/docs/reference/cli/axiom-generate): Compile .proto files into language bindings - [axiom import](/docs/reference/cli/axiom-import): Import proto definitions from a published package - [axiom info](/docs/reference/cli/axiom-info): Show package details, nodes, messages, and live endpoint - [axiom init](/docs/reference/cli/axiom-init): Initialize a new Axiom package - [axiom login](/docs/reference/cli/axiom-login): Authenticate with the Axiom platform - [axiom memory](/docs/reference/cli/axiom-memory): Inspect and manage agent memory for your flows - [axiom memory end](/docs/reference/cli/axiom-memory-end): Close a session and trigger memory consolidation - [axiom memory ls](/docs/reference/cli/axiom-memory-ls): List flows with memory, or sessions for a specific flow - [axiom memory rm](/docs/reference/cli/axiom-memory-rm): Delete a session or all memory for a flow - [axiom memory search](/docs/reference/cli/axiom-memory-search): Semantic search over memories for a flow - [axiom memory show](/docs/reference/cli/axiom-memory-show): Show conversation history and semantic memories for a session - [axiom publish](/docs/reference/cli/axiom-publish): Publish a pushed package to the public marketplace - [axiom push](/docs/reference/cli/axiom-push): Push the package to the Axiom platform (tenant-private) - [axiom remove](/docs/reference/cli/axiom-remove): Remove Axiom resources - [axiom remove node](/docs/reference/cli/axiom-remove-node): Remove a node from nodes/ and axiom.yaml - [axiom search](/docs/reference/cli/axiom-search): Search the Axiom package marketplace - [axiom skills](/docs/reference/cli/axiom-skills): Manage the Axiom authoring Skills for Claude Code - [axiom skills install](/docs/reference/cli/axiom-skills-install): Install the Axiom authoring Skills into a Claude Code skills directory - [axiom skills list](/docs/reference/cli/axiom-skills-list): List the Skills bundled in this CLI - [axiom test](/docs/reference/cli/axiom-test): Run language-native tests with axiom validation - [axiom validate](/docs/reference/cli/axiom-validate): Validate axiom.yaml, proto definitions, and node signatures - [axiom version](/docs/reference/cli/axiom-version): Print the axiom CLI version - [axiom whoami](/docs/reference/cli/axiom-whoami): Show the current authenticated user - [axiom.yaml manifest reference](/docs/reference/axiom-yaml): The complete schema of the axiom.yaml package manifest: every field, its type, default, validation rule, and which CLI commands read or write it. - [Python SDK reference](/docs/reference/sdk/python): Complete reference for the ax parameter in Python nodes: structured logging with ax.log, secrets with ax.secrets, agent memory with ax.agent.memory, and flow reflection with ax.reflection.flow. - [Go SDK reference](/docs/reference/sdk/go): Every capability on axiom.Context — the Go form of AxiomContext: structured logging, secrets, agent memory, execution identity, flow reflection, and flow mutation, with full signatures. - [TypeScript SDK reference](/docs/reference/sdk/typescript): Complete reference for AxiomContext in TypeScript — logging, secrets, agent memory, flow reflection, flow mutation, execution identifiers, and handler signatures. - [HTTP API reference](/docs/reference/http-api): Every invocation endpoint — flow invoke, SSE streaming, single-node calls — with authentication, request and response fields, rate limits and daily quotas, and the structured error envelope. - [Error catalog](/docs/reference/error-catalog): Every user-facing Axiom error — flow run failures in the editor, edge transform errors, and HTTP API error responses — with what causes each one and how to fix it. - [Glossary](/docs/reference/glossary): Canonical definitions for every Axiom term — the single authority for terminology used across the docs, the CLI, the canvas, and the API. ## Machine-readable specs - [Flow OpenAPI (per flow, on demand)](/api/graphs/{artifact_id}/openapi.json): OpenAPI 3 spec generated on demand for any published flow; substitute the flow's artifact id (ADR-061). - [axiom.yaml manifest schema](/docs/reference/axiom-yaml.md): Raw markdown reference for the package manifest schema.