This chapter gathers every command in one place. Most of Gridtop is worked with the pointer, but two things are worked with words typed in an exact form, and both are listed here in full: the Terminal (chapter 31), where you type commands yourself, and the agent tools, the actions an agent can take on your Gridtop. The agent tools are, taken together, Gridtop's API (application programming interface): the fixed set of named actions, each with its named inputs, through which one program asks another to do something. An agent never touches your Gridtop in any other way.
The chapter ends with a short selection of commands that belong to your hosting rather than to Gridtop: the Linux shell commands of cPanel's own terminal, and the SQL statements that read and change a website's database. They are included because an operator of a Gridtop-hosted site will want them sooner or later, and because several of them pair naturally with Gridtop's own.
Read 47.1 first; it explains how the entries are written. The rest is reference, to be consulted rather than read through.
Every command is shown in code, exactly as you type it. Within a command:
| Written as | Means |
|---|---|
<name> | A value you supply in its place. Type the value, not the angle brackets. |
| Optional: it may be left out. | |
before, after, … | Words given in plain code are typed as they stand. Where several are offered, type one. |
... | More of the same may follow. |
/a | A flag: a slash and one letter, which changes what a command does. |
Quoting. A command is split into words at its spaces. A name that itself contains spaces must be put in double quotes, so that it is read as one word: new agent "Landotronix Writer". The web command (47.3) also accepts single quotes and backticks, because what it carries often contains double quotes of its own.
Capitals. Commands do not mind capitals: DIR, Dir and dir are the same command. The names of objects on the grid are matched without regard to capitals either. File names on your website's server are another matter: the server runs Linux, where Logo.png and logo.png are two different files.
Examples use Landotronix, the example business of this manual, its website landotronix.com, and an agent called Site Builder.
The Gridtop tab is the Terminal's first, blue tab. It works on Gridtop itself: your drive, the objects on the grid, their connections and rules. Its prompt shows where you are on your drive, for example A:/Agentic Matrix/Gridtop>, and it opens there.
| Command | Arguments | What it does |
|---|---|---|
cd | Changes the current folder. cd .. goes up one folder; cd / goes to the top of the drive; a path may start with A:/. With nothing after it, cd shows where you are. | |
cd | #<Type>:<Name> | Locks onto an object on the grid (see Locking onto an object, below). |
dir, ls | Lists the current folder: its folders (marked <DIR>), its files with their sizes, and then every object on the grid with its type. /a lists only agents; /t only Tasks; /s only Skills; /w only Workflows; /f lists the folder's files without the grid's objects. | |
tree | Lists every object on the grid, each with the objects it is connected to. | |
type, cat | <file> | Shows the text of a file on your drive. |
md, mkdir | <name> | Makes a folder, inside A:/Agentic Matrix. |
copy | <file> <destination> | Copies a file on your drive. |
del, rm | <file> | Deletes a file from your drive: it goes to the Receptaculum, from which it can be restored (9.3). Objects on the grid are not deleted from the Terminal; use Delete on the grid (9.1). |
save | Saves everything on the Terminal's screen, with the list of commands you typed, as a .txt file in A:/Agentic Matrix/Gridtop/Terminal. Without a name, the file is named by the date and time. |
| Command | Arguments | What it does |
|---|---|---|
new | <type> ["<name>"] | Creates an object in the first free cell of the grid. The types are agent, task, skill, role, tool, workflow, folder, integration, webfront, blueprint, and, for the inside of a Blueprint (17.4), target, solution and biz (the Business Model). If the name is already taken, the object is given a name of its own. |
ren, rename | <old name> <new name> | Renames an object on the grid. |
info, stat | Shows an object's name, type and id, and how many connections and rules it has. Without a name, it shows the object you are locked onto. | |
link | <object> <object> | Draws a connection from the first object to the second (7.2). |
unlink | <object> <object> | Removes the connection between the two, whichever way it runs. |
set | <agent> <key>=<value> ... | Sets an agent's provider, model, role (or preset) and temperature (or temp). When you are locked onto the agent, leave out its name: set model=<model>. Other keys are ignored, and the Terminal says so. |
chat | Opens the agent's chatbox. Replies appear in the chatbox, not in the Terminal. | |
rules | Lists the standing rules (16.7), numbered, each with how many objects use it. When you are locked onto an object, each rule is marked if it applies to that object and if not. | |
rules | <object> | Lists the rules applied to one object. |
rules add | "<rule text>" | Adds a rule to the library; when you are locked onto an object, it is applied to that object as well. |
rules on, rules off | <number> | Applies the rule of that number to the object you are locked onto, or takes it away. |
| Command | Arguments | What it does |
|---|---|---|
help | Lists the commands of the tab you are in. | |
history | Lists the commands you have typed in this tab, numbered. | |
cls, clear | Clears the screen. | |
echo | <text> | Prints the text. |
title | <text> | Renames the Terminal's window. |
ver | Shows the Terminal's version. | |
exit | Closes the Terminal. | |
cpanel, sql | Sends a command to the cPanel or SQL tab, after a yes or no (see Forwarding, below). With nothing after it, switches to that tab. | |
web | (see 47.3) | Edits a staged version of a website. |
truncator | Opens the Truncator (31.4). | |
editor | Opens the Editor (chapter 23). The older name of the command does the same. | |
deploy | Puts the Editor's open website files live, after asking, keeping what they replace. deploy history lists the last ten deployments of the site; deploy restore <number> puts one back, after asking. With no website file open in the Editor, it answers Open a file of the website in the Editor first (or use Deploy on its Web Front). |
These reach Gridtop's runtime: the part of the server that does work on your drive's files for you. What it can do depends on what your hosting has installed, so start with runtime.
| Command | Arguments | What it does |
|---|---|---|
runtime | Lists what the runtime can do here, each marked AVAILABLE or not installed: files, ZIP archives, ImageMagick (pictures), FFmpeg and FFprobe (sound and video). | |
archive | <output.zip> <source> [<source> ...] | Packs files and folders on your drive into a ZIP archive. |
extract | <archive.zip> <destination folder> | Unpacks a ZIP archive on your drive into a folder. |
convert | <input> <output> | Converts a picture (when the output ends in .png, .jpg, .webp, .gif, .tif, .bmp, .svg, .avif or .heic) with ImageMagick, or a sound or video file with FFmpeg. Works only where runtime reports the engine AVAILABLE. |
gate | Shows your security tier and which kinds of server action are armed for it. | |
tools, tool | tool <name> [--<key> <value> ...] | Lists, and calls, the server tools behind the gate. |
Three more names, schedule, move and color, are reserved: typed, they answer that they are not yet available. run with an agent's name opens its chatbox.
Locking makes one object on the grid the subject of the commands that follow, in the way that cd makes a folder the place they work in. Type cd, a space, #, the object's type, a colon and its name:
cd #Agent:Site Builder … or, with the quotes a name with spaces needs, cd "#Agent:Site Builder"
The prompt now ends with the object, A:/Agentic Matrix/Gridtop/#Agent:Site Builder>. While you are locked on, dir with nothing after it lists the object's connections and the rules applied to it; info, chat, set and rules on / rules off act on it without being told its name; and rules add applies the new rule to it. cd .. releases it. Any other cd releases it too.
The type before the colon is for your own reading; Gridtop finds the object by its name, or by its id.
From the Gridtop tab you can hand a command to one of the other two tabs without leaving it. Type cpanel or sql and then the command:
cpanel ls public_html
The Terminal asks first: Send to cPanel: ls public_html ? (y/n). Type y (or yes) and the other tab runs it; anything else, and the Terminal answers Not sent. If the other tab is itself waiting for a yes or no, it tells you to answer there first (31.2).
| Key | What it does |
|---|---|
| ENTER | Runs the command. |
| UP ARROW, DOWN ARROW | Step back and forward through the commands typed in this tab. Each tab keeps its own list. |
| ESC | Clears the line. |
The web command makes the same exact, small changes to a staged version of a website that the Web Editor makes (chapter 27) and that agents make with the website_editor tool (47.6). It is the tool itself, typed: every change you make with web is one step in the version's Undo history, and plays in its preview if the preview is open, as an agent's edits do (27.7).
web works on a staged version, never on the live site. It changes the version showing in the website's preview; if none is, the newest staged version (26.6).
web use <domain> [<page>]
chooses the website and the page that the commands which follow work on. The page is its address on the site: / (the home page, the default), /about.php, /services/. web use alone tells you what is chosen.
web use landotronix.com /contact.php
| Command | What it does |
|---|---|
web outline | Lists the page's file, the other files it uses, and its numbered sections. Read this first. |
web text "<old>" "<new>" | Changes one piece of the page's text. old must be written exactly as the page has it. When the same text appears more than once, the first is changed. Text that comes from the site's settings (its name, tagline, email, phone, address) changes everywhere it shows. |
web css "<selector>" "<property>: <value>; ..." [file <name>.css] [page] [media "<condition>"] | Sets a style rule (see below). |
web attr "<selector>" <name>=<value> ... | Sets an element's attributes. <name>= with nothing after it removes that attribute. |
web html "<selector>" '<html>' | Replaces everything inside an element. |
web insert <position> "<selector>" '<html>' | Inserts new markup: before or after the element, or inside it, first (prepend) or last (append). |
web remove "<selector>" | Removes an element, and everything inside it. |
web move "<selector>" <position> "<target>" | Moves an element before or after the target, or inside it, first (prepend) or last (append). |
web wrap "<selector>[, <selector> ...]" <tag> [<name>=<value> ...] | Puts an element, or several that sit side by side, inside a new element. |
web undo, web redo | Takes back the last change to this version, or puts it back. |
web help | Lists these commands. |
A selector names the element to change. Section 47.7 explains selectors in full; in short, #id, .class and tag names, as in a stylesheet.
Anything that contains spaces is put in quotes. web accepts three kinds, so that what is inside may hold the other two:
"nav .phone"'<p class="note">Open Saturdays.</p>' <a href="/quote.php" title='Free quote'>Quote</a> `Attributes. In attr and wrap, write each attribute as name=value, with no quotes around the value. A value that contains spaces is quoted whole, name and all:
web attr "#crew-photo" "alt=The Landotronix crew at work" loading=lazy
class="snap" in attr or wrap: the quote marks would become part of the value. Write class=snap, or "class=snap wide" for more than one class.web css changes the rule with that exact selector where it already is, setting the properties you give and leaving the rest; if there is no such rule, it adds one. A property given with an empty value ("color: ") is removed from the rule.
file <name>.css names another stylesheet of the version; page writes it into the page's own <style> block.media "(max-width: 760px)" writes the rule inside that @media block, making the block if there is none.web css ".hero h1" "font-size: 2.6rem; letter-spacing: .02em" web css "nav" "display: none" media "(max-width: 760px)"
Each change answers with what it did and in which file, for example Removed <div#promo.banner> "Fall sale" (index.php) v3, so that you can see it found the element you meant. No change. means the page already was as asked. If the change cannot be made, it says why and changes nothing (47.6).
The cPanel tab (amber) works on your websites' files on the server, through cPanel. It is not a Linux shell: it understands only the commands below, each carried out for you through cPanel. For a full shell, see 47.8.
Begin with sites, then choose one with site; the prompt then shows where you are, with ~ for your hosting account's home folder, for example cPanel:~/public_html>. Paths may be absolute (/home/...), start from home (~/public_html/img), or be relative to where you are, with .. for the folder above.
| Command | Arguments | What it does |
|---|---|---|
sites | Lists your sites: each domain, its kind if it is not the main one, and its folder. | |
site | <domain> | Works in that site, starting in its folder. |
pwd | Shows where you are. | |
cd | Changes folder. Alone, shows where you are. | |
ls, dir | Lists a folder: folders marked <DIR>, files with their sizes, and the count. | |
cat, type | <file> | Shows a file's text, up to 400 lines. |
edit | <file> | Opens the file in the Editor (chapter 23). |
mkdir, md | <name> | Makes a folder where you are. |
mv, move | <path> <folder> | Moves a file or folder into another folder. If the name is already there, nothing is changed. |
cp, copy | <path> <folder> | Copies a file or folder into another folder, on the same terms. |
zip | <name> <path> [<path> ...] | Packs files and folders into a .zip where you are. If the name is taken, the new archive is given another. |
tar.gz | <name> <path> [<path> ...] | The same, as a .tar.gz. |
unzip, extract | <archive> [<folder>] | Unpacks an archive where you are, or into the folder named. |
dns | Lists a domain's DNS records as a table: type, name, value and time to live. Change them in Domains ▸ DNS (30.2). | |
help, history, cls, clear, echo, title, ver, exit | As in the Gridtop tab. |
There is no delete command in the cPanel tab. Files on a website are deleted in cPanel itself, or with rm in a shell (47.8).
The SQL tab (cyan) works on your websites' databases. A database is where a site keeps what it records: its orders, its sign-ups, its messages from the contact form, in tables of rows and columns. SQL (Structured Query Language) is the language in which you ask a database for its rows, or change them.
| Command | Arguments | What it does |
|---|---|---|
dbs, databases | Lists your databases with their sizes. Those marked * are connected to Gridtop. | |
connect | <database> | Connects Gridtop to a database, after asking: it adds Gridtop's own database user to it in your cPanel. |
use | <database> | Works in that database. It must be connected first. |
tables | Lists its tables, with their rows and engine. | |
desc, describe | <table> | Lists a table's columns: type, whether it may be empty (Null), key, default and extra. |
write | on or off | Allows changes, or returns to read-only. Alone, says which it is. |
| any other line | Runs as SQL. | |
help, history, cls, clear, echo, title, ver, exit | As in the Gridtop tab. |
How SQL is run. Every line that is not one of the commands above is sent to the database as one SQL statement, of up to 20,000 characters; a closing semicolon is optional. Results come back as a table, with the number of rows and the time taken; the first 200 rows are shown.
Read-only until you say otherwise. The tab starts read-only. A statement that begins with SELECT, SHOW, DESCRIBE, DESC, EXPLAIN or WITH reads, and is run in a read-only transaction, so that it cannot change anything even by accident. Any other statement changes the database: the tab refuses it with That changes the database. Type write on first. After write on, the prompt shows (write), and each change still asks Run this change on database ? before it runs. Every change is recorded in your account's security log.
Because use and desc are the tab's own commands, they are not sent as SQL: use them as above.
In Autocomputing '26, the Bash tab (green) has no commands of its own beyond cls and clear: every other line is run, one at a time, by the shell on your own PC (31.3). It does not reach your hosting.
An agent works by calling tools. Each tool has a name, a description that tells the agent what it is for, and named parameters, the inputs the agent fills in when it calls it. You do not call these yourself; you ask an agent in plain words, and it chooses the tools. This section lists them so that you know what an agent can do, what it needs from you, and what each step in its tool trace (19.1) means.
Permissions. Each tool needs one of the agent's permissions (15.2), shown in the tables as Read, Edit, Stage, Make Connections or Configure Agents; Integration tools may need Send Outside. A dash means the tool needs no permission of its own. When an agent lacks the permission a tool needs, it asks you in its chat.
editor_replace, editor_write) are the exception: their changes wait in the Editor for you to save.Connections give access. Two rules apply on top of permissions (16.8). An agent reaches a website's files only when it is connected to that Web Front by a line, or the file was attached to your message. And it reads, sets up and saves only the Tasks, Roles, Skills and Tools joined to it by a line, including any it made.
Parameters are written name (type): an agent fills a string with text, a number or integer with a number, a boolean with true or false, an array with a list, and an object with named values. Required parameters are marked required.
| Tool | What it does | Parameters | Permission |
|---|---|---|---|
file_read | Reads a text file anywhere on A:/, including files you attached and staged versions; up to 400 KB a call, continuing from where it stopped. | path (string, required); offset (number): where to continue | Read |
file_write | Writes a text file on A:/. An existing file is never replaced unless overwrite is true. When a PHP file no longer parses, it says so. | path, content (strings, required); overwrite (boolean) | Edit |
list_directory | Lists a folder on A:/ or in a website: by path, or by the name of a Folder or Web Front on the grid. | path (string, required) | Read |
create_folder | Makes a folder on A:/ and places it on the grid. Folders on the way are made too. | name (string, required); parent (string): default Agentic Matrix | Edit |
rename_file_or_folder | Renames a file or folder where it is. | path, new_name (strings, required) | Edit |
move_file_or_folder | Moves a file or folder, as dragging does on the grid: from A:/ to a Web Front publishes it to the live site (26.4). | source, destination (strings, required); on_conflict: error (the default: nothing is replaced), replace, rename_incoming or rename_previous | Edit |
copy_file_or_folder | Copies within A:/, or from one website folder to another; not between the two. | source, destination (strings, required); on_conflict, as above | Edit |
archive_create | Packs files and folders on A:/ into a .zip. | output (string, required); inputs (array of paths, required); overwrite (boolean) | Edit |
archive_extract | Unpacks a .zip on A:/ into a folder, refusing any entry that would land outside it. | archive, destination (strings, required); overwrite (boolean) | Edit |
These work on the file open in the Editor (chapter 23). A staged website file (one in Staging/vn) is saved to the drive as the agent edits it, so the preview shows the change; any other file waits, as unsaved changes, for you to save (23.5).
| Tool | What it does | Parameters | Permission |
|---|---|---|---|
editor_open | Opens a file in the Editor, as a tab: an A:/ path, or a file in a website the agent is connected to. | path (string, required) | Read |
editor_read | Reads the open file: its path, its text (up to 60,000 characters), and whether it has unsaved changes. If a staged file's tab holds unsaved changes, the drive's copy comes with it, since that is what the preview shows. | none | Read |
editor_replace | Replaces an exact piece of the open file's text. The piece must appear once, unless all is true. | find (string, required); replace (string); all (boolean) | Edit |
editor_write | Replaces the open file's whole text. | text (string, required) | Edit |
editor_check | Checks that the open file parses as it stands: JavaScript and JSON, PHP (on our server), the scripts inside an HTML page, and the braces of a stylesheet. Nothing is run. | none | Read |
webfront_deploy | Puts the Editor's open files of a website live, keeping what they replace. Every file must parse first. An agent without Server Push / Deploy, or on a site that does not allow agents to deploy, sends them to you as a proposal instead (26.6). | note (string, required): one line saying what it changes | Edit |
| Tool | What it does | Parameters | Permission |
|---|---|---|---|
inspect_webfront | Describes a Web Front: its domain, its folder on the server, what the site supports, up to 50 entries from its folder, and which of the agent's permissions apply. A preview address is refused: it is not a Web Front. | webfront (string, required): its name, domain or id | Read |
scan_website | Reads the Server app's scan of a site (28.2): its databases, its forms, the file each form posts to, and the tables that file reads or writes. Changes nothing. | webfront (string, required); refresh (boolean): scan again, which can take a minute | Read |
website_editor | Makes small, exact changes to a staged page. See 47.6. | see 47.6 | Stage |
preview_inspect | Shows how an element of the page in your preview really looks (below). | selector or text (string) | Read |
look | Sees a picture or video on A:/ through a vision model (15.5) and describes it, answering a question if one is given. Video is seen as frames at even times, each named with its time. | path (string, required); question (string); frames (integer, 2 to 16, default 8): video only | Read |
preview_inspect. The files of a site say what a page should look like; this tool reports what it does look like, measured in your open preview. The agent names the element by a CSS selector, or by some of its visible text (the innermost element containing that text is taken). For each element found, up to three, it returns: a selector for it, its tag, id, classes and text; its box (position, width, height, and whether it is on the screen); its computed look (colours as #RRGGBB, fonts and sizes, spacing, border, shadow, display and layout); the background it actually shows, and which element paints it; its inline style and old-style HTML attributes; and every CSS rule that applies to it, up to 40, each with the file it comes from. The page's address, title, window size and stylesheets come with it. When nothing matches, it lists the ids on the page and its landmarks (header, nav, main, sections, footer) to try instead. It reads only, and works only while a preview is open, with a Gridtop panel in it (Add Agent, 27.7).
An agent reads a database only when you have attached it to the agent, in the Server app: the database's window, its Agents tab (28.3). No agent tool changes a database.
| Tool | What it does | Parameters | Permission |
|---|---|---|---|
list_my_databases | Lists the databases attached to the agent, and any others on the hosting that are not. | none | Read |
describe_database | Lists a database's tables with their row counts, or one table's columns and keys. | database (string, required); table (string) | Read |
query_database | Runs one read-only statement (SELECT, SHOW, DESCRIBE, EXPLAIN or WITH) and returns up to 100 rows. | database, sql (strings, required) | Read |
| Tool | What it does | Parameters | Permission |
|---|---|---|---|
list_gridtop_objects | Lists the objects on the grid, with their ids and types; Folders with their paths; Web Fronts with their domains and folders; and the Workflow each nested object is in. | none | — |
create_gridtop_object | Creates an object beside the agent, joined to it by a line. A Task, Role, Skill or Tool can start from a template, and is saved at once. | type (string: one of the types new takes, 47.2); name (string); template (string) | — |
list_templates | Lists the templates a new Task, Role, Skill or Tool can start from (16.8). | none | — |
read_object | Reads how a Task, Role, Skill or Tool is set up: its settings, its file, whether it is saved, and its connections. | object (string, required): its name or id | — |
configure_object | Sets up a Task, Role, Skill or Tool. Only what is given changes. A Task takes prompt, folder and steps; a Role, purpose, instruction and authority; a Skill, description and instructions; a Tool, its function name, description, when to use it and when not, what it returns, its inputs, its behaviour, and whether it is enabled. | object (string, required); settings (object, required); save (boolean, default true) | — |
save_object | Saves a Task, Role, Skill or Tool to its file as it stands. | object (string, required) | — |
connect_objects | Draws a connection line between two objects. Lines an agent draws are silver. | from, to (strings, required) | Make Connections |
place_in_workflow | Places an object inside a Workflow, as dragging it there does. | object, workflow (strings, required) | — |
| Tool | What it does | Parameters | Permission |
|---|---|---|---|
instruct_agent | Sends a message to another agent on the grid and waits for its reply, for up to three minutes. | target, message (strings, required) | — |
set_agent_parameters | Sets another agent's provider and model, a built-in role (Flat, Developer, Brainstorm, Analyst, Concise or Copywriter), or its generation settings. | target (string, required); provider: ethocana, gemini, claude, openai, openrouter, zai or deepseek (only those you have connected; Ethocana always); model; role; temperature, top_p, frequency_penalty, presence_penalty (numbers); top_k, max_tokens (integers) | Configure Agents |
ask_user | Asks you a question in the agent's chat and waits up to an hour for your answer (12.14). | question (string, required); kind: single (one choice, the default), multiple or text; options (array of 2 to 8 choices); allow_other (boolean, default true); placeholder (string) | — |
| Tool | What it does | Parameters | Permission |
|---|---|---|---|
get_runtime_capabilities | Reports what the runtime can do here, as the Terminal's runtime does (47.2). | none | — |
media_probe | Reads a picture's or a media file's details. | input (string, required) | — |
image_convert | Converts, resizes or compresses a picture with ImageMagick, where installed. | input, output (strings, required); resize (for example 1200x1200); quality (1 to 100); strip_metadata, overwrite (booleans) | Edit |
media_convert | Converts sound or video with FFmpeg, where installed: convert, trim, extract_audio or extract_frame. | input, output, operation (strings, required); start, duration (seconds); overwrite (boolean) | Edit |
hardline_job | Does media work on your own PC, through Autocomputing '26 (24.4): hls (a video prepared for streaming), mp4, mp3, thumb (a still from a video), image, transcribe (a .txt transcript and .srt captions) or imagegen (a picture from a description). Results are saved beside the source file; pictures go to A:/Hardline/Images. It waits up to 90 seconds; a longer job is checked again by its id. | kind (required); path; options (object); id (integer) | Edit |
media_convert and the Terminal's convert for sound and video report it not installed there; sound and video work is done on your PC with hardline_job. play_chess (opponent: agent or computer), chess_board (none) and chess_move (move, in UCI notation, for example e7e5) let an agent start a game and play it (19.4). They are offered to an agent only while it is playing, or when your last message mentions chess. None needs a permission.
A Tool object of your own (16.4) that is connected to an agent becomes one of its tools, under the function name you gave it, with the inputs you defined. A Tool marked to ask first asks before every run.
An agent connected to an Integration set up as a service it can work through gets that service's tools too, named after the kind, the Integration and the tool, for example mcp_… or stripe_…. A tool that only reads needs Read; one that changes things, Edit; one that sends something outside Autocomputing, Send Outside. Sending an invoice or a refund asks you every time. Chapter 32 describes the services.
A program connected to your Gridtop with a key from the Harness app (32.3) works through Gridtop's MCP server, with these tools, as far as its key allows: drive_list and drive_read (Read the drive), drive_write (Write to the drive), list_agents, and ask_agent (Message your agents), which puts a question to one of your agents and returns its answer. The drive tools never reach the Receptaculum, refuse blocked file types, and take up to 2 MB a file. A key set to act as one of your agents also takes that agent's permissions, standing rules and lines.
Time limits. A tool that does not finish within 45 seconds is stopped and the agent told so, unless the tool allows itself longer: instruct_agent three minutes, hardline_job two.
website_editor is the tool with which an agent makes exact changes to a staged website: a word here, a colour there, a section moved, a column added. It shares its code with the Web Editor (chapter 27), so a person in the preview and an agent in a chat change a page in the same way, and land in the same Undo history. The Terminal's web command (47.3) types the same tool.
Changes land in the version showing in the preview; if none is, the newest staged version; or the version named. Each change is one step that Undo in the Web Editor, web undo, or the act undo takes back, and each plays in the open preview as it lands (27.7). The tool needs Stage.
Every call names a Web Front and an act. The parameters are these:
| Parameter | Type | Used by |
|---|---|---|
| webfront (required) | string | every act: the Web Front's domain or name |
| act (required) | string | one of the acts below |
| page | string | the page's address: / (the default), /about.php |
| version | string | v1, v2 …: a version other than the one in the preview |
| old, new, nth | string, string, integer | edit_text |
| order | array of integers | move |
| vars | object | colors |
| selector | string | design and the structural acts |
| base, hover, fx, clear | object, object, string, boolean | design |
| decl, file, media | object, string, string | css_rule |
| attrs | object | set_attr, wrap |
| html | string | set_html, insert_html |
| position | before, after, prepend or append | insert_html, move_element |
| to | string | move_element |
| tag | string | wrap |
| id | string | archive_note |
| q, regex, only | string, boolean, string | search |
| rules | array of {selector, decl, media} | css_rule, several rules at once |
| n, kinds | integer, array | columns |
| screen | 0, 1024 or 600 | design: every screen, tablets only, or phones only |
| lfx | object | design: light effects |
| Act | What it does |
|---|---|
outline | The page's file; its sections, numbered, each with its kind (hero, cards, gallery, list, table, form, image, text) and heading; its texts, each with how many times it appears; the site's colours and designed elements; and the files the page uses. A page without section markers has no numbered sections, but its texts are listed. For a template site, it also returns the template's own design guidance, which the agent is told to follow. Read this first. |
search | Finds a word, colour, class or selector in every text file of the version, answering with each file, line and text. q: what to find; regex: true for a pattern; only: a file pattern such as "*.css". |
annotations | The notes made on the preview (27.3) that are still to do, each with its id, page and element. |
archive_note | Archives a note once its change is made, so that no one works it twice. id: the note's id. |
| Act | What it does |
|---|---|
edit_text | Changes one piece of text. old is the text exactly as outline lists it; new its replacement, up to 5,000 characters. When the text appears more than once, nth says which, counting from 0. Text the site's settings write (its name, tagline, email, phone, address and description) is changed in the settings, and changes everywhere it shows. Text written by the site's database cannot be changed here. |
move | Puts the page's sections in a new order. order lists every section number once, in the new order: . Only a page whose sections outline numbers can be rearranged this way; on any other page, use move_element. |
colors | Sets the site's palette. vars names each colour and its value as #RRGGBB: bg, card, contrast, accent, accent2, accent3, line (the site's colours); fg, muted, heading, link, btn-fg, on-contrast (its text). r is the corner radius of the whole site, for example "8px". A page with stylesheets of its own that do not use the palette is not changed, and the answer says where its colours are instead. |
design | Sets one element's look, as Design does in the Web Editor (27.5). selector: a CSS path to the element. base and hover: the look normally and under the pointer, as {property: value}, from color, background-color, border-color, border-width, border-style, border-radius, box-shadow, text-shadow, filter, transform, transition, padding, opacity, text-decoration, translate, scale, width, height, min-height, max-width and display; an empty value removes one; values may name the palette, as var(--accent). fx: a light effect, rim, spot, both or ""; lfx: the light effects of the Effects dialog (27.5), by kind (gradient, gloss, glint, rays, star, flare, spot), {} removing them all. screen: 1024 or 600 keeps the change for tablets or phones only. clear: true removes the element's design altogether. |
undo, redo | Takes back the last change to the version, or puts it back. Undo stops at a file that has since been changed some other way. |
These change the page's source itself, element by element. Each finds its element with a selector (47.7), and each answers with what it matched, so that the result can be checked.
| Act | Parameters | What it does |
|---|---|---|
css_rule | selector, decl {property: value}, or rules for several at once; file; media | Sets a style rule, or with rules several, as one step. If a rule with that selector exists (in that @media, when media is given), its properties are set in place and the others kept; otherwise the rule is added. An empty value removes a property. file: a .css file of the version; by default the page's first own stylesheet; "page" for the page's own <style>. media: for example "(max-width: 760px)". 1 to 60 properties at a time. |
set_attr | selector, attrs {name: value} | Sets attributes on one element; an empty value removes one. |
set_html | selector, html | Replaces everything inside one element. |
insert_html | selector, position, html | Inserts markup before or after one element, or first or last inside it. |
remove_element | selector | Removes one element and everything inside it, and the line it leaves empty. |
move_element | selector, to, position | Moves one element before or after another (to), or first or last inside it. An element cannot be moved into itself. |
wrap | selector, tag, attrs | Puts one element, or several side by side, inside a new element. tag is one of div (the default), section, article, header, footer, main, nav, aside, span, figure or a. To wrap several, give a selector list: ".card-a, .card-b". They must share one parent and stand next to one another, with nothing between. |
columns | selector (a section), n (1 to 6), kinds | Divides a section into columns, each type, media or object. Its content so far stays in the first column; a new text column gets a paragraph to edit, and media and object columns are empty frames. Only empty columns can be taken away. |
fill | selector (an empty frame), html | Puts something into an empty frame, such as a picture. |
duplicate | selector | Places a copy of the element right after it. |
beside | selector (an item in a section row), html | Places a new item right after it in the same row, taking half its width. |
The structural acts are careful with your page, and refuse rather than guess. Nothing is changed when:
wrap, with a list, is the one act that takes several.)preview_inspect (47.5) shows the page as it is shown.onclick: attributes beginning with on are not written.set_html, prepend and append refuse an element that cannot hold anything, such as <img>.#id and .class selectors for the structural acts. They are the least likely to match the wrong element, and they still match when the page's other parts are rearranged.A selector is a short description of one or more elements on a page, written in the language of stylesheets. h1 means every main heading; #quote-form the one element whose id is quote-form; .price every element of the class price; footer .phone an element of class phone somewhere inside the footer.
The structural acts (47.6) and web (47.3) read this part of the language:
| Selector | Matches | Example |
|---|---|---|
tag | Elements of that kind; * for any kind | section, h2 |
#id | The element with that id | #crew-photo |
.class | Elements with that class; several may be joined | .card.featured |
| Elements that have that attribute | ||
| …whose value is exactly v | ||
| …whose value contains the word v | ||
| …whose value begins with v | ||
| …whose value ends with v | ||
| …whose value contains v anywhere | ||
:nth-of-type(n) | The nth of its kind among its parent's children | li:nth-of-type(3) |
:nth-child(n) | The nth of all its parent's children | .card:nth-child(2) |
:first-of-type, :last-of-type | The first, or last, of its kind | p:first-of-type |
:first-child, :last-child | The first, or last, of all its parent's children | li:last-child |
a b | b anywhere inside a | header nav a |
a > b | b directly inside a | ul.services > li |
a, b | Either; for wrap, the elements to wrap together | .card-a, .card-b |
Parts are combined as in a stylesheet: nav#main > a.button[href^="/"]:first-of-type. n is a plain number: odd, even and 2n+1 are not read.
Not read: the sibling signs + and ~, :not(), :hover and the other states, and ::before and ::after. An attribute value with a space in it cannot be matched exactly; match one of its words with ~=, or a part with *=.
css_rule is the exception. Its selector is not looked up on the page: it is written into the stylesheet as given, so any selector a browser understands may be used there, and it may match many elements, as a style rule usually does. The selector for design may use letters, digits, #, ., -, _, :, brackets ( ), spaces and >.The commands in this section are not Gridtop's. They are standard Linux shell commands, typed in the shell of your hosting account: a command line on the server itself, where the shell, called Bash, carries out each command you type. Run them in cPanel's own Terminal (in cPanel, Advanced ▸ Terminal) or over SSH. They do not work in the Terminal's cPanel tab (47.4), which knows only its own commands, nor in the Bash tab of Autocomputing '26 (31.3), which runs on your PC, not on the server.
In the shell, ~ is your account's home folder, and a website's files are usually in ~/public_html (the main domain) or a folder of the other domain's name. Change landotronix.com and the file names below for your own.
| Command | What it does | |
|---|---|---|
pwd | Shows the folder you are in. | |
cd ~/public_html | Goes into a folder. cd .. goes up one; cd alone goes home. | |
ls -la | Lists a folder in full: hidden files (names starting with a dot, such as .htaccess), permissions, sizes and dates. | |
| `ls -lt \ | head -20` | The twenty most recently changed files, newest first. |
find . -name "*.php" -mtime -2 | PHP files changed in the last two days, here and below. | |
find . -name error_log | Every PHP error log under this folder. | |
grep -rn "Landotronix" --include=*.php . | Every line of every PHP file that contains Landotronix, with the file and line number. | |
cat contact.php, less contact.php | Shows a file; less a page at a time (SPACE for the next, Q to quit). | |
head -n 30 index.php, tail -n 30 index.php | The first, or last, 30 lines of a file. |
| Command | What it does | |
|---|---|---|
du -sh ~/public_html | How much space a folder takes. | |
| `du -sh * \ | sort -h` | The size of everything in this folder, smallest first. |
ls -l index.php | A file's permissions: who may read, write and run it. | |
chmod 644 contact.php | The usual permissions for a website file: you may change it, and the web server may read it. | |
chmod 755 img | The usual permissions for a website folder. |
| Command | What it does |
|---|---|
cp contact.php contact.php.bak | Copies a file; a habit worth keeping before changing one by hand. |
cp -r img img-old | Copies a folder and everything in it. |
mv old-name.php new-name.php | Renames, or moves, a file. |
mkdir -p backups/2026-10 | Makes a folder, and any folders on the way. |
tar -czf ~/backups/site-2026-10-05.tar.gz public_html | Packs a whole site into one compressed archive. |
tar -tzf site-2026-10-05.tar.gz | Lists what is in an archive, without unpacking it. |
tar -xzf site-2026-10-05.tar.gz | Unpacks an archive here. |
zip -r site.zip public_html, unzip -l site.zip | The same with .zip: pack a folder; list an archive. |
unzip site.zip -d restore | Unpacks a .zip into the folder restore. |
mv and cp replace a file of the same name without asking, and tar -x and unzip write over files that are already there. Unpack into an empty folder, and copy across what you need.| Command | What it does |
|---|---|
php -l contact.php | Checks a PHP file for syntax errors without running it: No syntax errors detected, or the line at fault. The same check Gridtop runs (editor_check, 47.5; 27.9). |
php -v | The version of PHP the shell uses. It may differ from the version your website runs, which is set in cPanel. |
tail -n 50 error_log | The last 50 PHP errors in this folder's log. A PHP error is written to an error_log file in the folder of the page that caused it. |
tail -f error_log | Shows errors as they are written; load the page in another window to watch. CTRL+C stops. |
ls ~/logs | Your account's own log files, where cPanel keeps them. |
curl -I https://landotronix.com | Asks your site for its headers only: whether it answers (200), redirects (301, 302) or fails (404, 500). |
crontab -l | Lists your account's scheduled jobs (cron). |
rm is gone at once, and cannot be restored from Gridtop. Make a copy first, and read the command twice before pressing ENTER.| Command | What it does |
|---|---|
rm contact.php.bak | Caution. Deletes a file, for good. |
rm -i *.bak | Caution. Deletes files, asking about each one first. |
rm -r img-old | Caution. Deletes a folder and everything in it, for good. Never use it on a folder you have not listed first with ls. |
A database in cPanel is named with your cPanel username in front: landotro_shop, for an account named landotro. To reach one from the shell you need a database user and its password, from cPanel's MySQL Databases; -p makes the shell ask for the password, rather than showing it on the screen.
| Command | What it does |
|---|---|
mysqldump -u landotro_admin -p landotro_shop > ~/backups/shop-2026-10-05.sql | Saves a whole database, its tables and rows, as one .sql file: a backup. |
mysqldump -u landotro_admin -p landotro_shop orders > orders.sql | The same, for one table. |
mysql -u landotro_admin -p landotro_shop | Opens the database's own command line, where you type SQL (47.9). exit leaves it. |
mysql -u landotro_admin -p landotro_shop < shop-2026-10-05.sql | Caution. Loads a .sql file into the database. A backup made by mysqldump replaces the tables it contains, with everything in them. Make a fresh backup first. |
These statements work in the Terminal's SQL tab (47.4), in the Server app's database window (28.3), and in the mysql command line (47.8). Your hosting's databases are MySQL or MariaDB, which speak the same SQL. Replace the table and column names with your own; tables and desc in the SQL tab show what they are.
Statements that read change nothing, and the SQL tab runs them without write on.
| Statement | What it does |
|---|---|
SHOW TABLES | Lists the database's tables. |
DESCRIBE orders | Lists a table's columns, their types and keys. (In the SQL tab, desc orders.) |
SHOW CREATE TABLE orders | The statement that would make the table again, with every column, key and setting. |
SELECT COUNT(*) FROM orders | How many rows a table has. |
SELECT * FROM orders LIMIT 20 | The first twenty rows, every column. Always use LIMIT on a table you do not know. |
SELECT id, name, email, created_at FROM contacts ORDER BY id DESC LIMIT 20 | The twenty newest messages, the columns you name only. |
SELECT * FROM contacts WHERE email LIKE '%@landotronix.com' | Rows whose email ends in @landotronix.com; % stands for any text. |
SELECT status, COUNT(*) FROM orders GROUP BY status | How many orders are in each status. |
SELECT * FROM orders WHERE created_at >= '2026-10-01' | Rows from October 2026 on. |
SHOW TABLE STATUS | Every table with its row count, size and engine. |
SELECT table_name, ROUND((data_length + index_length) / 1048576, 1) AS mb FROM information_schema.tables WHERE table_schema = DATABASE() ORDER BY mb DESC | Each table's size in megabytes, largest first. |
EXPLAIN SELECT * FROM orders WHERE email = '[email protected]' | How the database would find those rows, without running the query; a slow query shows here. |
Statements that change a database need write on in the SQL tab, and ask before each one. Before any change, take a backup (mysqldump, 47.8), and run the same WHERE as a SELECT first, to see exactly which rows it will touch.
| Statement | What it does |
|---|---|
INSERT INTO services (name, price) VALUES ('Lawn care', 45.00) | Adds a row. |
UPDATE services SET price = 49.00 WHERE id = 7 | Caution. Changes the rows the WHERE names; here, one. |
UPDATE services SET price = 49.00 | Caution. With no WHERE, changes every row of the table. Almost never what is meant. |
DELETE FROM contacts WHERE id = 412 | Caution. Deletes the rows the WHERE names, for good. |
DELETE FROM contacts | Caution. With no WHERE, deletes every row. |
ALTER TABLE contacts ADD COLUMN phone VARCHAR(30) NULL | Caution. Adds a column to a table. The Form Editor (29.2) does this for a form's table, with Undo. |
TRUNCATE TABLE sessions | Caution. Empties a table entirely, at once. It cannot be undone. |
DROP TABLE old_orders | Caution. Deletes a table and everything in it, for good. |