logs
Follow an App's Logs live, or print its last lines with --lines.
The tool of basemodo logs, on the local MCP and the remote one. It only reads, so an agent's client may run it without asking you.
Logs are what the App's processes print and what its builds print, kept 7 days. Each line of the App's Machine names its Process: the one that printed it, or the one a notice of Basemodo's is about (basemodo when it is about none). Without --lines, --after, --before or --search the CLI follows them until interrupted; an agent gets the latest 100 lines and a cursor, follows by asking again with --after, and pages back with --before. --search finds the lines that mention a text, in any case, in all that is kept, newest matches first. A control character in a line (an escape, a carriage return) prints as \x1b or \x0d, so a line cannot drive your terminal; --json keeps every line exact.
Arguments
app(text): The App whose Logs to read. Default: the one named after the current folder.lines(number): Print the last N lines and stop, instead of following.after(text): Print the lines after this cursor (of an earlier--jsonanswer, or of one of its lines) and stop.before(text): Print the lines before this cursor (an earlier--jsonanswer'solder_cursor, or one of its lines') and stop: paging back.search(text): Print the newest lines that contain this text, in any letter case, from every kept line, and stop. With--before, the matches older than it.process(list of text): Only the lines of this Process (web, a worker, a cron), with Basemodo's notices about it. Repeat it for several:--process web --process mailer.source(text): Only the App's Machine's lines (app) or only its builds' (build).
On the remote MCP
appis required on the remote MCP, which has no folder of yours to find the App from.
Answer
It answers {"lines": [{"at", "source", "deploy", "process", "message", "notice", "cursor"}], "cursor", "older_cursor", "retention_days", "processes": [{"name", "running"}]}, notice true for Basemodo's own lines (a crash, a restart, a cron run), older_cursor only when older lines are kept; while following, one JSON line per log line.