agentsclimarketplace

Acme cse

Skill ankraft/ACME-oneM2M-CSE/skills/acme-cse

An open source CSE Middleware for Education.

Install
npx -y skills add ankraft/ACME-oneM2M-CSE --skill acme-cse

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Answer questions about the ACME oneM2M CSE open source project — installation, configuration, runtime options, protocol bindings, plugins, scripting, and development. Use this skill whenever the user asks anything about ACME CSE, oneM2M, acmecse, acme.ini, CSE setup, or running/configuring the ACME middleware, even if the question seems simple. The skill provides structured fetch strategies and output templates to answer consistently and accurately from the live documentation.

The file declares its own license as BSD-3-Clause. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

13.4 KB, as published. Nobody here has run it

ACME oneM2M CSE Skill

Overview

The ACME CSE is an open source Python implementation of the oneM2M IoT standard, designed for education and small trials. It is installed via pip (pip install acmecse) or by cloning the GitHub repo. All documentation lives at https://acmecse.net (MkDocs / Material for MkDocs). The GitHub repo is https://github.com/ankraft/ACME-oneM2M-CSE.

Current release as of skill authoring: v2026.05. Always note if the user might be on a different version, and suggest checking the site for the latest.


Site Navigation Map

Use these URLs directly — do not guess or construct URLs.

Top-level entry points

SectionURL
Home / introhttps://acmecse.net/
What is ACME CSE?https://acmecse.net/home/ACME-CSE-introduction/
What is oneM2M?https://acmecse.net/home/oneM2M-introduction/
Supported featureshttps://acmecse.net/home/Supported/
Roadmaphttps://acmecse.net/home/Roadmap/
FAQhttps://acmecse.net/help/FAQ/

Setup & Running

PageURL
Installationhttps://acmecse.net/setup/Installation/
Runninghttps://acmecse.net/setup/Running/
Database Setuphttps://acmecse.net/setup/Database/
Certificates, Tokens & Authhttps://acmecse.net/setup/Certificates/

Configuration (all under setup/)

PageURL
Introduction (INI format, Zookeeper, env vars, interpolation)https://acmecse.net/setup/Configuration-introduction/
Basic Configurationhttps://acmecse.net/setup/Configuration-basic/
CSE General Settingshttps://acmecse.net/setup/Configuration-cse/
CSE Registrationshttps://acmecse.net/setup/Configuration-registrations/
Databaseshttps://acmecse.net/setup/Configuration-database/
Logginghttps://acmecse.net/setup/Configuration-logging/
Protocol Binding — CoAPhttps://acmecse.net/setup/Configuration-coap/
Protocol Binding — HTTPhttps://acmecse.net/setup/Configuration-http/
Protocol Binding — MQTThttps://acmecse.net/setup/Configuration-mqtt/
Protocol Binding — WebSockethttps://acmecse.net/setup/Configuration-ws/
Scriptinghttps://acmecse.net/setup/Configuration-scripting/
User Interfaceshttps://acmecse.net/setup/Configuration-uis/
oneM2M Resourceshttps://acmecse.net/setup/Configuration-resources/

Operation

PageURL
Infrastructure Diagramshttps://acmecse.net/setup/Operation-diagrams/
CSE Management APIhttps://acmecse.net/setup/Operation-management/
MQTT Brokerhttps://acmecse.net/setup/Operation-mqtt/
Upper Testerhttps://acmecse.net/setup/Operation-uppertester/

User Interfaces

PageURL
Console UIhttps://acmecse.net/setup/Console/
Text UIhttps://acmecse.net/setup/TextUI/
Web UIhttps://acmecse.net/setup/WebUI/

Development

