Agent skill

Pp Restaurant365 Odata

by mvanhorn in mvanhorn/printing-press-library

Printing Press CLI for Restaurant365 OData. An agent skill from mvanhorn/printing-press-library.

Apache-2.0Auto-check: notes

Install Pp Restaurant365 Odata

skills CLI
$ npx skills add mvanhorn/printing-press-library --skill pp-restaurant365-odata -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mvanhorn/printing-press-library pp-restaurant365-odata --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-skills/pp-restaurant365-odata .claude/skills/pp-restaurant365-odata && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pp-restaurant365-odata
GitHub stars
2.1k
Token cost
~3.4k tokens
SKILL.md length
1,271 words
Files
1
Skills in repo
506
Repo updated
First seen
Licence
Apache-2.0

At a glance

Printing Press CLI for Restaurant365 OData. An agent skill from mvanhorn/printing-press-library.

  • Works in 3 steps: Install via the Printing Press… → Verify: restaurant365-odata-pp-cli… → Ensure the reported install directory is…
  • SKILL.md covers Prerequisites: Install the CLI, When Not to Use This CLI, Command Reference and Auth Setup, plus 9 more sections
  • Calls go, claude and npx; reaches odata.restaurant365.net; needs RESTAURANT365_ODATA_PASSWORD and R365_ODATA_PASSWORD

What it does

Pp Restaurant365 Odata is an agent skill from mvanhorn/printing-press-library. Printing Press CLI for Restaurant365 OData. Read-only schema discovery, safe sampling, backfill planning, export, sync, and deletion-tombstone checks for documented Restaurant365 OData reporting views.

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Official library of CLIs generated by the CLI Printing Press. Endorsed, tested, and community-contributed. The licence is Apache-2.0.

Example prompts

  • “/pp-restaurant365-odata”

Requirements

  • Node.js
  • Pre-approved tools (allowed-tools): Read, Bash

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Install via the Printing Press installer. It defaults binaries to $HOME/.local/bin on macOS/Linux and…
  2. Verify: restaurant365-odata-pp-cli --version
  3. Ensure the reported install directory is on $PATH for the agent/runtime that will invoke this skill.

What it can do on your machine

Read from SKILL.md and the folder at commit d9a1696. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • go
    • claude
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • odata.restaurant365.net

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • RESTAURANT365_ODATA_PASSWORD
    • R365_ODATA_PASSWORD

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Pp Restaurant365 Odata loads about 3.4k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 1,271 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~56
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Bash

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mvanhorn/printing-press-library at commit d9a1696, republished under its Apache-2.0 licence (© mvanhorn). 1,271 words, ~3,359 tokens.

Download SKILL.mdSave it as .claude/skills/pp-restaurant365-odata/SKILL.md (or your agent's skills folder).
name
pp-restaurant365-odata
description
Printing Press CLI for Restaurant365 OData. Read-only schema discovery, safe sampling, backfill planning, export, sync, and deletion-tombstone checks for documented Restaurant365 OData reporting views.
allowed-tools
Read, Bash
author
Dhilip Subramanian
license
Apache-2.0
argument-hint
<command> [args] | install cli|mcp
<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/commerce/restaurant365-odata/SKILL.md,
     regenerated post-merge by tools/generate-skills/. Hand-edits here are
     silently overwritten on the next regen. Edit the library/ source instead.
     See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->

Restaurant365 OData — Printing Press CLI

Prerequisites: Install the CLI

This skill drives the restaurant365-odata-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:

  1. Install via the Printing Press installer. It defaults binaries to $HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:
    bash
    npx -y @mvanhorn/printing-press-library install restaurant365-odata --cli-only
  2. Verify: restaurant365-odata-pp-cli --version
  3. Ensure the reported install directory is on $PATH for the agent/runtime that will invoke this skill.

If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.6 or newer):

bash
go install github.com/mvanhorn/printing-press-library/library/commerce/restaurant365-odata/cmd/restaurant365-odata-pp-cli@latest

If --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.

When Not to Use This CLI

