Get Started
Install a node, index something, query it — then make the node yours by changing it. This page works for a person or an agent reading top to bottom: hand an agent this link and it can install the CLI, run it, add plugins, and get itself going.
Install
Section titled “Install”Two paths, depending on whether you want to compile the node yourself — or skip both and hand the whole job to an agent.
Just run it — nothing to compile
Section titled “Just run it — nothing to compile”One line installs the prebuilt binary (macOS and Linux, arm64 and x86_64):
curl -fsSL https://docs.inseam.io/install.sh | shThe script figures out your platform, downloads the latest GitHub release, checks the download against the release’s sha256 checksums, and installs to ~/.local/bin. Set INSEAM_INSTALL_DIR or INSEAM_VERSION to override, or grab the tarballs from the releases page yourself. You can also run an app that bundles the core — the macOS app embeds the same node and shares its data with the CLI.
The prebuilt binary can still grow: it installs plugins from the registry (inseam plugin install <name>, plugins/registry.md) and validates plugins you write yourself (inseam plugin check). Since loaded plugins can be written in any language that compiles to a WASM component, you can extend the node without ever installing Rust (see Self-modify).
Hand it to an agent
Section titled “Hand it to an agent”You don’t have to run any of this yourself. Paste this into an agent with shell access (Claude Code or similar) and let it drive:
Fetch https://docs.inseam.io/llms.txt and follow its Get Started guide:install the inseam CLI, configure it, index a directory I name, and verifya query returns results. Prefer the from-source path if Rust is availableso the node can modify itself; otherwise use the one-line installer. Ifsomething I need indexed isn't supported yet, author a loaded plugin perthe guide, validate it with `inseam plugin check`, and mount it.llms.txt is the agent-readable index of this whole site, with this page at the top — one URL is enough for an agent to install, configure, extend, and start a node on its own.
From source — the self-modifying node
Section titled “From source — the self-modifying node”This path compiles the node, so it needs Rust (curl https://sh.rustup.rs -sSf | sh or rustup.rs). Clone the repo and install the CLI from your checkout:
git clone https://github.com/aiuitech/inseamcd inseamcargo install --path crates/inseam-cliThe checkout is now your node’s workshop: the CLI on your PATH is built from it, plugins are written in it, and every layer — loaded plugins, linked plugins, even the kernel — can be edited and reinstalled with the same cargo install --path crates/inseam-cli. Pick this path if you (or your agent) want the node to be able to change itself.
First run
Section titled “First run”The CLI documents itself — inseam --help and inseam <command> --help are the reference; cli.md is the tour. The essential loop:
export OPENROUTER_API_KEY=... # default llm/embedder endpoint (configuration.md)inseam index ~/Documents # index a directoryinseam query "that thing" # ranked results with summariesinseam status # store stats, embedding infoinseam agent "when did I ...?" # a live LLM searching for youNo API key? The node still starts, tells you which parts are waiting on one, and everything else works. For a fully offline node, switch the embedder to hashed in composition.toml — configuration.md has the exact file.
Self-modify
Section titled “Self-modify”A node’s behavior is its composition: which plugins run, with what config (configuration.md). Changing the node means adding or changing plugins, in this preferred order:
- Loaded plugins — the default, and the right choice for AI-written plugins. These are sandboxed WASM components mounted while the node runs, limited to exactly what their manifest asks for (plugins/loaded.md). A plugin an agent wrote minutes ago can be mounted safely, because the sandbox — not the author — decides what it can touch. Install community plugins from the registry (
inseam plugin install), or write your own: the agent skill atskills/inseam-loaded-plugin/SKILL.md(docs mirror) walks through the whole process, andinseam plugin checkis the gate. This needs no Rust: the contract is a language-neutral WIT interface (plugins/transform-plugin-wit.md), so any language that compiles to a WASM component works — the skill’s walkthrough uses Rust, but componentize-py (Python), ComponentizeJS/jco (JavaScript), and TinyGo (Go) produce the same kind of artifact, and the prebuilt CLI validates all of them the same way. - Linked plugins / a custom build — trusted Rust compiled into the binary, for first-party-grade or private plugins (plugins/linked.md, plugins/distributions.md).
- Core changes — edit the kernel or the seam interfaces in the checkout (workspace-layout.md maps the repo,
design/holds the reasoning), thencargo install --path crates/inseam-clito update the running binary.
For agents: set up and self-modify, start to finish
Section titled “For agents: set up and self-modify, start to finish”Follow these verbatim from a fresh machine with Rust installed. No Rust and no permission to install it? Replace steps 1–2 with the curl one-liner from Just run it and, at step 6, write the plugin in a WASM-capable language the machine does have — everything else is identical:
git clone https://github.com/aiuitech/inseam && cd inseamcargo install --path crates/inseam-cli— the CLI is now on PATH and matches this source tree. Re-run this after any source change.inseam --help— the CLI documents itself; prefer it over guessing flags. Repo skills (skills/) cover what--helpcan’t (authoring contracts, conventions), not a substitute for it.- Configure: set
OPENROUTER_API_KEY, or write the offlinecomposition.tomlfrom configuration.md. Verify withinseam config --resolved. - Run:
inseam index <dir>, theninseam query "...".inseam pluginsshows every running plugin and its state if something isn’t working. - To write a new plugin, default to a loaded plugin — read
skills/inseam-loaded-plugin/SKILL.mdand follow it (write the golden checks first, build towasm32-wasip2, validate withinseam plugin check). Only reach for linked plugins or core edits when the transform interface genuinely can’t express the change. - Mount your plugin by adding its entry to
<data-dir>/composition.toml(the skill has the snippet), then re-runinseam index— only the sources your new plugin applies to get re-indexed.