Releases
v0.0.8
Compare
Sorry, something went wrong.
No results found
Features
cli : sawit list keys prints every shortcut while Sawit runs
mcp : keymap_list, keymap_bind and keymap_unbind read and change your key bindings
mcp : terminal_split splits a terminal pane and can run a command in the new half
cli : sawit list config and sawit list mcp, and list_config_files for agents
tools : uninstall dev tools from the terminal (sawit cabut) and from agents (uninstall_dev_tools)
mcp : canvas tools take a file, to work on a design file or any canvas file in its own tab or on disk
cli : daftar and stop are list and bakar's other names, and sawit --help lists every alias and flag
cli : sawit browse opens a page, a port or the project's dev server in Sawit's browser
cli : sawit nyalakan starts stopped Sawit instances, and --ulang restarts them
mcp : every tool tells clients whether it only reads, can destroy, or reaches past this mac
catalog : the Dev Tools and MCP pages work from the keyboard
terminal : quitting, closing a window and restart to update ask while a terminal runs something
app : searchable catalog for dev tools and mcp servers; config files for every coding agent
canvas : replace the excalidraw webview with the native figcraft canvas
canvas : exports never overwrite a canvas file; headless exports find system fonts
canvas : export_svg and export_png ops on the native canvas
mcp : browser_inspect, browser_design and browser_export_design
design : assets, system tokens and export in the design panel
design : inspect, colors and fonts in the design panel
design : scan, inspect and background export in the browser tab
design : asset naming, data URLs and capped downloads
design : inspect details, contrast, CSS and Tailwind output
design : DESIGN.md, DTCG, Tailwind and shadcn exports
mcp : browser_annotations reads the user's visual feedback
annotate : send annotations to the terminal running Claude
annotate : annotate panel with screenshots and markers
annotate : element details, key styles and source hints on pick
browser : browser_resize, viewport in app_state, ports open in the browser
canvas : import, save as, export and copy as from the canvas menus
browser : toolbar toggles, side panel, ⌘⇧. and clean screenshots
browser : device sizes with page zoom
canvas : layers panel with pages, selection, rename, visibility, lock and drag
keymap : keymap editor; every feature's shortcuts can be rebound
canvas : fills, strokes, effects, typography and export in the design panel
canvas : main menu, context menu, actions palette and shortcuts sheet
canvas : design panel with position, appearance and auto layout
terminal : split panes replace herdr; Sawit no longer offers or installs it
terminal : run, ssh and agent tools address panes
canvas : draw the arc and corner radius handles the move tool answers
terminal : zoom panes and close exited shells in splits
terminal : herdr-style pane menu, rename and close pane
terminal : split panes with headers and draggable dividers
canvas : floating toolbar, top bar and context bar on the native canvas
terminal : read a session's working folder
canvas : open .figcraft and .excalidraw files in canvas tabs
canvas : type and compose text on the native canvas
canvas : copy and paste between canvases and from other apps
mcp : canvas_command and canvas_commands, and canvas tools that work on .figcraft files
canvas : import excalidraw boards and migrate the project canvas on first open
canvas : draw the view menu's outlines, soft proof and pixel preview
canvas : figcraft shortcuts on the native canvas, sharing keys with sawit by policy
canvas : turn mermaid into editable board shapes without a browser
canvas : pointer tools and cursors on the native canvas
canvas : get, add, update, delete, clear, replace and commands ops on the native canvas
canvas : selection, handles, guides and labels drawn over the native canvas
canvas : native canvas view with pan, zoom, dot grid and autosave
canvas : apply element skeletons as board shapes, connectors, text and sections
canvas : open and autosave .nyawit/canvas.figcraft with a backup before emptying
shell-config : save your shell startup files to a private github repository, warning about secrets
mcp : remove a server from every client at once and stop a hanging install
tools : uninstall dev tools and stop an install that hangs
nyawit : keep a project's canvas, diagrams and exports in its .nyawit folder
update : check hourly and install a downloaded update when sawit quits
tools : upgrade dev tools from the terminal (sawit pupuk) and MCP (upgrade_dev_tools)
mcp : browser_* tools drive the browser tab
browser : browser tab with toolbar, per-project storage and agent ops
tools : detect newer versions and upgrade installed dev tools
Fixes
db : writing DATABASE_URL leaves a .env that Sawit can't read as it is, instead of replacing the whole file
mcp : a canvas tool that names a file refuses to run when the Sawit app running is too old to know it
mcp : browser_annotations names the key your keymap gives Annotate
mcp : an agent's new terminal tab starts in the agent's own project, not the one in front
mcp : terminal_close asks for confirm before it ends a program or the terminal you type in
mcp : removing a host, prompt, connection or saved command, stopping processes and replacing DATABASE_URL need a confirmation
mcp : start_instance says whether a held start can still be started anyway
tools : the Tools page no longer offers to uninstall Homebrew's npm, which would remove Node.js
mcp : a client config that doesn't parse is reported by line and column, never by quoting its line
mcp : with no project named, an agent's canvas tools use the canvas of the project it works in
cli : sawit asks before running a statement that writes
mcp : canvas_get, canvas_clear and canvas_export say they act on the page on show
mcp : browser_export_design asks for replace: true before it replaces an earlier export
canvas : what an agent deletes from the canvas is kept in a .bak first, with Sawit open or closed
browser : browser_network shows agents a page's passwords and tokens as [redacted]
mcp : the browser tools tell agents that ⇧⌘. opens Annotate and what clearing the console or network log drops
editor : kept changes for a file that can't be edited say where they are
editor : Save in the close or quit question saves a read-only tab
keymap : keymap.json is saved as Sawit saves every file, keeping its permissions
canvas : the note of a canvas file saved again says to delete it again
workspace : a project opened through a symlink opens at the folder it leads to
tools : closing the window or quitting while Dev Tools installs asks first, and stops the installer
browser : an agent's browser is its own project's, not the one you're looking at
browser : the link question says what cancel does, and reload lets the page's links ask again
keymap : the keymap editor an agent opens leaves the keyboard where you have it
browser : send to terminal goes to the page's project and never into an SSH session
config : saving shell files with a sign-in GitHub refuses asks for a new sign-in, not a sign-out
install : in Sawit's own terminal, the install command leaves Sawit running and says where to run it
mcp : a claude or codex CLI outside nvm's folders finds nvm's node, so installs through it work
mcp : updating a server moves the PATH Sawit wrote with npx, so it still starts after nvm moves on
run : stop while a restart waits for the old run calls the restart off
mcp : app_activate_tab shows another project's tab with its project, as a click does
mcp : app_close_tab says when it asked the user first, instead of "closed"
mcp : only Claude Desktop and LM Studio entries pin where node is; editors keep your shell's PATH
files : open project folder replaces the folder of the project that asked
tools : retry after a failed uninstall asks to run that uninstall again, never the installer
files : ⌘Z pressed during a change that fails no longer undoes the change before it
mcp : git_switch, git_unstage and browser_navigate say they can replace what was there
terminal : an agent's command never goes into the shell you're typing in
ui : the status bar's project path is a Copy Path button, the full path in its tooltip
editor : changes a quit kept come back with a warning when the file changed on disk in the meantime
files : the name box lines up with the tree's outlined rows
editor : a quit that can't ask keeps unsaved changes, and the next launch brings them back
editor : quitting, Restart to Update and closing a window ask to save unsaved files first
files : image, pdf, video and find in folder tabs follow a renamed or moved file
files : the files tab's open project folder goes through the workspace's checks
files : the files tab's git items follow the project's repository as it changes
files : expand all leaves linked folders closed, and the refresh reads open folders in one go
files : a file opened from the files tab takes the keyboard, and the tree shows when it has it
mcp : the MCP page says what the built-in Sawit server lets agents do
github : a saved sign-in GitHub no longer accepts asks you to sign in again, and git stops sending it
canvas : on a design file, board shapes and diagrams say what the canvas is instead of pointing at a hidden menu
terminal : a new or switched-to terminal tab scrolls into view in the tab strip
workspace : a tab you open or switch to scrolls into view, not the one left of it
workspace : the keyboard never stays on what is hidden
files : ⌫ asks before moving a file or folder to the trash, and ⌘⌫ doesn't
install : the install script points at Install CLI in the status bar, where it is
files : while a name is typed in the tree, its other shortcuts leave it alone
install : the install script waits for Sawit to quit before replacing it, and runs only once whole
files : a paste or name that fails keeps the cut and the name typed, and an opened folder is read again
files : the tree's keys act only on an entry whose row is shown
files : work that lands after the files tab changes folder leaves the new folder alone
files : file changes run one at a time, so ⌘Z undoes the change it follows
files : redo of a trash moves the file to the trash again instead of taking its tabs along
mcp : agents are told what a closed app keeps, that browser_* need the app, and what shell_config is
mcp : browser_navigate with no url opens the agent's project's dev server
mcp : browser_wait_for answers at once what waiting won't change
mcp : canvas_command reads the files an engine command names as the agent means them
mcp : canvas_export writes only an absolute path, and takes PNG in any case
mcp : canvas_load, write_env and browser_screenshot read paths as every other tool does
canvas : canvas_load brings back the board a clear kept in canvas.figcraft.bak
mcp : launch_app opens the path it names, after --, and says what it opened
mcp : terminal_run starts its shell in the folder it names, or runs nothing
mcp : a project named through a link, in another case or with .. is the open one
mcp : two agents editing one canvas while sawit is closed get true answers and lose no edit
search : find in folder shows the latest search's hits and stops reading at its limit
files : add to .gitignore and .git/info/exclude work in worktrees, on links and odd names
files : duplicating or pasting a folder that holds a pipe or socket finishes, leaving them out
files : a rename to another file's name in other case no longer replaces that file
workspace : what is shown again has its keyboard back
catalog : a page an agent opens leaves the keyboard where the user has it
canvas : an agent's load or command that names a pipe or a link to a device is refused at once
mcp : a detection that finishes under an open sign-in sheet no longer takes the app down
tools : Zed or Cap from a Homebrew cask isn't offered their installer's removal
catalog : paths under a home folder of a similar name aren't shortened, and the MCP search finds tags
ui : the status bar's Git button shows ⌘3 in its tooltip, as the other buttons there do
config : Config Files lists each agent profile as its own group, and only real profiles
canvas : a panic in opening a file or in an agent's op is an error, not an abort of the app
canvas : a Mermaid diagram stopped for taking too long isn't rendered a second time
canvas : a blank file another app made keeps its page colour in the dark theme
canvas : a save records the page on show, so a file opens on it again
canvas : an agent's op waits while the user draws a path with the pen, instead of joining its undo step
canvas : a batch step can't write over the canvas file through a path taken from another step
config : deleting a config file for good names it by its path
config : saving shell files to GitHub warns about secrets on every save, and finds more of them
browser : browser_evaluate no longer leaves a false SyntaxError on the page
browser : page scripts can no longer borrow the agent's functions to annotate
tools : closing the Dev Tools tab mid-install asks and stops the installer, and one tool installs at a time
mcp : a failed or stopped change shows on the server's row, naming the client
mcp : an install's result lands on its own client when Detect Again reorders the list
mcp : remote servers aren't written into Claude Desktop and other program-only clients without npx
workspace : shortcuts keep working once the web page, tab or panel you typed in is hidden
mcp : AWS installed in another Region reads as installed there, and the Region is checked
mcp : the MCP page finds claude, codex and npx where the Dev Tools page does
tools : uninstall runs a tool's own removal only on the copy its installer put in place
tools : an installer that prints a line that isn't UTF-8 keeps its output and its pipe
tools : dev tools work when the login shell is fish, nu, PowerShell or tcsh, and a failed detection says so
mcp : two changes to one client config at once no longer lose an entry or break the file
mcp : removing a server keeps the others in order, and config files keep their indentation
mcp : an update keeps what you added to a server's entry, and Remove from N asks first
canvas : closing or quitting a canvas it couldn't save keeps its edits in a copy
canvas : opening a canvas file that is a pipe or a link to a device is refused at once
canvas : a canvas that found no file refuses to save over one made there since
canvas : a clear or a load keeps the five boards before it, not only the last
canvas : an agent's cut or paste while the user types ends the typing first, so the next click keeps it
files : saves, canvas backups and exports never write through a link a cloned repository holds
design : exports of a dev site on a .test, ddev or lvh.me name keep its assets
browser : a page can no longer open annotate and add an annotation of its own
browser : an agent's click in a web page leaves your keyboard where it is
keymap : the editor saves a binding for an action that had none
mcp : agents name the terminal they type into, and app_run_script says where it runs
terminal : the quit and restart question comes forward with its window
browser : Annotate's key in a web page is the keymap's, not a fixed ⇧⌘.
browser : ⌘C, ⌘V, ⌘X and ⌘A act in the web page, not in the field or panel used before it
canvas : an agent's key on the canvas does what the keyboard does with the default keys
canvas : the canvas's tooltips, menus, palette and shortcuts sheet show the keys as you bound them
keymap : default shortcuts follow keyboard layouts that type keys elsewhere, as macOS menus do
keymap : a chord you add no longer delays the canvas's ⌘K, and the editor warns of chords on bound keys
git : the commit and comment boxes say ⌘↩ again
keymap : Config Files' shortcuts go by its name in the keymap editor and keymap.json
workspace : the title bar's Keymap Editor, Tools and MCP buttons bring the tab area back
keymap : ⌘E no longer opens keymap.json from everywhere
keymap : ⎋ and ↩ end key recording, and a hidden recorder lets go of the keyboard
keymap : the keymap editor never writes over a keymap.json changed outside it
keymap : a default turned off with null in keymap.json shows as removed
keymap : a canvas key can be pointed at another command in the keymap editor
keymap : the keymap editor no longer deletes your other binding of the same keys
keymap : editing a binding records the new keys instead of adding them to the old ones
mcp : app and terminal tools go to the window with the agent's project open
ssh : a server's forwarded ports are let go seconds after its last session
ssh : reconnect uses the server's settings as they are now
run : restart waits for the old run to stop, however long that takes
terminal : agents' terminal commands leave your keyboard alone and say where they ran
cli : sawit --wait on a canvas file waits while its canvas is open
canvas : one canvas per file holds for a path named through a link
canvas : a canvas file's tab follows its file, and says when it saves a file that went
canvas : the canvas you go to takes the keyboard
canvas : a drag cut off by hiding the canvas's tab ends there, and agents' edits go through again
canvas : a template, a table or an auto layout added while text is typed ends the typing first
canvas : ⇧Space and ⌥⌘↩ no longer ask for a prototype player the canvas doesn't have
canvas : a name typed in the layers panel stays when the next click lands on a layer
annotate : send to terminal prefers the agent's terminal to an idle shell
design : an export never writes through a symbolic link in the project
design : exports of two dev servers on one host no longer wipe each other
annotate : closing the browser or clearing no longer drops unsent notes without asking
browser : an agent's read-only browser call no longer opens a browser over your tab
browser : each project gets its own browser tab, cookies, screenshots and exports
ports : clicking a port opens it in the browser even when the browser is open
design : exports no longer save what is on your mac or network for a web page, nor send your curlrc
design : size caps on stylesheet fetches and asset downloads hold for gzip answers
browser : browser_evaluate works on pages whose CSP forbids eval
annotate : page text can no longer add fake annotations to the notes sent to an agent
browser : page scripts can no longer forge annotations or read the agent's token
browser : window.open no longer replaces the page with a blank, a search or a local file
browser : pages can no longer launch other apps without asking
browser : an address webkit can't read is searched instead of crashing sawit
mcp : terminal_run answers whatever wait_secs it gets
run : running a script again runs it in its own folder
terminal : dropping files on a pane makes it the tab's focused pane
terminal : a shell an agent typed into is kept when the first project opens
terminal : commands sent to the terminal never land in a run panel script's shell
terminal : a tab's menu and buttons act on that tab after the strip changes
terminal : a tab's × closes only that tab and hands on the keyboard it had
terminal : closing a tab left of the active one keeps you in your tab
pages : every page follows the window's width
files : ⌫ after a folder change no longer trashes the previous folder's selection
keymap : the editor no longer offers canvas commands the canvas has no use for
mcp : the instructions say terminal tools address panes, not only tabs
mcp : canvas_export writes a ~/ path in the home folder, not in a folder named ~
files : ⌫ with nothing selected no longer moves the project folder to the trash
terminal : commands sent to the terminal go to a shell at its prompt, never into a running program
files : ⌫ while typing a name no longer trashes the selected entry or the project folder
browser : ⇧⌘. toggles annotate when sawit has the keyboard, not only the page
keymap : shifted symbols read as the keys pressed, ⇧⌘. rather than ⌘>
keymap : shortcut hints follow rebinds
app : typing a search in config files no longer opens or trashes the selected file
mcp : no tool writes over a canvas file
terminal : send to terminal pastes into the tab's focused pane
mcp : app_open_page offers the keymap page
canvas : an agent's edit waits for the user's drag to end
canvas : agent ops and the layers panel end typing through one path
mcp : the offline canvas saver refuses what would lose data
canvas : a migrated arrow into a wide diamond joins it again
canvas : migrated loops and sequence messages stay as excalidraw drew them
canvas : end the text being typed before a right-click or a menu command
canvas : design panel edits leave the canvas's open gestures alone
canvas : removing a paint or an effect keeps the bindings after it
design : sheet fetch rejects userinfo and checks the address unless the page is local
design : local files are copied only for a page that is a file by the tab's URL
design : skipped videos aren't failed downloads; chosen videos are saved
browser : ⌘⇧. no longer matches ⌘⇧< on non-US layouts
design : inspect picking only on the Inspect segment
browser : a shot gives up after 10 s per step; a pick adds its row without one
design : fetched sheets reach the page only as CSS, and local hosts only for their own page
design : foreground is the most-used text color readable on the background
mcp : a failed design export is reported as a tool error, with the failures first
design : Reveal in Finder runs off the UI thread and reports failure
design : saves report failures; reveal errors show; export line follows the host
design : hover, pin and HTML copy no longer overtake each other; save notes
design : screenshot the scanned page before downloads; page answers time out
design : read oklch/lab/p3 colors, measure used fonts, cap the scan in bytes
design : restrict asset URLs to http(s), end curl options, reuse base64_decode
design : palette roles from opaque colors; muted skips the body colors
annotate : a failed paste copies the annotations instead
annotate : shots take turns so the overlay is never in a capture
annotate : clip picked text in the page; component-only source hints render
browser : clicks in the panel no longer take focus from its fields
browser : the view keeps the keyboard so ⌘⇧. works from Sawit
browser : overlay picks the walked-to parent, stays lazy and never takes pointer events
canvas : end a colour pick before other input joins its undo step
canvas : keep the context bar inside a narrow canvas and scroll its controls
mcp : only terminal_close's pane defaults to the whole tab
terminal : idle splits stay idle; panes keep the keyboard and their names
canvas : keep the toolbar inside a narrow canvas and scroll its buttons
canvas : keep the context bar over the toolbar
canvas : centre a pasted image or svg in the view
canvas : select the line on a triple click while typing, as figcraft does
canvas : finish the pen's path on delete and resize with cmd and an arrow
terminal : an exited pane closing keeps the keyboard where it is
terminal : true 20x4 pane minimum, nested drag limits, live header folder
canvas : widen the context bar's text-size menu to fit "Mixed"
canvas : show the caret at the start of a line and in a new sticky
canvas : save canvas files atomically and never over changes made on disk
canvas : cut points, not the layer, with cmd-x in vector edit mode
canvas : import arrowheads and open an empty old canvas blank
canvas : paint only a frame of the page and document on show
canvas : keep a lossy open's original apart from the emptying backup
canvas : put back the file's versions and branches when a command op fails
canvas : draw mermaid loops along their route and keep messages off notes
canvas : cut frame names to their frames and guard the overlay build
canvas : keep command ops from opening or switching documents
canvas : leave select.area off the shortcut sheet
canvas : keep an auto gap when a grid cell aligns a frame
canvas : refuse layer drops that leave the layers where they are
canvas : route canvas keys as figcraft's own keyboard does
terminal : tab, shift-tab and cmd-c reach the shell and TUIs instead of the window
ports : label deno tasks as deno task dev, not go-task's task dev
browser : reject unknown key modifiers, tidy empty snapshot containers and the blank-page log line
Performance
canvas : read the system's fonts when a canvas first opens, not at every launch
mcp : the MCP page reads each client config once per detection, off the async workers
canvas : a hidden canvas tab lets go of its render buffers
You can’t perform that action at this time.