PageURL
Architecture Overviewhttps://acmecse.net/development/Overview/
API Docs (pointer to api.acmecse.net)https://acmecse.net/development/APIDocs/
Event Systemhttps://acmecse.net/development/EventSystem/
Unit Testshttps://acmecse.net/development/UnitTests/
Start-Up Resourceshttps://acmecse.net/development/StartupResources/
Attribute Policieshttps://acmecse.net/development/AttributePolicies/
FlexContainer Policieshttps://acmecse.net/development/FlexContainerPolicies/
Resource Type Policieshttps://acmecse.net/development/ResourceTypePolicies/
Help File Formathttps://acmecse.net/development/HelpDocumentation/
ACMEScript Introductionhttps://acmecse.net/development/ACMEScript/
ACMEScript Loading & Runninghttps://acmecse.net/development/ACMEScript-loading/
ACMEScript Operationshttps://acmecse.net/development/ACMEScript-operations/
ACMEScript Functionshttps://acmecse.net/development/ACMEScript-functions/
ACMEScript Variableshttps://acmecse.net/development/ACMEScript-variables/
ACMEScript Meta Tagshttps://acmecse.net/development/ACMEScript-metatags/
ACMEScript Upper Tester Integrationhttps://acmecse.net/development/ACMEScript-uppertester/
Embedding ACME CSEhttps://acmecse.net/development/Embedding_ACME/
Debug Modehttps://acmecse.net/development/DebugMode/
Type Checkinghttps://acmecse.net/development/TypeChecking/
Third Party Componentshttps://acmecse.net/development/ThirdPartyLibraries/
Notification Server toolhttps://acmecse.net/development/tools/NotificationServer/
Onboarding Toolhttps://acmecse.net/development/tools/OnboardingTool/
Zookeeper Toolhttps://acmecse.net/development/tools/ZookeeperTool/
Hashing Credentialshttps://acmecse.net/development/tools/HashCredentials/

Internal API Documentation (api.acmecse.net)

The internal Python API is documented at https://api.acmecse.net (generated by pydoctor). Use web_fetch on specific class/module URLs for detailed API questions. Key entry points:

Module/PackageURL
Indexhttps://api.acmecse.net/index.html
Module indexhttps://api.acmecse.net/moduleIndex.html
Class indexhttps://api.acmecse.net/classIndex.html
acmecse.helpers (EventManager etc.)https://api.acmecse.net/acmecse.helpers.html
acmecse.runtime (PluginManager etc.)https://api.acmecse.net/acmecse.runtime.html
acmecse.pluginshttps://api.acmecse.net/acmecse.plugins.html
acmecse.resourceshttps://api.acmecse.net/acmecse.resources.html
acmecse.serviceshttps://api.acmecse.net/acmecse.services.html

Plugins & HowTos

PageURL
Plugins Overviewhttps://acmecse.net/plugins/PluginsOverview/
Plugin API & Lifecyclehttps://acmecse.net/plugins/PluginAPI/
Plugin Managerhttps://acmecse.net/plugins/PluginManager/
Service Pluginshttps://acmecse.net/plugins/PluginServicePlugins/
Developing an Example Pluginhttps://acmecse.net/plugins/PluginExample/
CSE Core Pluginshttps://acmecse.net/plugins/PluginCorePlugins/
HowTos Indexhttps://acmecse.net/howtos/HowTos/

Fetch Strategy by Question Type

Always use web_fetch to retrieve the relevant page before answering. Pick the most specific page; fetch multiple pages only if the question spans sections.

Question typePages to fetch
Install, first run, pip vs gitInstallation
Start/stop, CLI flagsRunning
Any acme.ini settingConfiguration-introduction + the relevant Configuration-* page
HTTP / HTTPS / TLS / CORS / WSGIConfiguration-http
MQTT setup or brokerConfiguration-mqtt + Operation-mqtt
CoAPConfiguration-coap
WebSocketConfiguration-ws
Database, TinyDB, PostgreSQLConfiguration-database + Database Setup
Logging, log levelsConfiguration-logging
Authentication, certificatesCertificates + Configuration-http (security section)
CSE-ID, CSE type, registrationsConfiguration-cse + Configuration-registrations
Scripting, ACMEScriptConfiguration-scripting + ACMEScript Introduction
Console / Text / Web UIConfiguration-uis + the relevant UI page
Plugin development, lifecycle, APIPlugins Overview + Plugin API & Lifecycle
Plugin manager, dependency injectionPlugin Manager
Service pluginsService Plugins
Plugin example / tutorialDeveloping an Example Plugin
Core/built-in pluginsCSE Core Plugins
Event system, event handlers, custom eventsEvent System
Internal Python API, class/module referencedevelopment/APIDocs + fetch specific page from api.acmecse.net
Architecture, internals, embeddingdevelopment/Overview + Embedding_ACME
oneM2M concepts, terminologyhome/oneM2M-introduction/ + home/Supported/
DockerHowTos (search for Docker howto)
Zookeeper configConfiguration-introduction + tools/ZookeeperTool
Environment variables / secretsConfiguration-introduction (env vars section)

Configuration Page Structure

Every Configuration-* page follows a consistent pattern. When parsing:

  1. Section header — INI section name in backticks, e.g. [http], [http.security]
  2. Settings table — columns: Setting | Description | Default
  3. Default values often reference ${basic.config:*} interpolation variables — fetch Configuration-basic to resolve them if needed.
  4. Cross-references to related pages are in "See also" callouts.

