{"_id":"@bluedot-it/odinn","_rev":"7-ca7c9bf6a0c31eb9e5f9fbcd9ba57d2e","name":"@bluedot-it/odinn","dist-tags":{"next":"1.1.1-rc.0","latest":"1.2.0"},"versions":{"1.0.0":{"name":"@bluedot-it/odinn","version":"1.0.0","license":"MIT","_id":"@bluedot-it/odinn@1.0.0","maintainers":[{"name":"jason-allen-oneal","email":"jason.allen.oneal@gmail.com"}],"homepage":"https://github.com/BlueDot-IT/Odinn-Forge#readme","bugs":{"url":"https://github.com/BlueDot-IT/Odinn-Forge/issues"},"bin":{"odinn":"bin/odinn.js","odinn-gateway":"bin/odinn-gateway.js"},"dist":{"shasum":"fd62e5175b197691196904873302e6b0ea2468c6","tarball":"https://registry.npmjs.org/@bluedot-it/odinn/-/odinn-1.0.0.tgz","fileCount":34,"integrity":"sha512-AzVgUv4i3OMAIz1b+6OEJFVOET7ijSHqxSRpQE3sS4t2g/x1Eg/oBhkujTQprNzYsNntOgmK6tlSrQufwJn63g==","signatures":[{"sig":"MEYCIQD2Y12lWfPNE6HukKy50EJkPCV7s8VzrC/TJxNB6g0fHQIhALHCsH+6kYGSlhmvPaH7Xa3evOA23A42eiZKeUuFjv7X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7379378},"type":"module","engines":{"node":">=24.0.0"},"gitHead":"51264dd9ddb1bf371ffeb08689cb48031ec4fd8b","private":false,"_npmUser":{"name":"jason-allen-oneal","email":"jason.allen.oneal@gmail.com"},"repository":{"url":"git+https://github.com/BlueDot-IT/Odinn-Forge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local AI assistant with memory, audited tools, and user-controlled actions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"playwright-core":"1.61.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/odinn_1.0.0_1785126358150_0.8460097664640305","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-rc.2":{"name":"@bluedot-it/odinn","version":"1.1.0-rc.2","license":"MIT","_id":"@bluedot-it/odinn@1.1.0-rc.2","maintainers":[{"name":"jason-allen-oneal","email":"jason.allen.oneal@gmail.com"}],"homepage":"https://github.com/BlueDot-IT/Odinn-Forge#readme","bugs":{"url":"https://github.com/BlueDot-IT/Odinn-Forge/issues"},"bin":{"odinn":"bin/odinn.js","odinn-gateway":"bin/odinn-gateway.js"},"dist":{"shasum":"9691c68dc12c308abc87e381725210a129c6fefd","tarball":"https://registry.npmjs.org/@bluedot-it/odinn/-/odinn-1.1.0-rc.2.tgz","fileCount":34,"integrity":"sha512-VWjuAE1glWKC5xsw5CBnkAfguCv6bymMce2UGlgtHu0ZbqJ3JoktJA5e+hdH7gTQ4IQBu9hHcsv7POIcGISOTw==","signatures":[{"sig":"MEUCIQC4xBQIkmwLY3MFP1xa2kGfsSVBtPw3yfLoCotEaK/eIwIgab2Xy8TuOYIQ73EbsgsstnO60gyDi8dK5ym9aZzYdwg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bluedot-it%2fodinn@1.1.0-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70600469},"type":"module","engines":{"node":">=24.0.0"},"gitHead":"9256e23c1f78b3ab14b51ee72c0d2a4d0fdd769c","private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2a253422-0cd6-47c4-89f1-111d68dbccab"}},"repository":{"url":"git+https://github.com/BlueDot-IT/Odinn-Forge.git","type":"git"},"_npmVersion":"11.16.0","description":"Local AI assistant with memory, audited tools, and user-controlled actions","directories":{},"_nodeVersion":"24.18.0","dependencies":{"playwright-core":"1.61.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/odinn_1.1.0-rc.2_1786673827477_0.6386651961986687","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-rc.4":{"name":"@bluedot-it/odinn","version":"1.1.0-rc.4","license":"MIT","_id":"@bluedot-it/odinn@1.1.0-rc.4","maintainers":[{"name":"jason-allen-oneal","email":"jason.allen.oneal@gmail.com"}],"homepage":"https://github.com/BlueDot-IT/Odinn-Forge#readme","bugs":{"url":"https://github.com/BlueDot-IT/Odinn-Forge/issues"},"bin":{"odinn":"bin/odinn.js","odinn-gateway":"bin/odinn-gateway.js"},"dist":{"shasum":"d217267096818ef153720a42f6689c76f4bb4c65","tarball":"https://registry.npmjs.org/@bluedot-it/odinn/-/odinn-1.1.0-rc.4.tgz","fileCount":38,"integrity":"sha512-eRJnz6wrFtKe9dsnA0cuLFh1uk0ucBQa7l5QIrHolCXFAh98+qQOaYP+Xbggq9H8PJhYJ9HzTn7gnmAljYHCuQ==","signatures":[{"sig":"MEYCIQCNMGTKe6vlsujcRJ4FG/+aDWiTJAvZ10jdJvzDeaIySQIhAJyOLS/pHVAeo+J7AYt4zF6yDCKkYJJmNCn6zeWStqgY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bluedot-it%2fodinn@1.1.0-rc.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70565244},"type":"module","engines":{"node":">=24.0.0"},"gitHead":"d87f4088201b8649ba51644f1dbe8927a86a372a","private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2a253422-0cd6-47c4-89f1-111d68dbccab"}},"repository":{"url":"git+https://github.com/BlueDot-IT/Odinn-Forge.git","type":"git"},"_npmVersion":"11.17.0","description":"Local AI assistant with memory, audited tools, and user-controlled actions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"playwright-core":"1.61.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/odinn_1.1.0-rc.4_1787083795613_0.8652940064971772","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bluedot-it/odinn","version":"1.1.0","license":"MIT","_id":"@bluedot-it/odinn@1.1.0","maintainers":[{"name":"jason-allen-oneal","email":"jason.allen.oneal@gmail.com"}],"homepage":"https://github.com/BlueDot-IT/Odinn-Forge#readme","bugs":{"url":"https://github.com/BlueDot-IT/Odinn-Forge/issues"},"bin":{"odinn":"bin/odinn.js","odinn-gateway":"bin/odinn-gateway.js"},"dist":{"shasum":"7aa4f4a3960b7c1818fd01c3544ef7a8a071cd16","tarball":"https://registry.npmjs.org/@bluedot-it/odinn/-/odinn-1.1.0.tgz","fileCount":38,"integrity":"sha512-IM7/t2X39qs9Qbul06Fv0DDtPp8xbaAywF3O+PRn4qPV61MECLbl0juLQSicIRJ6MJH4Lq/+zeCm2peq9etvQw==","signatures":[{"sig":"MEYCIQDAjyCwVz80x1EBwp8pYNzEBj4VkeHxULAVGH9pyEmE7AIhAPBlYZoCt0y9S6OnOyrJL10jtOZaDaJLOd2FP9SvOSu4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bluedot-it%2fodinn@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70567423},"type":"module","engines":{"node":">=24.0.0"},"gitHead":"a208e07102af0dfe1d1408873bb96d24a19343bb","private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2a253422-0cd6-47c4-89f1-111d68dbccab"}},"repository":{"url":"git+https://github.com/BlueDot-IT/Odinn-Forge.git","type":"git"},"_npmVersion":"11.17.0","description":"Local AI assistant with memory, audited tools, and user-controlled actions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"playwright-core":"1.61.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/odinn_1.1.0_1787253736718_0.9864391911082304","host":"s3://npm-registry-packages-npm-production"}},"1.1.1-rc.0":{"name":"@bluedot-it/odinn","version":"1.1.1-rc.0","license":"MIT","_id":"@bluedot-it/odinn@1.1.1-rc.0","maintainers":[{"name":"jason-allen-oneal","email":"jason.allen.oneal@gmail.com"}],"homepage":"https://github.com/BlueDot-IT/Odinn-Forge#readme","bugs":{"url":"https://github.com/BlueDot-IT/Odinn-Forge/issues"},"bin":{"odinn":"bin/odinn.js","odinn-gateway":"bin/odinn-gateway.js"},"dist":{"shasum":"2244deb83c1d12fd9be61424f043385364f54192","tarball":"https://registry.npmjs.org/@bluedot-it/odinn/-/odinn-1.1.1-rc.0.tgz","fileCount":38,"integrity":"sha512-UZpyrXXIVXmI0+jpvzs4kDDQXcbyuymmDcurx7cOc3nGOvLQGdlAFce9pkSqFiD0CVRjUqcvYn56R9G7RjUUlQ==","signatures":[{"sig":"MEYCIQCA/f4AP10bymYrosn5YUsgkuT+vTB/Z4nie+Ak/myBmgIhAOZmkkjTBVOGQGwUahgTJzGaKxw3tk8aCWznoH4v0rAW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bluedot-it%2fodinn@1.1.1-rc.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70606344},"type":"module","engines":{"node":">=24.0.0"},"gitHead":"472ec9cf3b92b969b042d09f896789adc9da47d6","private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2a253422-0cd6-47c4-89f1-111d68dbccab"}},"repository":{"url":"git+https://github.com/BlueDot-IT/Odinn-Forge.git","type":"git"},"_npmVersion":"11.17.0","description":"Local AI assistant with memory, audited tools, and user-controlled actions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"playwright-core":"1.61.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/odinn_1.1.1-rc.0_1787668132674_0.6598914614096894","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bluedot-it/odinn","version":"1.1.1","license":"MIT","_id":"@bluedot-it/odinn@1.1.1","maintainers":[{"name":"jason-allen-oneal","email":"jason.allen.oneal@gmail.com"}],"homepage":"https://github.com/BlueDot-IT/Odinn-Forge#readme","bugs":{"url":"https://github.com/BlueDot-IT/Odinn-Forge/issues"},"bin":{"odinn":"bin/odinn.js","odinn-gateway":"bin/odinn-gateway.js"},"dist":{"shasum":"3f894e75557c8e275dde7d9ed56a86bcdc92dd65","tarball":"https://registry.npmjs.org/@bluedot-it/odinn/-/odinn-1.1.1.tgz","fileCount":38,"integrity":"sha512-Xr5nEdujxtHicljTsTi8U2hTpOXkT32DeLetwTQhHMmzLvBQP1b9Z79hMmCq3+o2uN4YmF3Ykp+7q2HqlfVyuw==","signatures":[{"sig":"MEUCIG5gQQpaQobmjsIhTS5EW1e6MCMKckpOsnlqe+h6N1gAAiEA1MocYeoquhJx7y9MpzfcpEX43WQT9AEwxf7W08zNIQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bluedot-it%2fodinn@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70606596},"type":"module","engines":{"node":">=24.0.0"},"gitHead":"1aaa7ad43107a68bbb9755bcc489aa28ad4a39bb","private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2a253422-0cd6-47c4-89f1-111d68dbccab"}},"repository":{"url":"git+https://github.com/BlueDot-IT/Odinn-Forge.git","type":"git"},"_npmVersion":"11.17.0","description":"Local AI assistant with memory, audited tools, and user-controlled actions","directories":{},"_nodeVersion":"24.19.0","dependencies":{"playwright-core":"1.61.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/odinn_1.1.1_1787684099904_0.7164161986661441","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"_id":"@bluedot-it/odinn@1.2.0","bin":{"odinn":"bin/odinn.js","odinn-gateway":"bin/odinn-gateway.js"},"bugs":{"url":"https://github.com/BlueDot-IT/Odinn-Forge/issues"},"dist":{"shasum":"7d56282b778bf599c439513bb3162e07a2458f9a","tarball":"https://registry.npmjs.org/@bluedot-it/odinn/-/odinn-1.2.0.tgz","fileCount":38,"integrity":"sha512-KCfChwNqiNzkKjHZ0Aa5Qec6TH32k0TM1m67m5FDf178ckHUhqLzZCOT1h7eIYHDAjB9UQR3ItygB0zCA0V6Rg==","signatures":[{"sig":"MEYCIQD0usiDlopZx8tEiswRiNKKyTxzMTyiRW4A6MXWnSblHwIhAIEc2CvNqNks6mfSD3XOYU3SRQOQ+u6CIcDAdHM+9V8W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID7ddHIn6FZAAIH6mBJRa86bpgINJDVKqaspJPer5E9MAiEAuaif7hlT9rOgoyXz4W/q9mg8I7o2WJCV4cRy2oICcwc="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bluedot-it%2fodinn@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":73837391},"name":"@bluedot-it/odinn","type":"module","engines":{"node":">=24.0.0"},"gitHead":"833c398c7896f6d754f0a6f632d0308b2573f4db","license":"MIT","private":false,"version":"1.2.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2a253422-0cd6-47c4-89f1-111d68dbccab"}},"homepage":"https://github.com/BlueDot-IT/Odinn-Forge#readme","repository":{"url":"git+https://github.com/BlueDot-IT/Odinn-Forge.git","type":"git"},"_npmVersion":"11.17.0","description":"Local AI assistant with memory, audited tools, and user-controlled actions","directories":{},"maintainers":[{"name":"jason-allen-oneal","email":"jason.allen.oneal@gmail.com"}],"_nodeVersion":"24.19.0","dependencies":{"playwright-core":"1.62.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/odinn_1.2.0_1788646283520_0.02358271127697953"}}},"time":{"created":"2026-07-27T04:25:58.011Z","modified":"2026-09-05T22:11:24.172Z","1.0.0":"2026-07-27T04:25:58.390Z","1.1.0-rc.2":"2026-08-14T02:17:07.828Z","1.1.0-rc.4":"2026-08-18T20:09:55.975Z","1.1.0":"2026-08-20T19:22:17.164Z","1.1.1-rc.0":"2026-08-25T14:28:53.005Z","1.1.1":"2026-08-25T18:55:00.256Z","1.2.0":"2026-09-05T22:11:23.811Z"},"bugs":{"url":"https://github.com/BlueDot-IT/Odinn-Forge/issues"},"license":"MIT","homepage":"https://github.com/BlueDot-IT/Odinn-Forge#readme","repository":{"url":"git+https://github.com/BlueDot-IT/Odinn-Forge.git","type":"git"},"description":"Local AI assistant with memory, audited tools, and user-controlled actions","maintainers":[{"name":"jason-allen-oneal","email":"jason.allen.oneal@gmail.com"}],"readme":"# Ódinn Forge\n\n![Ódinn Forge — your AI assistant, on your computer](docs/odinn-header.png)\n\n<p align=\"center\">\n  <a href=\"https://github.com/BlueDot-IT/Odinn-Forge/releases/latest\"><img alt=\"Latest release\" src=\"https://img.shields.io/github/v/release/BlueDot-IT/Odinn-Forge\"></a>\n  <a href=\"https://www.npmjs.com/package/@bluedot-it/odinn\"><img alt=\"npm version\" src=\"https://img.shields.io/npm/v/@bluedot-it/odinn\"></a>\n  <a href=\"https://github.com/BlueDot-IT/Odinn-Forge/actions/workflows/ci.yml\"><img alt=\"CI\" src=\"https://github.com/BlueDot-IT/Odinn-Forge/actions/workflows/ci.yml/badge.svg?branch=main\"></a>\n  <a href=\"https://github.com/BlueDot-IT/Odinn-Forge/actions/workflows/security.yml\"><img alt=\"Security\" src=\"https://github.com/BlueDot-IT/Odinn-Forge/actions/workflows/security.yml/badge.svg?branch=main\"></a>\n  <a href=\"https://www.bestpractices.dev/projects/13830\"><img alt=\"OpenSSF Best Practices\" src=\"https://www.bestpractices.dev/projects/13830/badge\"></a>\n  <a href=\"https://github.com/BlueDot-IT/Odinn-Forge/actions/workflows/package-integrity.yml\"><img alt=\"Package Integrity\" src=\"https://github.com/BlueDot-IT/Odinn-Forge/actions/workflows/package-integrity.yml/badge.svg?branch=main\"></a>\n  <a href=\"LICENSE\"><img alt=\"MIT license\" src=\"https://img.shields.io/github/license/BlueDot-IT/Odinn-Forge\"></a>\n</p>\n\n> **Your AI assistant, on your computer, under your control.**\n\nÓdinn Forge is an AI assistant that runs on a computer you control. It can\nremember useful context, research the web, use approved tools, and help you\ncarry work across multiple conversations.\n\nIt is built for everyday users, business owners, and independent professionals\nwho want more than a chatbot—but do not want an AI quietly clicking buttons,\nchanging accounts, or hiding what it did.\n\nOdinn Forge v1 supports the local, single-user workflow described in the\n[v1 compatibility policy](docs/v1-compatibility.md). Core advanced services,\noptional plugin modules, third-party packages, and remote multi-user hosting\nhave separate support boundaries.\n\n## What can I use it for?\n\n### Everyday work\n\n- Research a topic and turn the results into a useful summary.\n- Keep separate conversations, saved details, and goals for different projects.\n- Remember preferences and project context you choose to save.\n- Draft plans, documents, checklists, and communications.\n- Use the web without mixing its browser activity into your personal browser\n  profile.\n- Review a clear history of tool use and important decisions.\n- Inspect workspace directories, metadata, text, literal matches, and diffs\n  through bounded read-only tools with sensitive-file filtering.\n\n### Small business owners and independent professionals\n\n- Research competitors, suppliers, products, or market changes.\n- Keep client and internal projects separated inside one workspace.\n- Preserve useful business context between work sessions.\n- Schedule repeatable tool-based tasks.\n- Choose the AI service that fits your budget and privacy needs.\n- Keep an activity trail so you can see what ran, when it ran, and whether it\n  succeeded.\n\nDiscord and Telegram are supported local single-user integration slices with\nenvironment-only credentials, explicit inbound policies, safe diagnostics,\ndurable session binding, and no-replay recovery. Their live services remain\nprovider-dependent. Slack, Microsoft Teams, WhatsApp Business, and the shared\nchannel plugin interface remain experimental; see\n[`docs/channels.md`](docs/channels.md).\n\nAn optional read-only Microsoft Graph slice can inspect one explicitly\nconfigured Microsoft 365 account's email and calendar data. It is disabled by\ndefault, local single-user only, fixed-origin, capability-gated, bounded, and\ncontent-free in durable evidence. It cannot send mail or mutate calendars; see\n[`docs/microsoft-graph-read.md`](docs/microsoft-graph-read.md).\n\nÓdinn is not a finished industry-specific business suite. It is a general\nassistant you can connect to the models and tools that make sense for your\nwork.\n\n## Why use Ódinn instead of a regular chatbot?\n\n### Your work stays organized\n\nÓdinn groups conversations, goals, memories, and activity by project. You can\nreturn later without rebuilding all the context from scratch.\n\n### You choose the AI\n\nUse OpenAI / ChatGPT, OpenRouter, a local model through Ollama, or another\ncompatible AI service. You are not locked into one model company.\n\nOpenAI, OpenRouter, and Ollama are tested as primary connections. Other listed\nservices may depend on shared compatibility support or on features controlled\nby that provider. See [AI provider support](docs/provider-support.md) for the\nplain-language labels shown during setup.\n\n### Important actions are visible\n\nReading a public webpage is different from clicking **Buy**, sending a form, or\nchanging an account. Ódinn treats those actions differently and asks for\napproval before browser actions that can change something outside your\ncomputer.\n\n### Memory is inspectable\n\nÓdinn can suggest useful details to remember, but you decide what to keep. You\ncan review, edit, scope, or forget saved memories instead of trusting a hidden\nprofile you cannot inspect.\n\n### There is a record of what happened\n\nTool runs, approvals, and important system events are recorded locally. This\nmakes it easier to understand failures, review past work, and verify that the\nassistant followed the expected path.\n\n## Quick start\n\n### What you need\n\n- Linux, macOS, or Windows\n- A supported x64 machine for the normal standalone download. Node.js is\n  embedded and verified; do not install it separately.\n- For arm64 or another unsupported standalone target, use the advanced generic\n  package with [Node.js 24 or newer](https://nodejs.org/).\n- An account with a supported AI provider, or a local AI model through Ollama\n\n### Install a release\n\nDownload the latest `standalone` package for Linux x64, macOS x64, or Windows\nx64 from\n[GitHub Releases](https://github.com/BlueDot-IT/Odinn-Forge/releases), then\nfollow the platform instructions in the [user guide](docs/user-guide.md).\nStandalone release packages contain the built application, runtime\ndependencies, and a verified Node.js runtime; normal installation does not\nrequire Node.js, pnpm, or a source checkout.\n\nAfter installation, run:\n\n```bash\nodinn onboard\n```\n\nSetup will help you:\n\n1. Choose an AI provider and model.\n2. Sign in or connect a local model.\n3. Review what the assistant is allowed to do.\n4. Test a real AI response before saving the setup.\n5. Open the local console in your browser.\n\nTo open Ódinn again later:\n\n```bash\nodinn start\n```\n\nTo check releases and protect local state:\n\n```bash\nodinn update check\nodinn state status\nodinn backup\n```\n\nOdinn checks an update before installing it, keeps the previous application\navailable when possible, and will not roll back if doing so could damage newer\nsaved data. Uninstall keeps your saved state unless you explicitly ask to\nremove it. See the\n[user guide](docs/user-guide.md#updates-backups-restore-and-uninstall).\n\nThe console normally opens at\n[http://127.0.0.1:18790/](http://127.0.0.1:18790/). That address points to your\nown computer, not a public website.\n\nAlready use OpenClaw or Hermes? Setup can detect compatible installations and\noffer to copy supported sign-in details or state. It does not change the\noriginal installation.\n\n### Run from source\n\nIf you are a developer or want to try the current repository checkout:\n\n```bash\ncorepack enable\npnpm install\npnpm check\npnpm odinn onboard\n```\n\nSee [Getting started](docs/getting-started.md) for local-model setup, scripted\ninstallation, headless systems, and troubleshooting.\n\n## Privacy in plain language\n\nÓdinn enables no product telemetry by default. Its settings, memories,\nconversations, browser profile, and activity records stay in its local state\nfolder by default. Operators may explicitly configure the Gateway's optional,\nfixed content-free operational telemetry with `ODINN_OTLP_ENDPOINT`; status and\ndiagnostics expose only bounded local counters and categorical state.\n\nLocal-first does **not** mean nothing ever leaves your computer:\n\n- If you use a cloud AI provider, that provider receives the prompts and\n  context needed to answer you.\n- If Ódinn visits a website, that website receives normal web traffic.\n- If you enable third-party extensions or tools, they may have their own data\n  practices.\n- A local model can keep AI requests on your machine, but web activity still\n  reaches the websites you ask Ódinn to visit.\n\nChoose providers and tools that are appropriate for the information you handle.\nDo not give any AI system secrets or sensitive client data unless you understand\nwhere that data will go.\n\n## Safety and control\n\nÓdinn is designed to make consequential choices explicit:\n\n- It uses a separate browser profile instead of silently taking cookies from\n  your everyday browser.\n- Browser clicks, typing, and keypresses require approval by default.\n- New agent, skill, and extension packages start disabled.\n- Setup changes are reviewed, tested, and backed up before replacing a working\n  configuration.\n- Built-in automatic improvements are limited to reversible reliability\n  settings. They cannot rewrite the application, disable safeguards, change\n  credentials, or grant themselves new permissions.\n\nYou can weaken some of these controls, but Ódinn makes that an explicit choice.\nRead [SECURITY.md](SECURITY.md) before enabling remote access, relaxing\napprovals, allowing private-network access, or installing third-party code.\n\n## Honest limits\n\n- It is not a safety-critical system and should not make medical, legal,\n  financial, or other high-stakes decisions for you.\n- Its worker processes help contain crashes; they are not a security sandbox\n  for hostile code.\n- It cannot guarantee that an action on an outside website can be undone.\n- AI responses can be wrong, and cloud services can be unavailable, rate\n  limited, or changed by their providers.\n- The normal local console is for one person on one computer. Do not expose it\n  directly to the public internet.\n- Multi-user hosting is available for experienced operators, but people who do\n  not trust one another should use separate operating-system accounts,\n  containers, or machines.\n\nThe [surface matrix](docs/surface-matrix.md) distinguishes stable v1\ninterfaces, internal implementation details, experimental interfaces,\nprovider-dependent behavior, platform-dependent behavior, and unsupported\nbehavior.\n\n## Advanced features\n\nÓdinn includes core advanced services for deeper control and inspection:\n\n- **Runemark — run verification** checks whether a run met specific acceptance\n  rules.\n- **Gatewatch — policy safety** previews capability intersection, commands,\n  file locations, and approval requirements without executing the operation.\n- **Norn Restore — restore points** saves selected local files and previews a\n  restore before applying it.\n- **Raven Route — model routing** chooses among configured models using\n  recorded reliability, speed, cost, policy, rollback, and verification\n  results.\n\nThe following user-facing features are optional plugin modules and remain\ndisabled until enabled individually:\n\n- **Rune Key — scoped temporary access** gives one narrowly defined permission\n  to one run.\n- **Saga Archive — portable run bundles** exports a redacted, verifiable copy\n  of a run.\n- **Worldtree Paths — scenario comparison** compares work in separate copies\n  of a workspace.\n\nThese tools improve visibility and recovery for local work. They do not make\noutside actions perfectly reversible, and copied workspaces are not security\nsandboxes.\n\nÓdinn also includes opt-in runtime foundations that remain experimental unless\nthe [surface matrix](docs/surface-matrix.md) says otherwise:\n\n- **Bounded agent-run graphs** can dispatch up to eight read-only child nodes,\n  with at most four concurrent, through the durable jobs boundary. Child\n  authority is intersected with the parent grants, and durable projections\n  retain digests rather than prompts or model output. See\n  [agent manifests and run graphs](docs/agent-run-graphs.md).\n- **Skills, MCP, durable workflows, event ingress, and project context** are\n  separately gated runtime foundations. They remain disabled by default or\n  require explicit operator activation and do not enlarge the stable local\n  single-user promise.\n- **Host-capability plugin seams** govern paired `computer.screen` and\n  provider-injected read-only email/calendar integrations. The current\n  foundation does not bundle ambient desktop access or desktop mutation. The\n  optional Microsoft Graph adapter supplies the first concrete read-only\n  email/calendar slice. See the\n  [plugin system notes](docs/architecture/plugin-system.md).\n- **Authenticated remote-node reads** expose only `node.status` and\n  `node.diagnostics` for exact operator-allowlisted HTTPS nodes. Model input\n  cannot choose routing or credentials, and durable evidence retains only\n  digests, counts, and fixed statuses. See\n  [remote-node reads](docs/remote-node-read.md).\n\nUse **Advanced** in the console or read the notes under\n[docs/features](docs/features/). Core placement does not make an advanced API\na stable public SDK; the compatibility policy remains authoritative. Existing\nCLI commands, configuration keys, routes, event names, and SDK exports retain\ntheir original technical identifiers for compatibility.\n\n## Useful commands\n\n```bash\nodinn status          # Check the current setup\nodinn onboard         # Set up, repair, or change the AI connection\nodinn start           # Open the local console\nodinn sessions        # List saved conversations\nodinn runs            # Show recent tool runs\nodinn audit verify    # Check the local activity record\nodinn doctor          # Create a safe diagnostic summary\n```\n\nAudit migration, cursor streaming, verification, archive, retention, and soak\nprocedures are documented in [Audit storage operations](docs/audit-storage.md).\n\n## Documentation\n\n- [Documentation hub](docs/README.md) — the complete navigation index for\n  guides, references, architecture notes, policies, and project records\n- [Latest release](https://github.com/BlueDot-IT/Odinn-Forge/releases/latest) —\n  download the current supported release\n- [v1 compatibility policy](docs/v1-compatibility.md) — the stable product\n  promise and its boundaries\n- [User guide](docs/user-guide.md) — installation, privacy, and bug reports\n- [Getting started](docs/getting-started.md) — setup and troubleshooting\n- [Operator console](docs/operator-console.md) — projects, tasks, memory, and\n  scheduled jobs\n- [Security guide](SECURITY.md) — safe operation and vulnerability reporting\n- [Capability boundaries](docs/surface-matrix.md) — what is tested,\n  experimental, provider-dependent, or unsupported\n- [Interface reference](docs/interface-reference.md) — CLI and authenticated\n  loopback gateway inputs and outputs\n- [Comparative evaluation](https://github.com/BlueDot-IT/agent-benchmarks) —\n  benchmark methodology, runtime and model comparisons, and performance reports\n- [Features index](docs/features/README.md) — core advanced services and\n  optional plugin modules\n- [Report a bug or request a feature](https://github.com/BlueDot-IT/Odinn-Forge/issues/new/choose)\n- [Contributing guide](CONTRIBUTING.md) — development setup, pull requests,\n  validation, and releases\n\nThe primary user-facing external interfaces are the documented CLI and\nauthenticated loopback gateway. The\n[interface reference](docs/interface-reference.md) describes their inputs and\noutputs. The [surface matrix](docs/surface-matrix.md) identifies stable,\nexperimental, provider-dependent, platform-dependent, internal, and unsupported\nsurfaces.\n\n## Benchmark snapshot\n\nThe external [BlueDot agent-benchmarks harness](https://github.com/BlueDot-IT/agent-benchmarks)\nchecks artifacts and deterministic assertions rather than treating a plausible\nfinal message as proof. The dated snapshot below is informational: it is not a\nCI gate, a release guarantee, or a model-only score.\n\n<!-- weekly-benchmark:start -->\n**2026-08-26 — weekly GitHub Actions comparison.** Seven deterministic cases ran five times per runtime with openai-oauth, `gpt-5.6-luna`, cloud deployment, runtime-default sampling, and the same bounded-filesystem-and-process policy.\n\n| Runtime | Verified | Failed | Verified rate | p50 | p95 |\n| --- | ---: | ---: | ---: | ---: | ---: |\n| Ódinn Forge `1.1.1` | 20/35 | 0 | 57.1% | 3.80s | 19.07s |\n| OpenClaw `OpenClaw 2026.7.1-2 (0790d9f)` | 23/35 | 12 | 65.7% | 26.75s | 45.01s |\n| Hermes Agent `Hermes Agent v0.19.0 (2026.7.20)` | 35/35 | 0 | 100% | 15.98s | 23.98s |\n\nÓdinn Forge's one-shot agent adapter covers **4/7 cases**: 20 supported trials execute and verify, while 15 process-dependent trials are unsupported. Its documented `process.exec` surface is separately approved, top-level durable `/jobs` work and is intentionally outside this adapter. Unsupported trials are not failures and remain in the denominator.\n\nHarness: [`8ad91f0b9e39`](https://github.com/BlueDot-IT/agent-benchmarks/commit/8ad91f0b9e396c88cf10e56687630539ce10bcd1). [GitHub Actions run](https://github.com/BlueDot-IT/Odinn-Forge/actions/runs/33011203479). Raw reports are retained as workflow artifacts.\n<!-- weekly-benchmark:end -->\n\nThe [current benchmark page](docs/benchmarks.md) contains the complete generated\nmatrix and provenance. A scheduled run replaces the marked snapshot only after\nall three runtime reports pass the publication validator.\n\n## For developers and contributors\n\nThe repository is a Node.js workspace:\n\n```text\napps/cli/              command-line interface and setup\napps/gateway/          local service and browser-based console\nadapters/channels/     messaging-network adapters and agent tool definitions\npackages/application/ transport-neutral contracts and migrated use cases\npackages/channels/    shared channel contracts and routing abstractions\npackages/kernel/       AI providers, memory, sessions, and tool execution\npackages/policy/       permissions and safety rules\npackages/protocol/     shared request and activity formats\npackages/runtime/      host composition for kernel, adapters, and workers\npackages/store-file/   local append-only storage\npackages/store-sqlite/ durable run and artifact storage\ntests/                 unit, integration, CLI, and platform coverage\n```\n\nCommon development commands:\n\n```bash\npnpm install\npnpm check\npnpm test\npnpm build\n```\n\nDetailed architecture, release validation, storage formats, remote hosting, API\nroutes, and extension contracts live under [docs/](docs/). Keeping those\ndetails there lets this README explain the product before exposing the\nmachinery underneath it.\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}