What is a CLI?
What this article explains
A CLI is a command line interface. It is a way to operate software by typing commands in a terminal.
Plain words
A browser button is one interface. A terminal command is another interface. A CLI command has a program name, flags, arguments, a working directory, output, and an exit status.
How CLIs work in OIP
OIP stands for Object Invocation Protocol. It is a way to make software objects callable using standard web addresses, called URLs. A URL is a web address that points to a resource on the internet.
The miscsubjects.com build exposes CLI work as objects. This happens when a directory row points to a shell, model CLI, deployment command, or local bridge command. The row must explain the exact command shape and where proof appears.
OIP and Model Context Protocol (MCP)
MCP stands for Model Context Protocol. It is an open standard.
In MCP, an AI model connects to an MCP server over a session. A server is a computer program or device that provides a service to other computer programs or devices, called clients. A session is a temporary, interactive information exchange between two or more communicating devices.
The MCP server exposes tools, resources, and prompts that the model can call. MCP is NOT a content-management system.
OIP differs from MCP. OIP uses plain URLs and receipts. A receipt is a record of an action or transaction. OIP does not use a persistent session. Any model that can open a URL can act using OIP.
Machine shape
A CLI object is machine-native when it includes command, args, cwd, env_requirements, stdout, stderr, exit_status, ledger, and repair.
Operating OIP CLI Objects with curl
The miscsubjects.com build allows you to invoke OIP objects using simple web requests. You can use the curl command-line tool to make these requests.
To invoke an object, you send a request to the /api/dispatch endpoint. An endpoint is a specific URL where an API can be accessed by a client. API stands for Application Programming Interface. It is a set of rules that allows different software applications to communicate with each other.
Invoking with GET
To invoke an object using a GET request, include the object's key and any body data as URL parameters.
Example: Invoke an object named my-cli-object with a simple body.
curl "https://miscsubjects.com/api/dispatch?invoke=my-cli-object&body=hello%20world"Invoking with POST
To invoke an object using a POST request, send the key and body in the request's JSON payload. JSON stands for JavaScript Object Notation. It is a lightweight data-interchange format.
Example: Invoke an object named another-cli-object with a JSON body.
curl -X POST \
-H "Content-Type: application/json" \
-d '{"key": "another-cli-object", "body": {"message": "hello from post"}}' \
https://miscsubjects.com/api/dispatchChecking the receipt
Every invocation lands in an append-only ledger. You get a receipt for each invocation.
To check the status or result of an invocation, use the receipt parameter with the invocation ID.
Example: Check receipt for invocation ID inv_12345.
curl "https://miscsubjects.com/api/dispatch?receipt=inv_12345"Latest clarity reviews (live)
Fresh models are sent this article's bundle and asked two separate questions: how clear is the machine JSON, and how clear is the English body. Scores are 0 to 10. The full history is in the append-only ledger.
- 2026-07-03 03:10 · model
gemini/gemini-2.5-flash· NEEDS WORK · JSON 9/10 · English 7/10 · zero-context human 6/10
- gaps named: directory row structure; scoped capability tokens; invocation ID generation
- 2026-07-02 23:43 · model
@cf/meta/llama-3.3-70b-instruct-fp8-fast· NEEDS WORK · JSON 9/10 · English 8/10 · zero-context human 7/10
- gaps named: MCP explanation; Detailed curl usage examples
How the loop self-corrects: a failing review queues a model revision of this article (a new append-only version). A missing concept named by a reviewer queues a brand-new machine-written article, which then enters the same review cycle.