{
  "name": "looprig",
  "description": "An agent harness built as independent, stdlib-first Go modules: durable sessions, model access, confinement, human gates, and evaluation, for agents you run yourself.",
  "license": "Apache-2.0",
  "homepage": "https://looprig.com/",
  "contact": "mailto:crew@looprig.com",
  "apiVersion": "1",
  "useCases": [
    {
      "when": "You need to run an LLM agent loop inside a Go program and keep every step durable and replayable.",
      "reach": "Start from github.com/looprig/harness and the Harness guides under /docs/guides/harness."
    },
    {
      "when": "You need one Go interface over several model providers, with token accounting and context limits.",
      "reach": "Start from github.com/looprig/inference and the Inference guides under /docs/guides/inference."
    },
    {
      "when": "You need to confine what an agent may read, write, or dial before you let it touch a real machine.",
      "reach": "Start from github.com/looprig/sandbox and the Sandboxing guides under /docs/guides/sandboxing."
    },
    {
      "when": "You need a human to approve a tool call before it runs, and an audit record afterwards.",
      "reach": "Read the gates and classifiers guides under /docs/guides/harness and /docs/guides/tools."
    },
    {
      "when": "You need to score models or agent changes against fixed cases in CI rather than by impression.",
      "reach": "Start from github.com/looprig/eval and the Evals guides under /docs/guides/evals."
    },
    {
      "when": "You want a coding agent you can read, change, and self-host instead of a closed product.",
      "reach": "Read the Carbon product page at /docs/products/carbon."
    },
    {
      "when": "You need to drive a session over HTTP from a web or native client.",
      "reach": "Read the HTTP server guides under /docs/guides/harness; the route contract and error envelope are documented there."
    }
  ],
  "antiUseCases": [
    "looprig is a library, not a service: there is no hosted API, no account, and no API key. The OpenAPI document describes the HTTP surface that your own process serves when it embeds harness/pkg/serve.",
    "looprig does not host models. You supply provider credentials, and inference calls go from your process to the provider you configured.",
    "looprig is a Go module set. There is no published SDK for other languages; other languages integrate over the documented HTTP and protocol surfaces."
  ],
  "resources": [
    {
      "title": "Documentation",
      "href": "https://looprig.com/docs",
      "description": "Guides, runnable examples, product pages, and one page per public module. Every page has a raw Markdown twin at the same path with a .md suffix."
    },
    {
      "title": "Agent index",
      "href": "https://looprig.com/llms.txt",
      "description": "The compact machine-readable routing index: what looprig is for, when to reach for it, and links into the Markdown corpus. Start here before crawling."
    },
    {
      "title": "Agent index (JSON)",
      "href": "https://looprig.com/llms.json",
      "description": "The same routing information as llms.txt in a typed JSON document: use cases, boundaries, resources, and the conventions of this origin, ready to branch on."
    },
    {
      "title": "Complete corpus",
      "href": "https://looprig.com/llms-full.txt",
      "description": "Every published documentation page concatenated into one Markdown artifact, for tools that cannot fetch pages progressively."
    },
    {
      "title": "OpenAPI specification",
      "href": "https://looprig.com/openapi.json",
      "description": "OpenAPI 3.1 description of this website's content API: the agent index, Markdown twins, search index, sitemap, and feed, with the negotiation, error, and rate-limit conventions that apply to them."
    },
    {
      "title": "Source",
      "href": "https://github.com/looprig",
      "description": "Every module is an independent Apache License 2.0 Go repository with its own tests, tags, and README. Released versions are immutable Git tags."
    },
    {
      "title": "Quickstart",
      "href": "https://looprig.com/docs/start/first-run",
      "description": "Install the Go modules, configure a model, and run a first session end to end without cloning the development workspace."
    },
    {
      "title": "Journal",
      "href": "https://looprig.com/blog",
      "description": "Engineering notes on the runtime, appended in order and never rewritten. Useful for understanding why a boundary is where it is."
    },
    {
      "title": "Contact",
      "href": "https://looprig.com/contact",
      "description": "How to reach the maintainers, report a security issue, or ask a question that the documentation does not answer."
    }
  ],
  "conventions": {
    "markdown": "Send `Accept: text/markdown` to any page URL for its Markdown representation, or append `.md` to the path. Responses carry `Vary: Accept, Accept-Encoding`.",
    "errors": "A 4xx or 5xx response carries {\"error\":{\"code\",\"message\",\"retryable\",\"documentation\"}} to a client that prefers JSON, and Markdown with recovery links to one that prefers Markdown. Match on `code`.",
    "rateLimit": "250 requests per minute per client address. Every response reports `RateLimit` and `RateLimit-Policy` in the RFC 9331 field format; a 429 carries `Retry-After` in seconds.",
    "authentication": "None. Every operation is a public, read-only GET; there is no key to obtain and no write endpoint."
  }
}
