跳到正文
Letronna®

更新日志

最新动态

接下来的计划在路线图上,你可以在那里投票。

Letronna 应用和终端,支持 Windows、macOS 和 Linux。所有平台共用一个版本号。

v0.1.0-alpha.42026年10月20日
新增 26
  • 终端Ctrl+V attaches the picture on the clipboard to your next message, read with what the system already has (AppleScript on macOS, PowerShell on Windows, wl-paste or xclip on Linux), and a picture dragged into the terminal is attached rather than pasted as its path, quoted, escaped or as a file:// address; both go through /image.
  • 终端What you send at the prompt is kept for each project folder across sessions (prompt-history.jsonl in the data folder), so ↑ in a new session reaches yesterday's prompts, and Ctrl+R opens them in a list narrowed as you type, newest first. A recalled paste comes back whole instead of as its placeholder, a recalled /command no longer traps ↑ in the menu, and changes to a recalled line survive stepping past it; an answer to a question, such as a key, is never brought back by ↑.
  • 终端Ctrl+G opens what is in the box in your editor ($VISUAL, then $EDITOR) and puts what you wrote back in the box when you close it. Ctrl+_ undoes the last change to the line, a word or a run of deletes at a time, and Ctrl+Y puts back what Ctrl+U, Ctrl+K or Ctrl+W last cut.
  • 终端A session is named by a model once its first reply is in, from the first message and the start of the reply: automatically Letronna's quick model, which its server picks, for a chat on the Letronna gateway, checked by Jev, else the side model, else the chat's own; /model names picks another or turns naming off, and /rename names a session yourself, or with nothing after it asks a model now. A chat on your own key, a company's gateway or a model on this computer is named on its own gateway, never sent elsewhere.
  • 终端A line starting with ! runs as a command in the session's folder, as in a shell, without asking since you typed it; what it prints shows as a tool's output does, Esc stops it, and the model is told what was run and what came of it with the next prompt. Typed while it works, such a line waits for the turn to end, as commands do. The footer says where it will run while you type it.
  • 终端? on an empty line shows the keys over the box until the next key. /help lists the commands under headings (sessions, model, modes, tools, memory, background work, account) with every row cut to the window, lists every key, and /help <command> says what one does and the words the menu knows for it. While a command's words are typed, the footer keeps what it does.
  • 终端The box's bottom edge says how full the session's context is once there is a reply, from what the latest request carried, as the window's status bar does: quiet while there is room, amber from 70%, pointing to /compact from 85% and red from 90%. /context shows what fills it, part by part: the system prompt, tools, MCP, memory, skills and the conversation.
  • 终端The box's top edge names the session and where its folder stands in git (branch, what is changed, how far from upstream), and the window's title leads with the session's name, turns while it works and says "waiting for you" while a card or question waits; the title the terminal had comes back on leaving where the terminal keeps one. Names taken from a prompt's first lines show on one line there and in /resume.
  • 终端/rewind, /undo or Esc twice on an empty box lists every message you sent, newest first and narrowed by typing, and going back to one asks whether to restore the code and the conversation, the conversation alone or the code alone, or to summarize up to it or branch from it there; /undo no longer only takes back the last exchange. Putting the code back alone tells the model which files went back, and a rewind further back still puts them back to how they were first.
  • 全部A Claude subscription is a provider you sign in to, beside the Anthropic API key: the models your plan includes, no key to paste.
  • 全部A Custom endpoint that names the Messages route, such as a proxy's https://proxy.example/v1/messages, works: it is spoken to in Anthropic's Messages API, as Anthropic's own is, with prompt caching, effort and thinking. It used to be sent chat completions under that route, which no such proxy answers. Its models are asked for at the API's root, as Messages takes the key, so a turn learns the model's window and efforts and setup's check and the model list find them; the same goes for Anthropic's own address pasted with the route. Such a proxy is not taken for Anthropic itself: a cache marker it refuses is dropped for it as for any other gateway, and a subscription token goes to it as a bearer, without the marks of Anthropic's own client and the signed-in account's ids they carry.
  • 全部A built-in wallet the agent pays from: make one or bring one in from MetaMask, Phantom or any wallet app, on Base, Ethereum, Solana and any EVM chain. Sites that ask to be paid (x402) are paid in USDC within caps you set, asked each time or on their own below a price you choose; sends always ask. letronna wallet, /wallet, the Wallet page and Settings › Wallet.
  • 网站A terminal in the browser: the Cloud page opens Letronna itself, running in Letronna Cloud on a new thread or one you have, to type into as on your own computer.
  • 终端On a machine that is thrown away after (LETRONNA_DISPOSABLE=1, as in Letronna Cloud), the terminal takes its server, key and model from AGENT_BASE_URL, AGENT_API_KEY and AGENT_MODEL, as -p does, and saves none of it.
  • 网站Letronna Cloud takes more servers: admins add a VPS from the admin page with one setup command, and runs and 24/7 bots spread across every server.
  • 网站letronna.ai shows Letronna Cloud on the home page and has a Cloud page in the docs; phone apps for iPhone and Android are marked coming soon.
  • 全部A shorter README, and a full guide in docs/: install, the app and terminal, gateways, tools, extending, the cloud, configuration, data, architecture, building and benchmarks.
  • 全部letronna -p --output json says which window the run's requests were sized by and where it came from ("window": {"tokens", "source"}), and names the model the run used, also when the environment or --model chose it.
  • 全部With no search service chosen, search_web searches through the session's gateway where it sells search, Letronna's from the account's credit or a gateway's cheapest search model, and falls back to DuckDuckGo in the same search when the gateway cannot answer; a gateway that could not answer rests for ten minutes, with DuckDuckGo asked first meanwhile, the approval card names every place the query may go and who pays, auto mode leaves a paid search to the user, and a chosen service is still the only one used, DuckDuckGo chosen alone included.
  • 全部write_file can make a new file in the system's temp folder, such as a script that reproduces a bug, and write_file and edit_file can change one the session made there, so scratch work stays out of the project; another program's file there, or one in a folder the session did not make, is still refused, and a command that writes a new file there no longer counts as writing outside the project in a session that read a page.
  • 全部A run nobody watches that goes twelve rounds without changing the project is asked, on the end of that round's last result, to say in one line what it has established, its hypothesis and its next step, keeping on reading being a fine answer; again after twenty-four and thirty-six, the last saying to finish if it cannot name a step, and no more than three times a turn. Only an edit that went through starts the count again, never a command. LETRONNA_PROGRESS_NOTE_ROUNDS sets the rounds, with 0 for never, and letronna -p --output json reports progress_notes, first_edit_round and rounds_after_last_edit.
  • 全部letronna -p --output json says what the cache did over the run: cache_misses counts the replies the provider served fewer cached tokens than the one before though nothing sent had changed, with the tokens they lost, drops too small for /usage to name included, and history_rewrites counts the misses an earlier message changing caused, so a run's cache figures can be read net of the provider's own drops.
  • 全部A reasoning_replay setting, or LETRONNA_REASONING_REPLAY for one run, set to chunked sends DeepSeek and Kimi an empty reasoning_content with the turn's older tool calls once their reasoning comes to 8,000 tokens, and then a chunk of that at a time, so the requests in between keep the provider's prompt cache; the newest two calls always carry theirs, the calls before results already cleared go without it in the same rewrite, /usage and letronna -p --output json count a move of the cut as an earlier message changing, and a route that refuses the empty one is sent every call's reasoning instead, across turns, before the field is given up on. The default, full, sends every call of the turn its own, as before.
  • 应用Rewind to here asks whether to restore the code and the conversation, the conversation alone or the code alone, from any message, with the lines each file changed; Escape twice in an empty composer, or the palette's Go back to an earlier message, steps to your last message to rewind from, and up and down step to the others.
  • LinuxWhere commands get fewer CPUs than the machine has, as in a container held to a CPU quota, commands and jobs start with OMP_THREAD_LIMIT, OMP_NUM_THREADS, OPENBLAS_NUM_THREADS and MKL_NUM_THREADS set to the CPUs they get, unless the user set one of them or another thread-pool size already, and the system prompt says how many they get and names the four when it set them, as OMP_THREAD_LIMIT caps even a count a command sets itself. Where the counts match, the prompt and the commands are as before; the log's machine event gives both counts.
  • 应用A session is named by a model once its first reply is in, from the first message and the start of the reply: automatically Letronna's quick model, which its server picks, for a chat on the Letronna gateway, checked by Jev, else the side model, else the chat's own; a chat on your own key, a company's gateway or a model on this computer is named on its own gateway. Settings › Model › Session names switches it off or picks the chat's own model or one of your own, and Name it again in a session's menu asks for a new name; a name you gave is never replaced.