Key configuration facts to always include in answers

  • Config is INI format; only settings that differ from defaults need to be in acme.ini.
  • The default file is acme.ini.default (do not edit it); user file is acme.ini.
  • Settings interpolation uses ${section:key} syntax.
  • Environment variables can be used with the same ${} syntax.
  • A .env file in the base directory (or parents) is auto-loaded.
  • Zookeeper is an alternative to file-based config for distributed setups.
  • Dot notation (section.key) is used for runtime access from ACMEScript.

Running / CLI Facts

Two invocation styles — always show both when relevant:

Installation typeCommand
pip packageacmecse
Manual / git clonepython3 -m acmecse

Key CLI flags (fetch Running page for the full table):

  • --config <file> — alternate config file
  • -dir <directory> — alternate base directory
  • --db-reset — wipe database on start
  • --headless — no console UI, minimal output
  • --http / --https — override TLS setting
  • --http-wsgi — enable WSGI server
  • --log-level — override log level
  • --textui — start with Text UI
  • @argsfile.txt — read arguments from a file

Stop the CSE: press Q (uppercase) or Ctrl-C once. Warn the user that double Ctrl-C can cause data corruption.


Output Templates

Template A — Installation / Setup Answer

## Installation

**Requirements:** Python 3.11 or newer (Python 3.13 recommended; 3.14 not yet tested).

**Quickstart (pip):**

python -m pip install acmecse acmecse


**Manual (git clone):**

git clone https://github.com/ankraft/ACME-oneM2M-CSE.git cd ACME-oneM2M-CSE python3 -m pip install -r requirements.txt python3 -m acmecse


On first run with no config file, an interactive onboarding wizard starts and
creates `acme.ini`. Reference: https://acmecse.net/setup/Installation/

Template B — Configuration Setting Answer

Always include:

  1. INI section (e.g. [http])
  2. Setting name and what it controls
  3. Default value
  4. Minimal snippet showing only the changed setting
  5. Link to the documentation page

Example format:

**Section:** `[http]`
**Setting:** `port`
**Default:** `8080` (from `${basic.config:httpPort}`)

To change the HTTP port to 9000, add to `acme.ini`:
```ini
[http]
port = 9000

Docs: https://acmecse.net/setup/Configuration-http/


### Template C — Troubleshooting / How-To Answer

1. State what the user is trying to achieve
2. Identify the relevant config section(s) and CLI flags
3. Provide a minimal working `acme.ini` snippet
4. Note any security warnings (the docs use Warning/Attention callouts — reproduce them)
5. Link to the docs page

---

## Important Domain Vocabulary

| Term | Meaning |
|---|---|
| CSE | Common Services Entity — the oneM2M server/middleware node |
| IN-CSE | Infrastructure Node CSE (cloud/backend) |
| MN-CSE | Middle Node CSE (gateway) |
| ASN-CSE | Application Service Node CSE (edge device) |
| AE | Application Entity — a client application |
| CSE-ID | Unique identifier for a CSE instance, e.g. `/id-in` |
| originator | The entity making a request (AE or CSE) |
| registrar CSE | A parent/upstream CSE that this CSE registers with |
| TinyDB | Default embedded JSON database (dev/small deployments) |
| WSGI | Production-grade HTTP server mode (waitress-based, no TLS) |
| ACMEScript | Built-in scripting language for automation and testing |
| Upper Tester | oneM2M TS-0019 testing interface (enable only for testing) |

---

## Security Warnings to Always Reproduce

If the user's question touches any of these, reproduce the warning verbatim:

- `enableManagementEndpoint = True` → **may expose sensitive info and risk total data loss**
- `enableStructureEndpoint = True` → **exposes potentially sensitive information**
- `enableUpperTesterEndpoint = True` → **may lead to total data loss**
- `allowPatchForDelete = True` → **non-standard, not part of oneM2M HTTP binding spec**
- `--db-reset` → **wipes the database on every start**
- Double Ctrl-C to stop → **may cause data corruption**
- `.env` file → **do not commit to version control**
- `acme.ini.default` → **do not edit; copy settings to `acme.ini` instead**

---

## Versioning Note

The docs reflect the current release. If the user mentions a specific version or
asks about changelog/roadmap items, fetch https://acmecse.net/home/Roadmap/ and
check the GitHub releases page at https://github.com/ankraft/ACME-oneM2M-CSE/releases.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.