{"id":51035458,"url":"https://github.com/byte5ai/omadia-plugin-starter","last_synced_at":"2026-06-22T05:30:33.760Z","repository":{"id":365065225,"uuid":"1257896667","full_name":"byte5ai/omadia-plugin-starter","owner":"byte5ai","description":"Fork-ready starter template for building omadia plugins and channels: one-command ZIP build for upload.","archived":false,"fork":false,"pushed_at":"2026-06-15T17:18:31.000Z","size":85,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-15T19:21:41.125Z","etag":null,"topics":["agentic-os","ai-agents","channel","omadia","plugin","plugin-development","sdk","starter-template","template","typescript"],"latest_commit_sha":null,"homepage":"https://omadia.ai","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/byte5ai.png","metadata":{"files":{"readme":"README.de.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-03T05:19:25.000Z","updated_at":"2026-06-15T17:18:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/byte5ai/omadia-plugin-starter","commit_stats":null,"previous_names":["byte5ai/omadia-plugin-starter"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/byte5ai/omadia-plugin-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byte5ai%2Fomadia-plugin-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byte5ai%2Fomadia-plugin-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byte5ai%2Fomadia-plugin-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byte5ai%2Fomadia-plugin-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/byte5ai","download_url":"https://codeload.github.com/byte5ai/omadia-plugin-starter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byte5ai%2Fomadia-plugin-starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34636427,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-os","ai-agents","channel","omadia","plugin","plugin-development","sdk","starter-template","template","typescript"],"created_at":"2026-06-22T05:30:31.723Z","updated_at":"2026-06-22T05:30:33.755Z","avatar_url":"https://github.com/byte5ai.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# omadia plugin starter\n\n### Bau dir eigene [omadia](https://omadia.ai)-Plugins und -Channels, und pack sie mit einem Befehl in eine hochladbare ZIP.\n\nEine fertige Vorlage zum Forken, mit zwei lauffähigen Beispielen und einem Build-Script, das deinen Code in genau die ZIP packt, die das omadia-Admin-UI annimmt. Forken, deine Logik einsetzen, ausliefern.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-black.svg)](./LICENSE)\n[![Built for omadia](https://img.shields.io/badge/built%20for-omadia-2496ED.svg)](https://github.com/byte5ai/omadia)\n[![TypeScript](https://img.shields.io/badge/TypeScript-3178C6.svg?logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org/)\n\n[**Haupt-Repo**](https://github.com/byte5ai/omadia) · [**Website**](https://omadia.ai) · [**Plugin-Hub**](https://hub.omadia.ai) · [**Schnellstart**](#schnellstart) · [**Doku**](#dokumentation)\n\n🇬🇧 This guide is also available [in English](./README.md).\n\n\u003c/div\u003e\n\n---\n\nomadia ist ein agentisches OS: Jeder Agent, jeder Channel und jede Integration ist ein **Plugin**, das der Host zur Laufzeit lädt, konfiguriert und sandboxed. Dieses Repo ist eine fertige Vorlage zum Forken, mit zwei lauffähigen Beispielen und einem Build-Script, das deinen Code in genau die ZIP packt, die das omadia-Admin-UI annimmt.\n\n---\n\n## Was du bauen kannst\n\n| Art | Was es ist | Einstieg | Beispiel |\n| --- | --- | --- | --- |\n| **Agent** | Eine Fähigkeit mit Tools, die der Orchestrator aufrufen kann. | `activate(ctx)` | [`examples/agent-plugin`](./examples/agent-plugin) |\n| **Channel** | Eine Oberfläche (Discord, Slack, ein Webhook), die Nutzer-Nachrichten rein- und Antworten rausroutet. | `activate(ctx, core)` | [`examples/channel`](./examples/channel) |\n| **Integration** | Ein Connector, der ein externes System als Tools/Services bereitstellt. | `activate(ctx)` | siehe Agent-Beispiel, gleiche Form |\n\nAlle drei teilen einen Vertrag: Du exportierst ein `async activate(...)`, das ein Handle mit `close()` zurückgibt. Der Unterschied liegt darin, was du in der `manifest.yaml` deklarierst und welche `ctx`-Accessoren du nutzt.\n\n---\n\n## Schnellstart\n\n```bash\n# Node 22 ist über .nvmrc gepinnt\nnvm use            # oder: Node \u003e= 20 installieren\n\nnpm install        # installiert die geteilte Toolchain (Workspaces)\n\n# Beispiel wählen, Upload-ZIP bauen:\nnpm run build:agent      # -\u003e examples/agent-plugin/out/acme-agent-hello-0.1.0.zip\nnpm run build:channel    # -\u003e examples/channel/out/acme-channel-webhook-0.1.0.zip\n\n# oder alles typechecken / bauen:\nnpm run typecheck\nnpm run build\n```\n\nDanach im omadia **Admin-UI -\u003e Store -\u003e Upload** die ZIP reinziehen.\n\n\u003e ℹ️ Zwei Wege, ein Plugin auszuliefern. Lade die ZIP im Admin-UI hoch, oder\n\u003e veröffentliche sie im **omadia-Hub** unter [hub.omadia.ai](https://hub.omadia.ai)\n\u003e und installiere sie von dort auf jedem Host. Die ZIP, die du hier baust, ist\n\u003e genau das, was beide annehmen.\n\n---\n\n## Wie das zusammenspielt\n\n```\ndein Code (src/plugin.ts)\n        |   esbuild-Bundle  (host-bereitgestellte Peers bleiben external)\n        v\n   dist/plugin.js  +  manifest.yaml  +  skills/  +  assets/\n        |   zip\n        v\n   out/\u003cid\u003e-\u003cversion\u003e.zip  --Upload--\u003e  omadia-Host\n                                          laedt dist/plugin.js\n                                          ruft activate(ctx[, core]) auf\n```\n\nDer Host validiert das Manifest, prüft die Permissions und ruft dein `activate` auf. Jeder externe Effekt (Secrets, Netzwerk, Dateisystem, Memory) kommt über `ctx` zu dir, beschränkt auf das, was dein Manifest deklariert.\n\n---\n\n## Repo-Aufbau\n\n```\nomadia-plugin-starter/\n├── README.md / README.de.md     \u003c- du bist hier\n├── docs/en/ · docs/de/          \u003c- vollständige Guides (zweisprachig)\n├── scripts/build-zip.mjs        \u003c- der esbuild-\u003ezip-Build (von den Beispielen geteilt)\n├── tsconfig.base.json           \u003c- geteilte Compiler-Konfig\n├── types/                       \u003c- lokale SDK-Typ-Stubs (offline kompilieren)\n│   ├── omadia-plugin-api.d.ts\n│   └── omadia-channel-sdk.d.ts\n└── examples/\n    ├── agent-plugin/            \u003c- @acme/agent-hello\n    └── channel/                 \u003c- @acme/channel-webhook\n```\n\n### Zu den SDK-Typ-Stubs\n\n`@omadia/plugin-api` und `@omadia/channel-sdk` werden **vom omadia-Host zur Laufzeit bereitgestellt**. Sie liegen nicht auf npm, du installierst und bundlest sie also nicht. Damit dein Plugin trotzdem offline typecheckt, liefert dieses Repo originalgetreue Typ-Stubs in [`types/`](./types). Der Build markiert die echten Pakete als `external`, der Host liefert dann die echten Implementierungen. Halte die Stubs zu der omadia-Version aktuell, die du anvisierst.\n\n---\n\n## Dokumentation\n\n| Guide | Deutsch | English |\n| --- | --- | --- |\n| Erste Schritte | [01](./docs/de/01-erste-schritte.md) | [01](./docs/en/01-getting-started.md) |\n| Agent-Plugin bauen | [02](./docs/de/02-agent-plugin-bauen.md) | [02](./docs/en/02-build-an-agent-plugin.md) |\n| Channel bauen | [03](./docs/de/03-channel-bauen.md) | [03](./docs/en/03-build-a-channel.md) |\n| Manifest \u0026 Packaging | [04](./docs/de/04-manifest-und-packaging.md) | [04](./docs/en/04-manifest-and-packaging.md) |\n\n---\n\n## Lizenz\n\n[MIT](./LICENSE). Fork es, ship es, verkauf es. Ersetz die `@acme/*`-Platzhalter und den `authors`-Block durch deine eigenen, bevor du veröffentlichst.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyte5ai%2Fomadia-plugin-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbyte5ai%2Fomadia-plugin-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyte5ai%2Fomadia-plugin-starter/lists"}