变更 31
  • 终端The screen sends only the rows that changed since the last frame, inside a synchronized update where the terminal knows it, so a streamed reply sends about a third of what it did and flickers less over ssh and on a console; the pointer moving over the window is no longer read or drawn for, and a frame no longer copies the whole conversation.
  • 终端A tool's output shows its first twelve rows, counted on screen so one long line cannot fill it, and the rest folds under them: a click or Ctrl+O shows it all and folds it again. An edit that goes ahead without asking shows its diff after it, as one asked about shows it before, and a changed line longer than the window goes on under itself in a diff instead of being cut at the edge.
  • 终端A reply's fenced code shows as code: the fences go, the language is named dimly over it, the code is coloured as diffs are, and ** or backticks in it stay as written. Headings show bold without their #s, a bold or coloured run wrapped over rows stays so on each, a reply that opens with bold keeps it, and a resumed session's replies are drawn the same way.
  • 终端/clear starts fresh in a new session on a clean screen, as in Claude Code, with the session left behind in /resume; Ctrl+L clears the screen, which is what /clear did. /status shows on one screen the version, the session and its file, the folder and where it stands in git, the model, the mode, the account, how full the context is and the MCP servers, and /export [file] writes the conversation as Markdown, by default to a file in the project named after the session, never over one that is there.
  • 终端A turn's clock runs from its start: the waiting line counts the whole turn rather than starting again at each step, the footer keeps it going after the answer starts streaming, and the caption under the last reply ends with how long the turn took. The waiting line's word changes from one wait to the next, a long command is cut so the time stays in view, and every footer hint is cut to the window instead of wrapping in a narrow pane.
  • 终端Shift+Tab steps through asks first, edits without asking, plan only and auto decides (and bypass once chosen), never onto "allowed calls only", which refuses whatever would ask and stays with /mode dont-ask; Alt+M steps too, and each mode says in the footer for a moment what it lets run. The terminal starts in the window's default mode when no flag picks one, a mode switched while it works holds from its next tool call, and /plan takes on or off and goes back to the mode it was turned on from.
  • 终端Ctrl+C stops a reply and stays, where it stopped it and left with the conversation; it turns a card or a list down and skips a question as Esc does, clears what is typed, and leaves only when pressed twice on an empty box. A line cleared with Esc comes back with ↑, though never an answer to a question or a secret, and Esc stops a reply in one press after a drag-copy.
  • 全部A folder write_file or apply_patch created for a file counts as the session's own, so a session that read a page may delete it without asking, like the files it made, as long as nothing in it was there before it or is a link.
  • 全部A model whose window nothing gives is sized as if it held 64,000 tokens when its server takes a key, as a gateway or a LiteLLM proxy does, instead of the smallest window, so old tool results are cleared far later; a server without a key, such as Ollama, keeps the small window, and LETRONNA_CONTEXT_WINDOW sets it for a keyed proxy in front of a small local model.
  • 全部Old tool results are cleared only once a request comes near its budget, and then in chunks of half the window rather than every eight results, so the provider's prompt cache keeps serving the requests in between; results under 600 characters are never cleared, and a cleared one reads as cleared from history, with the call to repeat, rather than to save room.
  • 全部While the provider's prompt cache serves the session, the window holds up to four times the default cap: once the newest three replies' usage says at least half of their input came from the cache, a model whose window holds twice the cap keeps its history and its old tool results up to 256,000 tokens, or three quarters of its window if that is less, since a miss on everything after a cleared result costs more than the tokens it saves. The places the window can start, the chunks results are cleared in and the share of a tool result sent stay as under the cap, so nothing moves to a new place; a run of misses, an overflow, a route whose usage never counts the cache and a context_cap the user set keep the cap, and once the cache serves the session again the window and the cleared results stay where the cap left them rather than moving back. The 4,000 tokens kept free for subfolders' instruction files are kept only once a result has touched a folder that has one.
  • 全部/usage names a cache miss that cleared results or reasoning no longer sent back caused as "an earlier message changed", and says of one where nothing Letronna sends changed that the provider served it without the cache.
  • 全部web_fetch and search_web say why a request got no answer, such as a name that could not be looked up or a connection turned down, and once one to the web could not connect, other than one a page redirected to, both answer at once that they are unavailable for now, naming the host and why, rather than each trying and waiting to fail: for two minutes in a session someone watches and for the rest of a run nobody does, unless a request to the web gets through; pages on this computer or the local network are still fetched.
  • 全部letronna -p sends about 600 fewer tokens of tools and prompt with every request: the helpers' and the background jobs' lists are found through find_tools like the other less used tools, and nothing it is sent names what such a run lacks: helpers in the background, wake_me, list_sessions and /resume, or Letronna's own skill on using Letronna, whose index and skill tool go too when no other skill is on.
  • 全部A run nobody watches, such as letronna -p, is told the commands on PATH and what its project folder held at the head of its first message rather than in the system prompt, so runs in folders that hold different things send the same system prompt and tools, and a provider's prompt cache serves them across runs; sessions someone watches are unchanged.
  • 全部Claude models reached over chat completions through any gateway, such as a LiteLLM or Portkey proxy or a company's own, not only OpenRouter and the hosted gateway, mark where Anthropic's prompt cache ends, so each new message is written to the cache once and read from it on the next request instead of paid in full first. A route that turns the request down as bad (400 or 422), in whatever words, is sent it again once without the markers, while the requests beside it keep theirs; if that one is answered, that gateway and model go without them for the rest of the run, if it is turned down too the markers were not at fault and stay, and if it is stopped or never answered nothing is decided.
  • 全部The system prompt's rule on checking a change now says to run the check nearest it first, the reproduction and the one test file that covers the changed code, once, and then not to re-run, re-read or diff what passed, and to name a failure the change did not cause rather than prove it pre-existing; a new rule says a bug reported through one example is fixed at the cause its other inputs and entry points share, and what to do when a report does not reproduce as described; and the rule on making calls in one reply names commands and checks alongside reads and searches. A run nobody watches is also told that, with nobody to ask, the task text and the project folder are what it has, so it decides from them rather than searching the computer or the network for what was meant. The new rows are shared-cause and scope-of-task to LETRONNA_PROMPT_RULES.
  • 全部A call that brings back what an earlier one in the turn brought is told so on the end of its result ("Same result as round 3"), past the spellings that change nothing: a command with its spacing, a cd into the project, 2>&1, | cat or a | head -N or | tail -N changed, a read of the same file starting within the same fifty lines, a search in another case, and a result that differs only in its commit ids, addresses, dates, timings or seeds. A third such result gets the note that already said to change approach, which now counts these too; a run nobody watches is still stopped only by the call spelled the same way five times. Only an edit that went through starts the count again, and a call turned down or made twice in one reply is not counted.
  • 全部When a call that runs on its own, such as an edit or a command, fails, the calls the same reply queued behind it are answered "Not run: an earlier call in this reply failed; resend it if still wanted" rather than run, so a check sent along with an edit never reads as if it had checked the edit that did not land. A command that ran and exited with a code is no failure here, so two suites sent together each report their own; reads and searches run at once and a miss among them stops nothing, nor does a memory save that fails, as one to a full page does, nor a call the user, the gate or a stop kept from running, such as a save the user did not ask for or a call to a tool there is not.
  • 全部read_file says what a page holds (about 7k characters, with limit left out) and that reads of several files or regions go in one reply; search says the same of several patterns or folders, and run_command of independent commands, each with its own exit code. Where calls run one at a time, those clauses go as the batching rule does. read_file names its kinds of file in a few words, search no longer spends a sentence on when documents are searched, and search_web's note on snippets is shorter.
  • 全部A run nobody watches, such as letronna -p, is told to remove what it made only to test from its outputs' folders before it ends, unless the task asks for it or the project's own build keeps it there, and to write only the answer, in the form asked, to a file meant for one; that leaving inputs alone and not deleting data hold for its own steps, not for what a program it was asked to write should do, which may run on more than the sample in hand; to get a result through the library or tool the task names, calling it correctly when a call fails rather than going around it; and to try a helper that transforms data on a tiny input whose answer it knows, then check the final output with separate code.
  • 全部A command moved to the background at its time limit names stop_job beside wait and read_job, for a job no longer needed.
  • 全部A run nobody watches, such as letronna -p, that changed no source but made or changed a file its request names, such as out.csv, by any tool or command, is now sent back once to check it against the requirements its request states, as one that changed source is, worded for the file: to check what it holds now with a short new script that reads only it and the task's inputs and reuses none of the code that made it, since a mistake there agrees with itself. A review helper it starts for that check, here or after a change to source, is asked to work out what it checks with code of its own too. Only the paths and file names in the request are looked up, never the whole folder.
  • 全部At 80% of LETRONNA_DEADLINE a run is told to remove scratch files, logs and binaries it made only to test from its outputs' folders, unless the project's build keeps them there, before it improves its outputs; so is one whose reply is stopped past that point for thinking too long, and one that begins past it, as a later turn over stdin can.
  • 全部run_command no longer reads as if every command ran in a sandbox: its unsandboxed option says a command ran in one only when its result has a line starting (ran sandboxed, and to use it after such a run failed for the network or a write outside the project, or when an error says the command cannot be sandboxed, so a run whose commands are not confined, such as letronna -p --yes, no longer takes an install or a write outside the project to be refused without trying it. What the sandbox and approvals allow is unchanged.
  • 全部In a run nobody watches, such as letronna -p, a schedule or a chat app, auto mode's judge is waited for up to a minute rather than 20 seconds, and may write up to 8,192 tokens with its thinking rather than 2,112, fewer on a model known to take fewer, so a model that thinks at length reaches a verdict instead of having the call refused, or put to the chat, for want of an answer; sessions someone watches keep 20 seconds, the judge still refuses or asks when it cannot answer, and it is never waited for past a run's LETRONNA_DEADLINE.
  • 全部A run nobody watches, such as letronna -p, is told that even opening a file with a program can change it, as sqlite3 can fold a database's write-ahead log into it or delete the log on closing, and, before running such a program on an input it is to recover data from or repair, to copy the input with the files that go with it and try the program on the copy first. On Terminal-Bench 2.0, three runs lost a database's log that way before copying it.
  • 全部A run nobody may be watching, such as letronna -p, a schedule or a chat app's, drops a reply with no tool call that goes round on the same few words for 2,000 characters or more, writing almost no line or sentence in its later half it had not written already, or that is still empty after it was asked once to say something, and sends the same request again after a rest of 2, 4 and then 8 seconds, three times a round at most, rather than taking the filler as its answer, carrying it in every later request, or ending on the empty reply. Data that brings a new line every few lines, such as a log, a table or most JSON lists of records, is kept; a long run of lines all alike, such as a grid of zeros, may be asked for again up to three times before the fourth is kept. A reply that spent the run's budget is kept. A dropped reply's tokens still count in the run's token totals and its budget, though not in the cost it reports, as an empty reply's never did. The app shows a chat app's run saying so when a reply it showed is dropped; turns typed in the app or the terminal, and an editor's over ACP, are unchanged.
  • 全部A run nobody watches, such as letronna -p, that ends with a path its request names still not there, such as src/run.js or /srv/app/report.pdf, is sent back once to weigh it against the request, in the same check that names a missing output under out/, unless it can neither write files nor run commands. A path counts, whatever its kind, when it was not there as the run began and is in the project or its folder is there as the run ends. Only one written with its folder counts, not a name alone; not one in an example, in code or a diff, a placeholder, such as <name> or YYYY-MM-DD, a URL, or one with a line or port after it, such as src/app.js:42; not what a command the request shows writes, such as the file after -o or >; nor one in a sentence about reading, removing or moving files, or saying not to make it, to make it later or that it is optional or not needed.
  • 全部On a run given LETRONNA_DEADLINE, the reply in place of one stopped for thinking without writing anything goes on from that thinking, which comes with the notice to write now, trimmed to its start and end when long; the reply asks for low effort, or the nearest the model offers, never more than the run was set to, and the run's own effort comes back with the next reply. A run on automatic effort whose model was not thinking, such as one on Anthropic's API that thinks only when asked, is not asked for an effort, which there would start it thinking for the rest of the run. The notice says whether the reply reached its output limit or thought past its share of the time left; before, it said it was stopped for thinking either way, and the next reply planned again from nothing.
  • 全部On a run with a deadline, such as letronna -p given LETRONNA_DEADLINE, a command given longer than the default two minutes carries on in the background, with its output so far, once it has had half of the time left, and two minutes at least, or once past two minutes as soon as a notice such as a background job's exit is waiting, so the model hears it now rather than after the command's own limit. Nothing is stopped; runs with no deadline, helpers and sandboxed commands wait as before.
修复 36
  • 终端Chinese, Japanese and Korean text and emoji take the two columns they fill, so replies wrap whole instead of losing the end of every row, and the box, the queued lines, the lists and a selection line up with them. A reply, a file or a command's output can no longer drive the terminal: only colour and style get through, so text carrying sequences that retitle the window, write the clipboard, move the cursor or leave the conversation's screen shows as text without them, even when a reply's sequence is split between the pieces it streams in. Tabs show as four spaces.
  • 全部The wallet keeps working when a public RPC refuses it: each built-in network has other free RPCs it moves on to when its own rations, refuses or cannot be reached, starting next time with the one that answered; an address you set is still the only one used. A Solana token's balance is read from the account wallets keep it in, which every RPC serves, where it searched the owner's accounts, which Solana's public RPC rations and other free ones refuse, so USDC there read as none and x402 payments in it failed. A token whose balance could not be read is listed with why, and a price is said to be unpayable because the balance could not be read, not because the wallet holds too little.
  • 终端/thinking, /search, /search keyless, /notify, /voice, /verify and /memory-review take on or off, where any word flipped them, so /notify off could turn notifications on; alone they still switch. Enter on a name more than one command starts with, such as /u, fills in the first of them rather than running it, /effort with a word that is no level says which levels there are instead of switching to auto, /mcp with a word that is none of its own says so instead of asking which server, an unknown command says how to send it as text, and /jobs heads finished jobs as finished.
  • 终端A session first named after a message of several lines no longer has a line break in its name, as the window's never had.
  • 全部A value after Authorization: or Proxy-Authorization: is hidden again in tool output and logs, as it was before names were read word by word.
  • 全部A run that read untrusted words may delete only a real crash dump it left (an ELF core, or the JVM's pid-named files), not a project file named like one, such as app.core.
  • 全部A job told how to keep a server up past a -p run is told to start it in a plain command, not as another job, which the run would stop with it.
  • Linux**, **macOSCommands, jobs, hooks and checks start with Ctrl-C and Ctrl-\\ at their defaults, sandboxed ones included, so one can be interrupted on purpose, as with kill -INT or ^C sent to a terminal job, even when Letronna was started with both ignored, as a script's cmd & starts it. Before, Python run that way raised no KeyboardInterrupt. A Ctrl-C at Letronna's own terminal still never reaches them, and Letronna itself still keeps an ignore it was started with.
  • 全部A run nobody watches, such as letronna -p, that was sent back for open items on its checklist and then changed them, ticking, adding or beginning one, is sent back again with what is still open when it would end, unless it was already sent back for that same list, so a run that leaves them as they were, or changes them back, still ends. Before, it was sent back once a run, so one sent back early, on a reply before its last, could later end with items open and hear nothing.
  • 全部A request a gateway turns down as too big (HTTP 413), as one carrying a few large pictures can be, goes again at once with its oldest pictures left out until it is under the limit the refusal names, or a quarter smaller when it names none, each with a line saying that reading its file again shows it, or for the newest that a smaller copy may fit. A 413 for too many tokens a minute, as Groq sends, through OpenRouter too, is not taken for one. The gateway's limit holds for its later requests in the run, and only a request with no picture left to leave out is cut down as an overflow is, where before the one resend still carried every picture, was refused the same way and ended the turn.
  • 全部A tool's result that saved a picture a request no longer carries says so, where before it still said the picture follows: a request sends only the 4 newest, and the result now says to keep what is needed from a picture while it is sent; once a model turns pictures down, each such result says what the picture is and how else to look into it, as an attached one does. Browse's older screenshots, left out by design, say nothing, and the session keeps every result as it was.
  • 全部read_file scales a picture down to 1,568 pixels on its long side whenever it is longer, as attaching one does, rather than only when the file is too big to send.
  • 全部An error a gateway sends inside a reply it has already begun to stream, such as "every lender we tried refused this request (HTTP 502)" after two minutes of keep-alives, is tried again as the provider's own trouble, and then handed to a fallback model if one is set and none of the reply was shown yet, rather than ending the run as a failure nothing explained. A status its words name is read as the reply's own would be, so a 429 is waited out, a 408 is tried again, a 413 is taken for a request too long for the window and another 4xx ends the turn as a bad request, unless it is one that would blame the key, the credit or the base URL, which the gateway has just accepted. An error whose code or type is the provider's own word on the request, such as a refused prompt or an invalid_request_error, still ends the turn as before, as does one that gives its status in a field, as TGI's does.
  • 全部letronna -p --input-format stream-json keeps to LETRONNA_DEADLINE as a -p question does, counted from the run's start: at 80% the turn running is told to write its outputs, at the deadline it stops with a result line whose status is deadline, and a message sent after that is not run. Before, a run driven over stdin, as Harbor drives one, ran on until the harness killed it, with no result line.
  • 全部A run nobody watches is told never to look online for a copy of its task, its tests or its answer. Since the scope rule was reworded on 11 October, nothing said so, and on Terminal-Bench 2.0 six of 89 runs searched for their own task, three of them downloading its published solution or tests and running them.
  • 终端A session resumed with -c or -r shows its conversation at once, where it stayed off the screen until a key was pressed, and shows the whole of it, up to its last thousand messages, where it showed the last twelve with no way back to the rest; a replayed tool call names what it ran on, as a live one does. /undo and /retry redraw the same way.
  • 终端Commands work in the open session's folder rather than the one Letronna started in, so after --worktree, or with a session from another project resumed, /where, /memory, /skills, /help, /undo, /retry, /image, /preview, the / menu and your own commands read and change that session's files. /new from a session in a worktree of its own gives the new one a worktree too, made from the same checkout, where it used to start in the checkout the worktree was there to spare.
  • 全部/goal stop, /goal off and /goal cancel end the goal as /goal clear does, where they set a goal of that one word to work towards.
  • 终端Leaving says which session it was and how to come back to it (Saved "…" · letronna -r 16), on the screen the terminal is given back. A SIGTERM or a closing terminal ends the session as leaving does, with the terminal given back and jobs and worktrees seen to, where it left the terminal in raw mode on the conversation's screen; a crash leaves the conversation's screen and the mouse before its message, so the message stays readable, and a caught panic in a tool's thread no longer turns raw mode off under the box. NO_COLOR takes the colours away and keeps the box, where it turned the box off.
  • 终端An approval card or a question from the model that comes up while you type no longer takes your keys: letters go on into the box behind it, an Enter pressed while you are still typing sends your line rather than a yes, and a digit no longer picks "always allow". A line sent while it worked never answers a question asked after it, a secret one included; Esc at the model's own question stops there, and a tall card keeps its choices on screen.
  • 终端A message typed with // to start it with a slash is sent as words again by /retry, and comes back to the box that way, rather than being run as a command.
  • 全部letronna -p --input-format stream-json given LETRONNA_DEADLINE is told in its first request how long it has, and a reply that only thinks past its share of the time left is stopped with a notice to write its outputs now, as a -p question is.
  • 全部In letronna -p, --input-format stream-json included, a command started in the background, or moved there at its time limit, is told that the run stops its background jobs when it ends, and to start one that must keep running after it detached instead, as with setsid nohup (nohup on macOS, Start-Process on Windows), and check that it answers. Before, a server started as a job was reported running and then stopped with the run. The jobs are still stopped; the terminal and the app, whose jobs run on after a turn, are unchanged.
  • 全部A run given LETRONNA_DEADLINE hears its 80% warning even while a command or a wait holds it: the call comes back then, a command still running carrying on as a job with its output so far, and the warning counts the seconds left as the run reads it rather than as it came due. Past the warning, a call stops waiting shortly before the deadline, so the run sees what it printed before it is stopped; either way the result says the command is still running and offers wait or stop_job. Before, a run inside a long command read the warning only once the command was over, and at the deadline the command was ended unseen.
  • 全部A tool call whose arguments end before the call is complete, with no output limit reached, tells the model that its output can end where it writes a special token such as <|endoftext|> whole and, if the content holds one, to build it from parts at run time, before the advice to send less in one call. Before, it was only told to send less, which cannot help a file that holds such a token.
  • 终端A line typed and entered while Letronna was starting is sent, where its enter used to be lost and the next words joined it. \ then Enter and Ctrl+J start a new line everywhere, and Shift+Enter does too in terminals that can tell it from Enter (they are asked to); the opening screen and /help name the keys that work in yours. Option+arrows and Alt+B/F move a word instead of typing a letter, Alt+D and Alt+Backspace delete one, Ctrl+P/N step like the arrows, and AltGr types its character on Windows.
  • 终端Copying a selection reaches the clipboard in terminals that ignore the escape the terminal was asked with, such as Terminal.app and tmux, through the system's own clipboard command (pbcopy, clip, wl-copy, xclip or xsel), and the footer says "copied" only when that took it; over ssh it is left to the terminal, as the command would fill the far machine's clipboard. What is copied is the text as written: a line wrapped over several rows is one line again, without the indent or the mark in front of it. /copy copies the last reply as written, Markdown and all, and /copy 2 the one before it.
  • 终端Scrolled back, the view stays on what you are reading while a reply streams under it, where every word pulled it to the bottom, or a fold closing under it moved it, and the footer counts how far back it is; sending a message or End goes back to the bottom. In a long prompt the caret sits where you type, on the wrapped row, the box shows the rows around it however long the prompt grows, and ↑ and ↓ move between wrapped rows before stepping through what you sent before. Chinese, Japanese, Korean and emoji take their two columns there, so their rows stay inside the box.
  • 全部A model its gateway lists only under another vendor's path, such as deepseek/deepseek-v4.1-flash listed as opencode-go/deepseek-v4.1-flash, is sized by that listed window instead of the smallest one, so old tool results are no longer cleared after a few thousand tokens.
  • 全部A web fetch or search that never reached its server, as when this computer is offline, no longer counts as having read a page, so a session that carries on from its own files is not asked about, or refused, its later deletes and sends; an error that quotes what a server wrote still counts, and the server's words in a failed secure connection, a redirect's address or a file's kind are now fenced as such.
  • 全部On DeepSeek and Kimi, the reasoning sent back with the tool calls of the turn in progress counts toward the window, so a long turn clears old results before its requests outgrow the model.
  • 全部A gateway that reports what its prompt cache wrote as prompt_tokens_details.cache_creation_tokens, as some that serve Claude over chat completions do, is read: a reply whose prompt the cache wrote counts it as input, written to the cache, instead of only the few tokens sent fresh, in the usage line, the window's fullness, /usage and letronna -p --output json.
  • 应用Rewinding to your message puts its text back ahead of what you had typed instead of over it, and its pictures with it, and the composer takes the keys again; Rewind and Retry are off while a run holds the session, where they did nothing, and a rewind something started under says so.
  • 应用Undo these and the Changes tab's Revert tell the model which files went back, so it reads them again before changing them, and a rewind further back still puts them back.
  • 全部Command output, pages and MCP results no longer hide a line's value as a secret because its name merely holds a word such as key or token: a Python KeyError: '...' and any other error or warning keep their message, and lines such as keyboard.drv=keyboard.drv, ssh-keygen: generating new host keys and smtpd_tls_key_file=/etc/ssl/private/x.key are shown whole. A name one of whose words ends with key, token, secret, password, passwd, credential or auth, with or without an s, as PGPASSWORD, API_KEYS and passWord do, still has its value hidden, unless its last word is file, filename, path, dir, url, name or type, with or without an s.
  • 全部web_fetch trusts the system's certificates as well as its own, read from SSL_CERT_FILE or SSL_CERT_DIR where either is set, so behind a network that re-signs HTTPS with its own authority it reads the pages curl and git read there instead of refusing every one as from an unknown issuer; a certificate there it cannot use is passed over. The gateway's connections keep to the built-in roots.
v0.1.0-alpha.32026年10月6日

亮点

  • 全部助手可以并行工作、分叉、等待更多任务并共享任务列表;工作流可通过你批准的脚本运行多个代理。
  • 全部Auto 模式:由你自己的模型担任裁判,决定原本需要询问的操作;在 macOS 和 Linux 上,命令也可以改为在系统沙箱中运行。
  • 全部支持基于 HTTP 和 OAuth 的 MCP 服务器、来自 git 仓库的插件,以及通过 ACP 在 Zed 或 JetBrains 中运行 Letronna。
  • 应用浏览器在聊天旁打开,占一半空间;长输出显示为简短预览;进行中的工作在输入框上方汇成一行;新增 Files、Changes 和 Jobs 标签页、Ctrl+K 命令面板,整个窗口都可用键盘操作。
  • 聊天应用支持 Slack、配对码配对、双向收发文件和语音消息,letronna serve 无需打开窗口即可回复。
  • 全部无人值守的运行会完成交代的任务:在被截断或空回复后继续、完成清单、读取输入、检查要求生成的文件,并知道没有人能回答它。letronna -p 支持截止时间、回答用的 JSON Schema,以及从环境变量读取服务器。
  • 全部定时任务拥有独立模式,记忆可查看和编辑,窗口在工作和空闲时占用的内存和处理器大幅减少。
新增 128
  • 全部直接在聊天里使用 Letronna Cloud:让它在云端运行任务或让机器人 24/7 在线,询问运行状况,或让它停止、重启。/cloud 已移除。
  • 网站letronna.ai 上的 Cloud 页面显示你托管的内容(机器人和应用)及其输出、停止、启动、重启按钮和各自花费,以及你发送的运行任务。
  • 网站用量页显示文本、媒体和云端的花费,按天列出三十天,每个模型的公开价格与你实际支付的金额并列,并显示节省了多少。
  • 全部当你要求保持在线时,Letronna Cloud 会 24/7 运行机器人和其他常驻程序:停止后自动重启,崩溃循环或额度用完时停止,按小时计费。用 letronna cloud apps、logs、down 和 up 管理。云计算现在约 $6 每 GB-月,一个小机器人在线一整月约花 $0.75 额度。
  • 全部Letronna Cloud 让应用保持运行:云端运行可以留下任意服务器(Next.js、Rust API、任何监听端口的程序)并提供独立地址;有访问时唤醒,10 分钟无访问后休眠,只在唤醒期间计费。14 天未使用的线程会被清理。
  • 全部生成页面的云端运行会提供一个私有在线链接,无需任何进程运行即可访问;letronna cloud relay on 让云端在这台电脑关机时回复你的 Telegram 聊天;letronna cloud support <run> on 允许客服查看某次运行,每次查看都会记录。
  • 网站云端管理位于 letronna.ai/dashboard/admin,用你的账户登录:资源池、运行中的任务、用量和审计日志。
  • 全部代理会选择在哪里构建你要的东西:单个独立页面、图表或小应用先做成文件供你预览,然后是这台电脑上的项目,只有这台电脑做不到时才用 Letronna Cloud(需要你同意,因为会消耗额度)。
  • 应用发送后在输入框中按 Enter 和 Escape 可回应卡片;Tab 依次经过每个开关,Space 切换;在 macOS 上窗口任意位置按 Cmd+Q 退出 Letronna。
  • 全部Letronna Cloud (Pro):在终端用 letronna cloud "task"、在窗口用 /cloud <task>,即可在 Letronna 的服务器上运行任务,可指定仓库或不指定,并带回结果;线程可延续工作,两条消息之间在服务器上休眠。从你的额度中扣费。
  • 全部letronna doctor 检查配置,本地日志和崩溃文件帮助排查问题。
  • 应用窗口采用 letronna.ai 的配色;可在设置中选择配色以及是否显示胶片颗粒。
  • 全部Letronna 知道每个模型的上下文窗口和输出上限。
  • 全部助手可以按校验过的格式回答。
  • 全部模型知道今天的日期。
  • 全部Letronna 工作时可以继续发送消息:在窗口和终端中,它会在回复的下一步送达模型。
  • 全部助手类型(内置的和来自你自己文件的)在整棵助手树中共享一个 token 预算。
  • 全部助手的对话保存在其会话旁,不出现在会话列表中。
  • 全部在窗口和终端中查看、引导和停止工作中的助手,并回应它们的审批请求。
  • 全部从对话中分叉出助手,用 /btw 问个题外话。
  • 全部保留的助手空闲等待更多工作,收到消息时唤醒。
  • 全部一个会话的代理共享带负责人和阻塞项的任务列表。
  • 全部助手可以通过校验过的 schema 回答,即使到了轮次上限。
  • 全部工作流运行会记录日志,并重放已完成的部分。
  • 全部Letronna 在自己的记忆中为每个项目做笔记,拒绝存入密钥和植入的指令。
  • 全部/init 让模型编写项目的 AGENTS.md,AGENTS.md 或 CLAUDE.md 可以用 @path 引入其他文件。
  • 全部/usage 按会话、日期和模型统计 token 和花费;用量行显示模型窗口的占用程度。
  • 全部每个会话保留自己的模型和 effort。
  • 全部你自己的 hook 命令可以阻止调用或让一轮继续。
  • 全部模型能看到你附加的图片以及它的工具打开的图片。
  • 全部支持基于 HTTP 的 MCP;服务器支持变量、工具过滤和独立启动超时,停止后自动重启,mcp.json 变化时重新加载。用 letronna mcp 添加。
  • 全部大量 MCP 工具改为按需查找,不再随每个请求发送。
  • 全部任何工具都可以关闭,无法使用的工具不会提供。
  • 聊天应用在 Slack 中与 Letronna 对话。Telegram 聊天通过配对码配对,只回复其所有者。
  • 聊天应用完整、带格式的回复,附带 Allow/Deny 按钮;文件、照片和语音消息可双向收发。
  • 终端通知在一轮进行中和提示之间显示并被接收;工作时输入的内容显示为排队中,可以撤回。
  • 全部立即发送:排队的消息无需等待当前步骤即可送入。
  • 应用浏览器面板的指点模式:点击页面上的某处并评论,引用会放入输入框。
  • 全部工作流:脚本在沙箱化的 JavaScript 引擎中运行,Letronna 可在你批准后运行它写的脚本,Crew(@crew 或开关)让一条消息启用编排。
  • 全部助手可以在自己的 git worktree 中工作。
  • 全部/loop 和 /heartbeat 让一个会话持续运行;会话可以朝着目标一直工作,直到检查结果说停止。
  • 全部把你自己的提示词和技能作为斜杠命令运行,并让模型保存、修补和撤销它学到的技能。
  • 全部输入 @path 附加文件、行范围和文件夹;输入框在 / 后提示命令,在 @ 后提示引用。
  • 全部选择一种回复风格,或自己编写。
  • 全部回复可在流式输出时朗读;语音输入会在光标处录成文字。
  • 全部你附加的图片可以通过聊天的图像网关编辑,长视频渲染作为后台任务运行。
  • 全部计算机操作对每个应用只询问一次,支持 macOS 和 X11 下的 Linux。
  • 全部浏览器可以上传项目文件、保留下载、把页面存为 PDF、截取整页、悬停、拖动、等待文字出现、在其他站点的 frame 中操作,并批量执行步骤。
  • 全部抓取的页面保留链接,PDF 保存为文件;网页搜索可以限定某些站点、排除其他站点或只搜最近内容。
  • 全部MCP:读取资源、把提示词作为命令运行、登录使用 OAuth 的服务器,工具获得唯一名称和干净的 schema。
  • 全部插件可从 git 仓库带来技能和 MCP 服务器。
  • 全部其他代理可通过 MCP 使用 Letronna 的浏览器和媒体工具,Zed 和 JetBrains 编辑器可通过 ACP 运行 Letronna。
  • 全部OpenAI 模型可以在一个补丁、一次确认中修改多个文件。
  • 全部编辑后语言服务器报出的新错误会送达模型,修改过文件的一轮会被要求构建或测试一次。
  • 全部任务自身的模型失败时,会用备用模型继续。
  • 全部模型在子文件夹中工作时,会读到该文件夹的 AGENTS.md。
  • 全部/insights 按日期、小时、工具和模型展示最近几周;/diff 显示项目中和本会话中的改动。
  • 全部运行结束或需要你时,通知会提醒你。
  • 全部在终端或窗口中继续 Claude Code 或 Codex 的会话。
  • 全部记忆可以在一次调用中做多处修改,要么全部成功,要么全部不做。
  • 全部密钥和 token 移入钥匙串或凭据管理器。
  • 终端其他程序可以通过 stdin 以 JSON 行驱动 letronna -p,--mode accept-edits 可在项目内编辑。
  • 应用Ctrl+K 打开操作、页面、会话和模型的命令面板,全局快捷键可在任何地方打开快速输入栏。
  • 应用聊天旁新增 Files 和 Changes 标签页:浏览和预览项目,审阅和还原本会话的编辑,并暂存、提交和推送。
  • 应用Capabilities 新增 Tools 和 MCP 标签页,带逐个工具的开关,并新增 Plugins 页面。
  • 应用首次运行的设置页、数据文件夹配置档,以及按会话状态和项目分组的侧边栏筛选。
  • 应用HTML 和 SVG 产物可以预览,失败的一轮会在聊天中说明原因并给出修复办法。
  • 应用在 Messaging 页面设置 Slack,并用配对码配对成员。
  • 全部Auto 模式:由你自己的模型担任裁判,决定原本需要询问的操作,每次调用带标签,并列出它的决定(终端中用 /decisions,窗口中有 Decisions 列表)。
  • 全部在 macOS 和 Linux 上,Accept edits 和 Auto 模式下,命令可以在系统沙箱中运行(无网络,只能写入项目)而不用询问。
  • 全部保存的工作流变成斜杠命令,并内置 /review;在终端和窗口中查看、暂停、停止、恢复、跳过和重试工作流运行及其代理,并阅读单个代理的记录或运行日志。
  • 全部定时任务由 core 在任何打开的 Letronna 中运行,绝不重复,各有独立模式;模型可以添加、列出和删除它们,定时任务、聊天应用和 /bg 在聊天旁运行。
  • 全部letronna serve 无需打开窗口即可回复聊天应用,窗口打开后接管。
  • 全部Letronna 可以每 10 条消息回顾一次需要记住的内容;用 /memory 或设置中的 Memory 页面查看和编辑记忆。
  • 全部按需总结之前的轮次,立即总结或总结到指定轮次。
  • 全部旧会话可在指定天数后删除,回退后文件中不会留下被撤回的内容。
  • 全部到达时间限制仍在运行的命令会作为后台任务继续运行。
  • 应用窗口的每个部分都可用键盘访问;一连串工具调用折叠成一行;完成的一轮列出它修改的文件;Jobs 标签页实时显示后台任务;状态栏弹窗显示上下文被什么占满。
  • 应用浏览器在聊天旁打开,占一半空间,也可以占满;代理浏览时,页面以小窗显示在聊天角落。
  • 应用长输出显示为简短预览:命令的最后几行(失败的显示为红色并保持展开)、文件的开头几行、编辑显示为 +a −b 并附 diff、思考显示为“Thought for 12s”;图片在窗口自带的查看器中打开。
  • 应用仍在工作的助手、工作流运行和任务,以及计划的步骤,在输入框上方汇成一行;模型写长调用时,回复显示“Writing app.rs…”。
  • 应用审批卡片:Enter 允许,Escape 拒绝,一次回复涉及多个调用时显示“2 of 3”。
  • 应用侧边栏把空间留给会话,其他页面放在 More 下;Ctrl+Tab 在最近会话间切换;空聊天列出最近会话。
  • 应用选择图像、语音或视频模型后,发送的内容就由它生成。
  • 全部网站的验证拦住代理时,它会等你通过,然后自己继续。
  • 全部浏览器能操作网站自带的下拉框、按 ref 滚动面板、在日期、时间、颜色和范围字段中输入、说明点击命中了什么,并在读取页面前等待点击触发的内容。
  • 终端技能和 MCP 提示词不再挤占 / 菜单:输入时才出现,也可在 /skills 和 /mcp 下找到。
  • 全部无人值守的运行(-p、定时任务、/bg、编辑器、聊天应用)在回复被截断或为空后继续,清单未完成时会被退回一次,并在结束前检查请求要求的文件;-p --output json 列出仍有问题的地方。
  • 全部run_command 支持最长半小时的超时,适合较慢的构建和测试。
  • 应用预览默认自动打开,可关闭。
  • 终端列表用方向键操作,Escape 拒绝。
  • 全部新增 Harness-Bench 脚本,为 letronna -p 评分并逐个任务比较两个构建。
  • 终端letronna -p --json-schema 要求以 schema 校验的 JSON 回答;--output json 给出会话、模型和花费,并统计被拒绝的调用。
  • 终端LETRONNA_DEADLINE 在 -p 运行用掉 80% 时间时提醒它写出结果,然后停止它;AGENT_BASE_URL、AGENT_API_KEY 和 AGENT_MODEL 无需任何配置即可让运行指向某个服务器。
  • 终端letronna --dump-config 打印 -p 运行将获得的设置和限制。
  • 全部设置中的 context_window 和 max_output,或 LETRONNA_CONTEXT_WINDOW 和 LETRONNA_MAX_OUTPUT,为未知模型提供真实限制;vLLM 和 Groq 的模型列表也会设置它们。
  • 全部run_command 支持 workdir,PATH 中有 bash 时用 bash 运行;无界面运行中的长命令会在后台继续。
  • 全部定时任务可在指定日期和时间运行一次,模型知道电脑的时区。
  • 全部浏览器可以逐字符按键输入,输入后会读回字段内容,文字没输进去时批量操作会停止。
  • 全部抓取的页面会显示表单及其隐藏字段,并省略标记中隐藏的文字。
  • 全部把 parallel_tool_calls 设为 false 会一次只运行一个工具调用;助手类型的 effort、后台和隔离设置生效。
  • 全部LETRONNA_ALLOW_HTTP=1 允许明文 HTTP 访问局域网主机;LETRONNA_DISPOSABLE=1 允许在一次性容器中无人值守的 --yes 运行删除文件夹。
  • 全部Letronna 可作为 Harbor 代理运行 Terminal-Bench 和 SWE-bench,也可以对它运行 ClawBench 和 A.I.G 注入矩阵。
  • 全部发布版附带适用于 x86_64 和 aarch64 Linux 的静态终端程序。
  • 全部会话可以在自己的 git worktree 中工作,完成后把成果应用回来。
  • 全部定时运行可以通过邮件汇报,应用密码保存在保险库中。
  • 全部设置中的辅助模型可以用更便宜的模型生成摘要、提交建议和目标检查。
  • 全部记忆的修改可以列出并还原。
  • 全部文件夹的 .local 指令文件在共享文件之后读取。
  • 全部Zed 和 JetBrains 可以通过 ACP 重新打开 Letronna 会话并选择模型。
  • 全部Anthropic 密钥直接连接 Anthropic 的 API,支持提示缓存和思考;OpenAI 推理模型通过 Responses API 在工具轮次之间保留推理。
  • 全部记忆:选择聊天何时保存(仅在要求时、确认后或自动)以及保存在哪里(项目、聊天或全局),可通过 --memory、--memory-scope、--private、/remember、窗口和聊天应用设置。
  • 全部read_file 以文本形式读取 Word、Excel、PowerPoint 和 PDF 文件,搜索可以查找文档内部。
  • 全部全新安装即可用 DuckDuckGo 搜索网页,无需密钥。
  • 全部可以用 send_job 回应后台任务的提示。
  • 全部回退也会撤销命令对项目的修改。
  • 全部唤醒在重启后仍然有效,可以设在一天之后;定时任务可以在没有变化时保持安静。
  • 全部没有项目的聊天在 Letronna 自己的文件夹中工作。
  • 全部实验性脚本工具可以在一步中运行多个只读调用。
  • 全部Letronna 内置一个技能,用来解释它自己的命令和设置。
  • 全部Core 可以把窗口中等待处理的卡片发到所有者在聊天应用中的私信。
  • 全部通过 ACP 连接的编辑器可以选择代理的模式。
  • 全部把工作交给 Claude Code,或将它选作模型。
  • 全部read_file 读取 OpenDocument 文本、表格和演示文稿,并按章节读取 EPUB 电子书;旧的 .doc、.xls、.ppt 和 .rtf 文件会提示如何转换为可读格式。
  • 应用窗口显示用于向后台任务输入的卡片,也会触发唤醒,并且在未设置密钥时可以关闭 DuckDuckGo 搜索。
  • 应用Skills 页面可以复制内置帮助技能进行编辑,记忆条目会显示保存到了哪里。
  • 全部提问会给出推荐答案,终端支持自由回答。
  • 全部周期任务和通知优先使用 Letronna 自己的定时任务和聊天应用,需经你同意。
变更 76
  • 全部云端运行实时显示正在做什么:letronna cloud 打印每一步,窗口中的 /cloud 显示当前步骤,通过 SSE 流式传输(流中断时改为轮询)。云端应用可以向访问者无限时长地流式推送(SSE)。
  • 全部云端运行使用自己的短期 token,只能访问模型,绝不涉及你的登录凭据。
  • 全部模型请求失败时会说明原因:密钥、额度、速率限制、提供方繁忙、对话过长等。
  • 全部OpenAI 推理模型可以使用了;服务器拒绝某个字段时,会去掉该字段重新发送请求。
  • 全部上下文窗口会计入工具调用、图片以及中日韩文字,长对话会在正确的位置裁剪。
  • 全部Letronna 工作时追加消息,本轮的原始请求仍保留在视野中。
  • 全部清单在窗口和终端中始终可见,即使是长任务。
  • 全部在一个会话中给出的批准只在该会话中有效。
  • 全部工具接受其他代理使用的参数名和带引号的值,edit_file 能跨不同换行符和空白找到文本。
  • 全部命令运行时没有分页器或编辑器需要等待,颜色代码不会进入模型读取的内容。
  • 应用审批卡片和工具查找不再每帧重新读取文件。
  • 应用示例插件默认关闭。
  • 全部批量调用同时运行。
  • 全部会话搜索在侧边栏和 /resume 中按任意顺序匹配词语;终端列出会话时无需读取每个文件。
  • 全部摘要失败时之前的轮次得以保留,摘要在重启后仍然保留,压缩过程会显示出来。
  • 全部仓库中的项目文件夹沿用仓库的规则。
  • 全部命令和 MCP 服务器以登录 shell 的变量启动。
  • 全部停止 MCP 调用会通知其服务器,停止服务器会结束它启动的一切。
  • 全部Plan 模式拒绝会改动内容的工具,无论以何种方式调用。
  • 全部.env 和私钥等机密文件不让模型接触;.env.example 除外。
  • 全部停止操作会作用到等待和正在运行的命令,并结束它们。
  • 全部长回复不再在两分钟时被截断;只有五分钟无响应才会结束。
  • 全部无人值守的运行绝不会卡在等待提问上。
  • 全部摘要复用聊天连接,繁忙的后台任务不再每次读取都复制整个日志。
  • 全部无窗口的运行(-p、助手、工作流)遵守拒绝规则和安全底线,对本次运行的确认不再覆盖之后更危险的调用。
  • 全部无人值守的运行若重复同一调用且结果相同,会被停止。
  • 全部助手和工作流代理完整经过审批关卡,使用其会话的模式、规则、授权和裁判。
  • 全部任务会被列出,等待只匹配新输出,会话只能看到自己的任务。
  • 全部输出超过 4 MiB 的命令会完整保存,供 read_file 读取。
  • 全部聊天应用、网页和媒体调用各自复用一个保温连接;缓存未命中会指出变化的部分。
  • 全部内联 think 块作为推理流式输出;read_file 按单元格显示 notebook。
  • 应用窗口只在打开会话时才读取它,跟随终端写入会话的内容,代码高亮从二十七种语言减为八种。
  • 应用会话搜索跳过不可能包含这些词的会话,移动窗口的回复不再等待其摘要。
  • 应用窗口占用的内存大幅减少:图片只按显示尺寸读取并在之后释放,由运行、聊天应用或终端读入的会话也会释放,切换配置档只读取它打开的会话。
  • 终端安装的终端程序是带 logo 的 letronnacli.exe;letronna 仍可启动它。
  • 应用窗口占用的处理器大幅减少:回复进行中以每秒 25 帧重绘,而不是 120 帧;隐藏或最小化的窗口和托盘保持安静;浏览器面板只解码显示的图片;审批卡片和模型列表只计算一次。
  • 应用选择文本不再让窗口多占 40–80 MB,视频截图和助手的记录不再显示时会被释放。
  • 应用夜间主题更柔和:深色墨水页面配午夜色边框。
  • 全部以非零状态退出的命令算作失败的步骤,网页搜索行会显示搜索了什么。
  • 全部工作流的 token 在其代理回复流式输出时累加。
  • 全部-p 运行有 100 个工具轮次,像定时运行一样重试,并被告知无人值守,不能用的工具会被去掉。
  • 全部检查编辑的提醒也涵盖补丁,只有干净的非只读命令才能消除它;仅编辑 .md 或 .txt 文件不会触发。无人值守的运行会被告知最后一次构建或测试通过后改了哪些文件。
  • 全部文件和命令中针对 AI 的文字会附上 Letronna 的注释,被丢弃轮次的摘要会标记为派生文本。
  • 全部工具错误会指出下一步,没有输出的命令会说明这一点。
  • 全部LETRONNA_READ_TIMEOUT 设置回复可以保持无响应多久。
  • 全部运行结束前会被告知哪些输入文件从未读过,无人值守的运行会被告知 PATH 中和其文件夹里有什么。
  • 全部写入和编辑会给出修改的文件名;行列数不齐的 CSV 会得到提示;被拒绝的危险命令会建议一个范围更窄的命令。
  • 全部文件、命令输出、页面和 MCP 结果会去掉不可见字符,并注明去掉了多少;edit_file 能找到仅因这些字符而不同的文本。
  • 全部接触不可信内容后,即使在 --yes 下也会检查有风险的调用;模型写的技能在你开启前保持关闭,安装的技能经过清理和标记后才送达模型。
  • 全部助手的报告放在标题下以引用形式呈现;正在遵循的技能在旧结果被清除时仍保持可见,已保存的被清除结果仍会给出其文件名。
  • 全部推理模型的回复预算以 max_completion_tokens 传递;完整的搜索页面会整页送达模型;搜索会指出被项目上层 .gitignore 隐藏的文件夹。
  • 全部读完未改动文件的每一页即算完整读取;过大的图片会缩小后发送;web_fetch 保存的 PDF 可以用 read_file 分页读取。
  • 全部目标的检查命令失败时目标不算达成,/review 涵盖新文件以及从分支分叉点起的 diff。
  • 终端未知参数会报错,继续会话时留在本文件夹的会话中,-p 下的 --resume 需要提供 id,Default 模式下 -p 会警告写入将被拒绝。
  • 全部代理会被告知会话模式何时改变、你何时停止了它的回复、哪些 MCP 服务器尚未就绪,以及在长轮次中仍然生效的规则(默认关闭,可选开启)。
  • 全部工具持续失败时会提示换个方法;目标检查会要求每个部分的证据。
  • 全部建议的提交信息遵循仓库自己的风格。
  • 全部Letronna 不运行的 Claude Code hooks 会被跳过并提示;定时运行中的窗口轮次只提供该运行允许调用的工具。
  • 聊天应用Slack 以其自己的方式显示粗体、标题和链接。
  • 全部记忆只在你要求时保存,除非你另行选择。
  • 全部未命中的编辑会显示最接近的文本及差异;破坏文件语法的写入会说明这一点。
  • 全部长页面可以读到第一屏之后,网页答案来自能确定答案的页面,并附上其地址。
  • 全部补丁写入的文件显示在 Outputs 中,并作为编辑送达编辑器;请求说不要修改的文件若被运行改动,会被点名。
  • 全部受阻的目标会再试一次,然后暂停,而不是被放弃。
  • 全部Plan 模式可以保留所有工具,这样切换模式不会失去缓存(默认关闭,可选开启)。
  • 全部审批关卡按工具接受的参数名读取调用参数;run_command 会说明如何读取其结果,以及它没有键盘输入。
  • 全部清单工具说明何时使用以及怎样算完成;摘要逐字保留你的规则并标记已完成的部分。/init 把注意事项写成简短规则,不再逐个介绍文件夹。
  • 全部给模型的指令更短更清楚:回复先给答案,说明怎样算完成,批量调用,不确定时先问,用户优先于项目文件;十五个工具现在每个事实只说一次,每次请求减少 490 个 token。
  • 全部Plan 模式把请求当作要制定的计划;助手会被告知不能做什么,并汇报检查了什么;非 Claude 模型从工具获取会变化的事实。
  • 全部来自外部、试图指挥代理的文字会被点明,绝不照搬;不可信文本的规则只说一次。
  • 全部Auto 模式允许项目内安装和本地 git,但不允许没人要求的推送;无人值守的 --yes 运行只能删除项目内的文件夹;重定向按最终落点判断。
  • 全部输出严格限定在请求列出的值、键和列,只有文件夹能构建或测试的代码才会让运行回头检查。
  • 全部聊天应用的回复使用列表而不是表格;终端回复使用粗体行和列表。
  • 全部记忆指引更短,只保留事实,不保留命令或失败;保存的技能保留有效的步骤;记忆或技能的改动不再重写缓存的规则。
  • 应用窗口基于 GPUI Kit 0.7.1 构建;面板和新消息淡入(减弱动效时同样如此);在 X11 和 macOS 上设置覆盖在模糊的窗口之上;Tab 可到达设置中的每个开关。
  • 应用标题栏左侧显示 Letronna 的名称而不是会话名,About 更简短。
修复 30
  • 全部上传密钥文件的命令(curl、wget、scp、rsync)在所有模式下都会被拒绝,.gnupg、.pgpass、.vault-token、.azure 和 gcloud 设置都视为机密。
  • 全部旧文本不存在的编辑会如实说明,而不是显示“already applied”;纯文本不再被保存为 .docx、.xlsx、.pptx、.zip 或 .pdf;以非零状态退出的命令算作失败。
  • 应用删除最后一个会话不再导致窗口崩溃,新会话不再继承已删除会话的图片,完成的空回复不再一直显示 Thinking。
  • 应用新会话排在最上面,即使复用了一个空会话。
  • 应用关闭设置或浏览器面板会把其图片占用的资源还给 GPU。
  • 应用新建会话会打开已有的空会话而不是不断新建,侧边栏中的最后一个会话可完整滚动到视野内,右键点击会话不再出现黑色光晕。
  • 全部灾难性命令(例如删除你的主文件夹)无论审批设置如何都会被拒绝。
  • 全部两个 Letronna 实例绝不会把写入混进同一个会话,保存中途崩溃只损失一行,而不是整个会话。
  • 全部密钥、设置和记忆文件绝不会因读取失败而被悄悄重置或清空,损坏的 skills.json 绝不会被默认值替换。
  • 全部在一个 Letronna 实例中删除的会话保持删除状态,残留的锁文件不再导致会话被列出两次。
  • 全部命令绝不会因留下运行的子进程而挂起,非有效 UTF-8 的输出也能保留。
  • 全部web_fetch 会检查它访问的每个地址和重定向。
  • 全部流式工具调用按调用分别拼合。
  • 全部项目的 AGENTS.md 不再能通过链接到设备让应用挂起。
  • 终端letronna -p 在回复流式输出时不再一直占用一个处理器核心。
  • 全部两个 Letronna 实例同时启动时绝不会写入同一个会话。
  • 终端终端退出时后台任务会停止。
  • 全部一轮进行中发送的追加消息和通知会保留本轮的请求。
  • 全部/btw 共享会话的缓存,不会留下过期的锁。
  • 应用窗口能再次打开包含消息的会话。
  • 终端有问题的更新会被回退,正常的更新会保留。
  • 终端对 letronna -p 按 Ctrl-C 会结束它正在运行的命令。
  • 终端-p 运行绝不会安装暂存的更新或回退旧版本,SIGTERM 或关闭终端会像 Ctrl-C 一样停止它。
  • 全部停在终端提示处的命令会被结束并说明原因,页面的错误响应会带回页面的内容。
  • 全部网关没有对应路由时,图片编辑会指向一个脚本而不是直接失败。
  • 终端Windows 上通过 stream-json 运行的 letronna -p 启动时不再挂起。
  • 应用点击标题栏的搜索框会再次打开命令面板,而不是开始移动窗口。
  • 全部提供方中途截断的回复会重新请求,参数不是 JSON 的调用不再结束运行。
  • 全部沙箱化的命令在 Linux 上能正常启动,不再无法创建进程。
  • 应用回退提示会直白说明哪些内容会被移除、哪些不会撤销,卡片提示在 Paper 主题和窄窗口中正常显示。
v0.1.0-alpha.22026年9月27日
新增 27
  • 应用右键或悬停某一轮,即可复制、编辑、重试、回退或分叉。
  • 终端撤回或重试上一轮对话,或从会话分支。
  • 全部真正的浏览器:Letronna 读取页面、点击、输入和截图。在应用中它位于聊天旁,你可以观看,也可以自己使用。
  • 应用每个会话有自己的浏览器,或所有会话共用一个,可以是云端浏览器或另一台机器上的 Chrome。
  • 全部Letronna 自动更新:应用会查找、校验并安装新版本,终端中用 letronna update。
  • 全部用你自己的搜索服务搜索网页。
  • 全部通过 URL 连接 MCP 服务器,可带密钥等请求头;单次提问会等待 MCP 服务器启动。
  • 全部回退会话,并且保持回退后的状态。
  • 终端指南一键可达,从 /help 打开。
  • 全部Letronna 能生成图片、语音和视频,并把语音转成文字;可选择各自使用的模型。
  • 全部Letronna 会记忆:SOUL.md 定义它是谁,USER.md 和 MEMORY.md 保存它对你的了解和自己的笔记,项目的 AGENTS.md 作为指令读取。
  • 全部来自 MCP 服务器的工具,在 mcp.json 中配置。
  • 全部读取网页。
  • 全部搜索过去的会话。
  • 终端letronna,终端中的代理:对话、工具、diff、按名称 /resume、/model、/effort、/thinking、/search、/plan、/jobs 和 /skills。
  • 全部应用和终端共用一个 Letronna 账户:/login、/whoami、/logout,应用中有 Account 页面。在 letronna.ai 上登录。
  • 全部你的账户可使用 Letronna 托管的模型,从额度中扣费,无需粘贴密钥。
  • 全部同时使用你配置的所有网关:模型列表汇集 Letronna 和每个有密钥的网关的模型,消息发送到所选模型所在的网关。
  • 全部网关以状态列表显示(已登录、已连接、未设置、未运行):应用中在 Settings > Gateways,终端中用 /gateways。
  • 全部团队:托管模型的费用可记到团队共享资源池或你自己,终端中用 /team,应用中在 Settings > Account。
  • 全部在网关支持时提供 effort、思考和网页搜索。
  • 全部定时任务、后台任务、清单、Plan 模式,以及可添加工具的插件。
  • 应用通过 Telegram 和 Discord 使用 Letronna,定时任务会向每个频道汇报。
  • 应用Artifacts 和 Skills 页面。
  • macOSmacOS 版本,使用原生字体、路径和标准的 .app。
  • LinuxLinux 上的安装和托盘。
  • 全部一行命令安装,然后回答几个问题。
变更 11
  • 应用回答时可以继续输入,按 Esc 停止,删除前会先确认。
  • 应用聊天以单列呈现,你的消息显示在卡片中,切换会话不再闪烁。
  • 全部登录不再无限等待浏览器,结束页面与网站风格一致,等待期间可以重新打开页面、复制链接或取消。
  • Windows**, **macOS发布版可以进行代码签名,Windows 和 macOS 不再警告未知发布者。
  • 全部对话超出模型窗口时,旧轮次会被总结而不是遗忘。
  • 全部模型调用复用一个连接,搜索在读取前跳过不匹配的文件。
  • 全部Letronna 是默认网关,也是唯一的托管网关。
  • 全部每个会话是单独的文件,因此可以同时运行两个 Letronna 实例。
  • 全部保存在已不再提供的网关上的设置会迁移到你的 Letronna 账户。
  • 终端提问显示在输入框内,位于你输入位置的上方。
  • 全部失败的一轮会说明原因;工具在会重命名工具的网关上也能使用。

修复

  • 全部带重音符号的名字登录后不再乱码。
  • Linux**, **macOS密钥和登录文件只有你自己可读。
  • 全部你的密钥和登录信息不让模型接触。
  • 终端终端保存会话时保留其置顶和待办。
  • Windows粘贴作为一次粘贴送达,运行命令不再闪出控制台窗口,滚轮可以滚动。
  • 全部大型工具结果不再导致上下文丢失;悬空的工具调用会被修复。
  • 应用让 Discord 机器人读取聊天不再导致应用挂起。
  • macOS其他应用获得焦点时,窗口的按钮仍然可见。
v0.1.0-alpha.12026年9月18日

新增

  • 应用Letronna 桌面应用的首个 alpha 版:与能在你的项目中读取、写入和运行的代理聊天,支持审批、会话,并可选择网关(OpenAI、OpenRouter、Ollama 或任何 OpenAI 兼容服务器)。
  • Windows首次运行时自动安装,带开始菜单项和托盘图标。

Letronna®

Intelligence in Motion

我们是一个小团队,公开开发,欢迎你加入我们。如果你感兴趣,请发邮件到 hi@letronna.ai

产品

平台价格模型价格代币经济常见问题指南基准测试更新日志路线图控制台

法律

服务条款隐私政策退款政策

公司

技术支持打个招呼
© 2026 Gadlus LLC
English简体中文العربية日本語한국어DeutschEspañolעבריתРусский

Letronna is a product of Gadlus LLC, a Wyoming limited liability company. 30 N Gould St Ste N, Sheridan, WY 82801 · WY file no. 2026-002093085