Do not activate this CLI for requests that require creating, updating, deleting, publishing, commenting, upvoting, inviting, ordering, sending messages, booking, purchasing, or changing remote state. This printed CLI exposes read-only commands for inspection, export, sync, and analysis.

Command Reference

list-views — List documented Restaurant365 OData views

  • restaurant365-odata-pp-cli list-views --agent — Returns view names, resource names, field counts, date fields, rowVersion support, and suggested sync pattern. Fetches $metadata only.

describe-view — Describe one Restaurant365 OData view

  • restaurant365-odata-pp-cli describe-view Location --agent — Returns field names and OData types from $metadata. Does not fetch rows.

sample — Safely sample one Restaurant365 OData view

  • restaurant365-odata-pp-cli sample --view Location --limit 5 --agent — Returns row count and columns only. Values are redacted by default.
  • restaurant365-odata-pp-cli sample --view Location --limit 5 --include-values --agent — Includes row values only when explicitly requested by the user.

backfill-plan — Build a request plan without fetching rows

  • restaurant365-odata-pp-cli backfill-plan --view SalesDetail --from 2026-05-01 --to 2026-06-15 --agent — Splits date-backed views into bounded DateTimeOffset windows.
  • restaurant365-odata-pp-cli backfill-plan --view Transaction --watermark 0 --agent — Builds a rowVersion incremental filter.

deleted-records — Inspect EntityDeleted tombstones

  • restaurant365-odata-pp-cli deleted-records --entity TransactionDetail --since-row-version 0 --limit 5 --agent — Returns counts by entity and redacts values by default.

export — Export a bounded view slice

  • restaurant365-odata-pp-cli export --view SalesDetail --from 2026-05-01 --to 2026-05-01 --format jsonl --output sales-detail.jsonl — Writes one date-window slice to JSONL.

company — Manage company

  • restaurant365-odata-pp-cli company — Returns Company reporting rows from Restaurant365 OData.

employee — Manage employee

  • restaurant365-odata-pp-cli employee — Returns Employee reporting rows from Restaurant365 OData.

entity-deleted — Manage entity deleted

  • restaurant365-odata-pp-cli entity-deleted — Returns deletion tombstone rows from Restaurant365 OData.

gl-account — Manage gl account

  • restaurant365-odata-pp-cli gl-account — Returns GlAccount reporting rows from Restaurant365 OData.

glaccount — Manage glaccount

  • restaurant365-odata-pp-cli glaccount — Returns GLAccount reporting rows from Restaurant365 OData.

item — Manage item

  • restaurant365-odata-pp-cli item — Returns Item reporting rows from Restaurant365 OData.

job-title — Manage job title

  • restaurant365-odata-pp-cli job-title — Returns JobTitle reporting rows from Restaurant365 OData.

labor-detail — Manage labor detail

  • restaurant365-odata-pp-cli labor-detail — Returns LaborDetail reporting rows from Restaurant365 OData.

location — Manage location

  • restaurant365-odata-pp-cli location — Returns Location reporting rows from Restaurant365 OData.

metadata — Manage metadata

  • restaurant365-odata-pp-cli metadata — Returns the service metadata document describing available Restaurant365 OData views and fields.

payroll-summary — Manage payroll summary

  • restaurant365-odata-pp-cli payroll-summary — Returns PayrollSummary reporting rows from Restaurant365 OData.

posemployee — Manage posemployee

  • restaurant365-odata-pp-cli posemployee — Returns POSEmployee reporting rows from Restaurant365 OData.

sales-detail — Manage sales detail

  • restaurant365-odata-pp-cli sales-detail — Returns SalesDetail reporting rows from Restaurant365 OData.

sales-employee — Manage sales employee

  • restaurant365-odata-pp-cli sales-employee — Returns SalesEmployee reporting rows from Restaurant365 OData.

sales-payment — Manage sales payment

  • restaurant365-odata-pp-cli sales-payment — Returns SalesPayment reporting rows from Restaurant365 OData.

transaction — Manage transaction

  • restaurant365-odata-pp-cli transaction — Returns Transaction reporting rows from Restaurant365 OData.

transaction-detail — Manage transaction detail

  • restaurant365-odata-pp-cli transaction-detail — Returns TransactionDetail reporting rows from Restaurant365 OData.
Finding the right command

When you know what you want to do but not which command does it, ask the CLI directly:

bash
restaurant365-odata-pp-cli which "<capability in your own words>"

which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match — fall back to --help or use a narrower query.

Auth Setup

Restaurant365 OData uses HTTP Basic authentication. Set the tenant username, commonly in domain\username form, and the matching password:

bash
export RESTAURANT365_ODATA_USERNAME="domain\\username"
export RESTAURANT365_ODATA_PASSWORD="<password>"
export RESTAURANT365_ODATA_BASE_URL="https://odata.restaurant365.net/api/v2/views"

Short aliases are also supported:

bash
export R365_ODATA_USERNAME="domain\\username"
export R365_ODATA_PASSWORD="<password>"
export R365_ODATA_BASE_URL="https://odata.restaurant365.net/api/v2/views"

Or persist credentials in ~/.config/restaurant365-odata-pp-cli/config.toml.

Run restaurant365-odata-pp-cli doctor to verify setup.

R365 Refresh Guidance

  • Use list-views or describe-view before fetching rows.
  • Use sample without --include-values for private tenants unless row-level output is explicitly needed.
  • Use backfill-plan before export or sync for sales, labor, and payroll date windows.
  • Use rowVersion watermarks for Transaction, TransactionDetail, and EntityDeleted.
  • Use deleted-records first in count mode when checking whether a pipeline needs delete handling.
  • Prefer full refreshes for small dimensions such as Location, Company, GLAccount, Item, and JobTitle.
  • Date-backed Restaurant365 filters should use DateTimeOffset boundaries such as date ge 2026-05-01T00:00:00Z and date le 2026-05-31T23:59:59Z, not bare dates.
Show full SKILL.md (544 more words)Show less

Agent Mode

Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.

  • Pipeable — JSON on stdout, errors on stderr

  • Filterable — --select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:

    bash
    restaurant365-odata-pp-cli company --agent --select id,name,status
  • Previewable — --dry-run shows the request without sending

  • Offline-friendly — sync/search commands can use the local SQLite store when available

  • Non-interactive — never prompts, every input is a flag

  • Read-only — do not use this CLI for create, update, delete, publish, comment, upvote, invite, order, send, or other mutating requests

Response envelope

Commands that read from the local store or the API wrap output in a provenance envelope:

json
{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal AND no machine-format flag (--json, --csv, --compact, --quiet, --plain, --select) is set — piped/agent consumers and explicit-format runs get pure JSON on stdout.

Agent Feedback

When you (or the agent) notice something off about this CLI, record it:

restaurant365-odata-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
restaurant365-odata-pp-cli feedback --stdin < notes.txt
restaurant365-odata-pp-cli feedback list --json --limit 10

Entries are stored locally at ~/.local/share/restaurant365-odata-pp-cli/feedback.jsonl. They are never POSTed unless RESTAURANT365_ODATA_FEEDBACK_ENDPOINT is set AND either --send is passed or RESTAURANT365_ODATA_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.

Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.

Output Delivery

Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:

SinkEffect
stdoutDefault; write to stdout only
file:<path>Atomically write output to <path> (tmp + rename)
webhook:<url>POST the output body to the URL (application/json or application/x-ndjson when --compact)

Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.

Named Profiles

A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.

restaurant365-odata-pp-cli profile save briefing --json
restaurant365-odata-pp-cli --profile briefing company
restaurant365-odata-pp-cli profile list --json
restaurant365-odata-pp-cli profile show briefing
restaurant365-odata-pp-cli profile delete briefing --yes

Explicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.

Exit Codes

CodeMeaning
0Success
2Usage error (wrong arguments)
3Resource not found
4Authentication required
5API error (upstream issue)
7Rate limited (wait and retry)
10Config error

Argument Parsing

Parse $ARGUMENTS:

  1. Empty, help, or --help → show restaurant365-odata-pp-cli --help output
  2. Starts with install → ends with mcp → MCP installation; otherwise → see Prerequisites above
  3. Anything else → Direct Use (execute as CLI command with --agent)

MCP Server Installation

  1. Install the MCP server:
    bash
    go install github.com/mvanhorn/printing-press-library/library/commerce/restaurant365-odata/cmd/restaurant365-odata-pp-mcp@latest
  2. Register with Claude Code:
    bash
    claude mcp add restaurant365-odata-pp-mcp -- restaurant365-odata-pp-mcp
  3. Verify: claude mcp list

Direct Use

  1. Check if installed: which restaurant365-odata-pp-cli If not found, offer to install (see Prerequisites at the top of this skill).
  2. Match the user query to the best command from the Unique Capabilities and Command Reference above.
  3. For private Restaurant365 tenants, choose schema or redacted commands first: list-views, describe-view, sample, backfill-plan, or deleted-records.
  4. Execute with the --agent flag:
    bash
    restaurant365-odata-pp-cli <command> [subcommand] [args] --agent
  5. If ambiguous, drill into subcommand help: restaurant365-odata-pp-cli <command> --help.

© mvanhorn, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in cli-skills/pp-restaurant365-odata of mvanhorn/printing-press-library.

Open the folder on GitHubat commit d9a1696

Compare with similar skills

Pp Restaurant365 Odata next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Pp Restaurant365 Odata compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pp Restaurant365 Odata this skillmvanhorn/printing-press-library2.1k—~3.4kAutomated safety check: NotesApache-2.0
CSS Printthedaviddias/Front-End-Checklist74k—~422Automated safety check: PassMIT
Brand Kit Print Collateralsickn33/agentic-awesome-skills47k1 repos~6.4kAutomated safety check: PassMIT
PrintfulAnil-matcha/awesome-muse-connectors1.3k—~628Automated safety check: PassMIT
Press And PRappeeky/aso-skills2.2k—~1.8kAutomated safety check: PassMIT
Press Media Relationsaaron-he-zhu/aaron-marketing-skills2.9k—~3.1kAutomated safety check: PassApache-2.0

Similar skills

  • CSS Print

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing stylesheets, component styles, and responsive behavior related to Include a print stylesheet.

    74k GitHub stars~422 tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed
  • Brand Kit Print Collateral

    sickn33/agentic-awesome-skills

    Print collateral spec: item, finished and trim size, bleed, colour mode, stock and GSM, finish, safe margin, print method, quantity and unit cost.

    47k GitHub starsUsed in 1 repo~6.4k tokens
    Marketing & SEOAuto-check passed
  • Printful

    Anil-matcha/awesome-muse-connectors

    Read Printful products and orders, create orders and mockups.

    1.3k GitHub stars~628 tokensUpdated 5 days ago
    Auto-check passed
  • Press And PR

    appeeky/aso-skills

    When the user wants to get press coverage, media mentions, or editorial features for their app — including writing press releases, pitching journalists, getting on "best apps" lists, or building an…

    2.2k GitHub stars~1.8k tokensUpdated 4 days ago
    Writing & ContentAuto-check passed
  • Press Media Relations

    aaron-he-zhu/aaron-marketing-skills

    A skill your agent uses when the user asks to "build a media list for my launch", "write a launch press release", or "pitch press under embargo"; produces a three-tier media and analyst list (Tier 1…

    2.9k GitHub stars~3.1k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Press Clip

    elvisun/newsjack

    Turn a live article URL into a press clip that looks like the real coverage — the publication's own logo, fonts, photos and layout kept intact, the ads and clutter removed, and (for a roundup) just…

    1.5k GitHub stars~3.5k tokensUpdated 4 days ago
    Documents & OfficeAuto-check passed

More from mvanhorn/printing-press-library

All 506 skills in this repo
  • Agent Desktop

    mvanhorn/printing-press-library

    Desktop automation through the real Rust agent-desktop CLI, published in Printing Press through a small bridge.

    2.1k GitHub stars~2.3k tokensUpdated today
    Auto-check: notes
  • Gfonts

    mvanhorn/printing-press-library

    Search, browse, and download Google Fonts from the terminal via the gfonts CLI.

    2.1k GitHub stars~574 tokensUpdated today
    Auto-check passed
  • Pp 1688

    mvanhorn/printing-press-library

    The free, offline Trigger phrases: search 1688 for, find a factory on 1688 for, wholesale price on 1688 for, who is the cheapest supplier on 1688 for, compare 1688 suppliers for, use 1688, run 1688.

    2.1k GitHub stars~3k tokensUpdated today
    Auto-check: notes
  • Pp Activity Japan

    mvanhorn/printing-press-library

    Inspect known Activity Japan plan IDs or URLs, compare dated prices and sessions, check language-sitemap coverage, and hand off to canonical booking pages.

    2.1k GitHub stars~2k tokensUpdated today
    Auto-check: notes
  • Pp Adminbyrequest

    mvanhorn/printing-press-library

    Every Admin By Request portal action, plus a local SQLite mirror of audit, events, inventory and requests for ad-hoc...

    2.1k GitHub stars~3.3k tokensUpdated today
    Auto-check: notes
  • Pp Agent Capture

    mvanhorn/printing-press-library

    macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal.

    2.1k GitHub stars~1.6k tokensUpdated today
    Auto-check: notes

Questions about Pp Restaurant365 Odata

What does Pp Restaurant365 Odata do?

Printing Press CLI for Restaurant365 OData. An agent skill from mvanhorn/printing-press-library. Pp Restaurant365 Odata is an agent skill from mvanhorn/printing-press-library. Printing Press CLI for Restaurant365 OData.

How do I install Pp Restaurant365 Odata in Claude Code?

Run `npx skills add mvanhorn/printing-press-library --skill pp-restaurant365-odata -a claude-code`. Or copy the skill folder (cli-skills/pp-restaurant365-odata in mvanhorn/printing-press-library) into .claude/skills/pp-restaurant365-odata in your project. Claude Code loads it when a task matches its description.

How do I install Pp Restaurant365 Odata in Codex?

Run `npx skills add mvanhorn/printing-press-library --skill pp-restaurant365-odata -a codex`. Or copy the skill folder (cli-skills/pp-restaurant365-odata in mvanhorn/printing-press-library) into .agents/skills/pp-restaurant365-odata in your project. Codex loads it when a task matches its description.

Can I use Pp Restaurant365 Odata in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mvanhorn/printing-press-library --skill pp-restaurant365-odata -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pp-restaurant365-odata, .gemini/skills/pp-restaurant365-odata, .github/skills/pp-restaurant365-odata and .opencode/skills/pp-restaurant365-odata in your project.

What does Pp Restaurant365 Odata need to run?

Going by SKILL.md and its folder, Pp Restaurant365 Odata needs the command-line tools its instructions call (go, claude and npx) and credentials named RESTAURANT365_ODATA_PASSWORD and R365_ODATA_PASSWORD. Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Bash.

Does Pp Restaurant365 Odata access the network?

SKILL.md names 1 domain. In commands or code: odata.restaurant365.net; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Pp Restaurant365 Odata safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Pp Restaurant365 Odata use?

Pp Restaurant365 Odata is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Pp Restaurant365 Odata use?

About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Pp Restaurant365 Odata?

Skills that share tags, products or a category with Pp Restaurant365 Odata: CSS Print (thedaviddias/Front-End-Checklist, 74k stars), Brand Kit Print Collateral (sickn33/agentic-awesome-skills, 47k stars), Printful (Anil-matcha/awesome-muse-connectors, 1.3k stars) and Press And PR (appeeky/aso-skills, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pp Restaurant365 Odata?

mvanhorn (a GitHub user) maintains it in mvanhorn/printing-press-library, which has 2,056 GitHub stars. The repository holds 506 skills in this directory. The repository was last updated on October 9, 2026.

Source: mvanhorn/printing-press-library on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.