Repository navigation
Releases: mbahakeskin/BasicShell
Release list
BasicShell 0.8.0
Download: BasicShell-0.8.0.zip, with BasicShell.app inside: unzip, move it to Applications. A release is the build with the agent tools (Settings › Agents, off until you turn it on); the plain build is ./build.sh from the source.
It is self-signed, not an Apple Developer ID, so the first time macOS refuses to open it: open it once, then System Settings › Privacy & Security › Open Anyway.
Requires: macOS 27 on Apple silicon.
Updates. BasicShell updates itself: BasicShell menu › Check for Updates…, and once a day by itself unless Settings › General turns that off. Update and Restart downloads the zip, checks it against its SHA-256 and the app in it against this app's identifier, then replaces the old app (which goes to the Trash) and opens the new one. Nothing is installed without your say.
New since 0.7.1
- The download button finds the video you pressed. A page keeps several videos loaded ahead (Instagram's reels hold nine at once), and the button used to save whichever file the page had read last. Now the page says how long the pressed video runs and how big its picture is, and each file the page loaded is read for what it says of itself in its first kilobytes (a picture or sound, how long, how big; fragmented files by their
sidxlist, others bymoov). The picture file of that length is saved, with the sound file of that length, and the Mac joins them into one mp4; a playlist is matched the same way by the sum of its pieces. If nothing can be told apart it says so instead of saving the wrong one.- TikTok: a video is one file with picture and sound together, the sound's track first; the whole of its header is now read, so it is found and saved as it is.
- Reddit: its player is a web component with its video in an open shadow root; the button now looks inside those, so it shows on Reddit's own videos and not only on photos.
- Instagram: the right reel, with its sound.
- Settings › General › Debug logging writes
[media]lines (what was pressed, what the page loaded, what each file turned out to be) for finding out why a video didn't save.
- Copy Address leaves out the tracking. ⇧⌘C and Edit › Copy Address drop what only follows you (utm_…, fbclid, gclid, igsh, YouTube's and Spotify's si, Twitter's s and t, Amazon's tag and ref, and the like); a video's t, a search's q and a product's variants are never touched. The pill says how many came off. Hold ⌥ in the Edit menu, or ⌥⇧⌘C, to copy the address as it is. Settings › Privacy › Copied links turns it off. The QR code and AirDrop share the cleaned address.
- BasicShell menu › Keyboard Shortcuts… lists every key the menus answer to, read off the menus as they are, with a search field and what the pointer does with a key held.
- Peek (Shift-click a link) no longer has a grey bar across its top: the page fills the card, and its title and its two buttons sit on glass above it.
- The profile row shows the name of the profile shown, in its colour, at the end of the row (the main one too).
The download button, as it stands
On a site you list (Settings › General › Download button on photos and videos; empty until you add one), a small button comes up over a large photo or video while the pointer is on it, in the page or in a player's frame, even under a transparent layer or inside a shadow root. It saves a photo's largest picture, a video that is a file as it is, a video whose address is a playlist or that a site sends in pieces (blob:) by what the page loaded: an HLS playlist's best quality with its sound, or the picture's and the sound's files, fetched as the page would and joined into one .mp4. It shows in the Downloads panel with progress and Cancel. Play the video for a moment first. Nothing outside macOS is used.
Known limits
- Not saved: DRM-protected video, live streams, video described by a DASH .mpd with segment templates, and the adaptive streams of YouTube.
- A site you list is watched while its tabs are open; a site you don't list is not watched at all.
- Passkeys and Apple Passwords need an Apple Developer ID and so don't work yet.
- Extensions run in the main profile only.
After updating, quit and reopen BasicShell if it did not restart itself, and start a new chat in your agent.
SHA-256: BasicShell-0.8.0.zip fbdd2fae291eb3f15961354c22f1b50aef74ecb8962b5c50f885c3865f9a6305
BasicShell 0.7.1
Download: BasicShell-0.7.1.zip, with BasicShell.app inside: unzip, move it to Applications. A release is the build with the agent tools (Settings › Agents, off until you turn it on); the plain build is ./build.sh from the source.
It is self-signed, not an Apple Developer ID, so the first time macOS refuses to open it: open it once, then System Settings › Privacy & Security › Open Anyway.
Requires: macOS 27 on Apple silicon.
Updates. BasicShell updates itself: BasicShell menu › Check for Updates…, and once a day by itself unless Settings › General turns that off. Update and Restart downloads the zip, checks it against its SHA-256 and the app in it against this app's identifier, then replaces the old app (which goes to the Trash) and opens the new one. Nothing is installed without your say.
New since 0.7.0
- Dark pages (Settings › General, off until you turn it on). A page that stays white while macOS is dark gets dark colours of its own, with pictures left alone; a site that already has a dark look is left alone, which is measured, not read off what the site says. Some pages break (a hero over a picture, say), so the way out is close: the button in the site's tools (the half-filled circle) or ⇧⌘D turns it off for that site, ⌥⇧⌘D pauses it everywhere until pressed again or BasicShell quits. Settings lists the sites you set by hand. The page script and colour engine are adapted from Search (MIT, credited in LICENSE and the README).
- Download button on photos and videos (Settings › General; no sites until you add some). On a listed site and its subdomains, a small button comes up in the corner of a large photo or video while the pointer is on it, even beneath a transparent layer the site lays over its pictures. It works in the page and in the player frames inside it, which is where most players live, including frames that are loaded hidden behind an ad and grow later.
- Pages drawn as fast as the screen (Settings › General, on). WebKit holds a page's own animations and scripted scrolling to about 60 frames a second even on a 120 Hz screen; this lets them go as fast as the screen does. Off puts the limit back. The effect shows only on a faster screen than 60 Hz.
- Tab groups: a tab opened from a link inside a group now shows its place in the tree, indented under the tab it came from, with the lines in the group's colour.
How the download button saves a video
It saves what the site gives, in the order that works:
-
A photo: the largest picture the page offers for it (what its
srcsetlists, or the image a link around it goes to), otherwise what is shown. -
A video that is a file: the file, through the Downloads panel, on the page's own session (its cookies) with the page as referrer.
-
A video whose address is a playlist. Many players give
<video>an HLS playlist address that doesn't end in .m3u8, which WebKit plays itself. The first bytes of the address are read; if it is a playlist, it is saved as in 4, not as that text. -
A video a site sends in pieces (a
blob:address, as most do). On a listed site BasicShell notes what the page asks for that looks like video: playlists and video or audio files (addresses, kinds and sizes only; nothing is put into the page and nothing of what came back is read). When you press the button it takes what the page loaded last:- an HLS playlist: the best quality of the master, and its separate sound if it has one, are fetched piece by piece (six at a time, AES-128 pieces decrypted), as the page would, and put end to end;
- or the video and sound files, as most social sites keep them (the picture's file and the sound's, asked for in byte ranges): each is fetched whole.
The Mac then joins them into one .mp4 (AVFoundation: picture from one, sound from the other; a transport stream is turned into an mp4 on the way). It shows as a row in the Downloads panel with progress and Cancel, and a "Show" button when it is done.
-
Play the video for a moment first: what the page has not yet loaded, BasicShell has not yet seen.
No outside software is used for any of it: no ffmpeg, no packages, only what macOS has (WebKit, AVFoundation, CommonCrypto). It uses two private WebKit calls (_resourceLoadDelegate, _removeAllUserScriptsAssociatedWithContentWorld:), noted in the README.
Known limits
- Tested on files and streams made for the purpose (HLS with transport-stream and fragmented-mp4 pieces, separate picture and sound files read in ranges) and on a public test stream. Not yet tried on Instagram, Facebook or X; if a video there doesn't save, the Downloads panel row or the pill says why.
- Not saved: DRM-protected video, live streams, and video described by a DASH .mpd with segment templates.
- A site you list is watched while its tabs are open; a site you don't list is not watched at all.
- Passkeys and Apple Passwords need an Apple Developer ID and so don't work yet.
- Extensions run in the main profile only.
After updating, quit and reopen BasicShell if it did not restart itself, and start a new chat in your agent.
SHA-256: BasicShell-0.7.1.zip 0465d9421b564ec5c4a16f0f7e24465235bdca63f2d3c08dbdee23fe2759c240
BasicShell 0.7.0
Download: BasicShell-0.7.0.zip, with BasicShell.app inside: unzip, move it to Applications. A release is the build with the agent tools (Settings › Agents, off until you turn it on); the plain build is ./build.sh from the source.
It is self-signed, not an Apple Developer ID, so the first time macOS refuses to open it: open it once, then System Settings › Privacy & Security › Open Anyway.
Requires: macOS 27 on Apple silicon.
Updates. BasicShell updates itself: BasicShell menu › Check for Updates…, and once a day by itself unless Settings › General turns that off. Update and Restart downloads the zip, checks it against its SHA-256 and the app in it against this app's identifier, then replaces the old app (which goes to the Trash) and opens the new one. Nothing is installed without your say.
New since 0.6.2
- Tab groups. Pastel colours, a + on the group's header for a new tab in it, drag a tab onto another to group them, drag it out to leave. Collapse and rename from the header; groups come back after a restart.
- Profiles. A strip of coloured dots above the pinned tabs. Each profile has its own cookies, tabs, history and bookmarks, so two accounts on one site can be open at once.
- Split view. Two pages side by side (right-click a tab › Open Side by Side) with a divider; Find, zoom and the address bar follow the half in focus.
- Page translation. A button in the address bar and in the page's menu. Google's online engine by default (fast, nothing to download); Apple's on-device one can be chosen in Settings › General. The page is translated as you scroll to it, and the agent tools always read the original text.
- Import from Chrome, Brave, Edge, Arc, Vivaldi, Opera, Firefox and Safari: bookmarks, history, and passwords as a CSV file (Settings › Import). Cookies are not imported.
- Hover preview and Peek. Hold ⌘ over a link for a small live preview; Shift-click a link to open it in a Peek over the page, then keep it as a tab or close it.
- Developer settings per site (user agent and more), listed in Settings.
- Settings › Tabs: how long a tab is left running before it is put to sleep (right away, 30 seconds up to an hour). A fresh install starts with the sidebar only; an existing install keeps its layout.
- Also: ChatGPT's icon shows again; the zoom level is in the page's right-click menu; Codex is in the agent list (Settings › Agents); signing in to Claude Code through a Google popup reaches the code screen (the page that opened the popup is no longer frozen meanwhile); Esc closes Find from the page.
Agent tools
arrangeandtabsknow groups, split view and profiles;opencan use a profile, and an optional "Agent" profile is created and chosen by the agent per task (Settings › Agents). Agents work in whichever profile is shown and ask before reaching into another, per site.- New
pick: you point at an element on the page and the agent gets it;selectionreturns the picked element first.
Known limits
- Passkeys and Apple Passwords need an Apple Developer ID and so don't work yet; "We weren't able to sign you in" with a Google passkey is that.
- Extensions run in the main profile only.
After updating, quit and reopen BasicShell if it did not restart itself, and start a new chat in your agent.
SHA-256: BasicShell-0.7.0.zip fc86e90b1659ae84bb7b91cf9aea74e2adea4e05f667b86ae2e862ade78f1127
BasicShell 0.6.2
Download: BasicShell-0.6.2.zip, with BasicShell.app inside: unzip, move it to Applications. A release is the build with the agent tools (Settings › Agents, off until you turn it on); the plain build is ./build.sh from the source.
It is self-signed, not an Apple Developer ID, so the first time macOS refuses to open it: open it once, then System Settings › Privacy & Security › Open Anyway.
Requires: macOS 27 on Apple silicon.
Updates. BasicShell updates itself: BasicShell menu › Check for Updates…, and once a day by itself unless Settings › General turns that off. Update and Restart downloads the zip, checks it against its SHA-256 and the app in it against this app's identifier, then replaces the old app (which goes to the Trash) and opens the new one. Nothing is installed without your say.
Changed since 0.6.1 (all in the agent tools; nothing else in the browser)
- A click that took the page to another address made the agent wait about 3.8 s for a script the page never answered. It now answers in about 0.2 s.
- Calls an agent sends together reach the browser in the order it sent them. Three clicks in one turn sometimes ran out of order.
expectandwaitalso see what a control is called (its aria-label, title or alt). A button that became "Selected colour Black" had madeexpectfail after 3 s although the click worked.read_pagereads a long page in windows (offset) and says which lines it has and where the rest is.findputs the closest names first, says where controls that are called the same are (the card a button is on), takes a regular expression, and lists what the page has when it finds nothing.- The page's language is said when it is not English. Controls behind an open dialog are marked, and a part of the page that scrolls by itself is said, with a point to scroll from.
searchtries once more when the keyboard does not get into the field.- A ref survives a page rebuilding its element; a link that opens a new tab says so; tabs can be closed together; Settings › Agents shows the short summary an agent gave of each call.
- The agent's instructions no longer tell it to start with
tabs, and its skill asks it to say it is done only from what the page shows.
After updating, quit and reopen BasicShell if it did not restart itself, and start a new chat in your agent.
SHA-256: BasicShell-0.6.2.zip 1b020382c04e952821f285946d78f4adfa5e6a77f6635e58969fff1697dcddad
BasicShell 0.6.1
Download: BasicShell-0.6.1.zip, with BasicShell.app inside: unzip, move it to Applications. A release is the build with the agent tools (Settings › Agents, off until you turn it on); the plain build is ./build.sh from the source.
It is self-signed, not an Apple Developer ID, so the first time macOS refuses to open it: open it once, then System Settings › Privacy & Security › Open Anyway.
Requires: macOS 27 on Apple silicon.
Updates. From 0.5.3 on, BasicShell updates itself: BasicShell menu › Check for Updates…, and once a day by itself unless Settings › General turns that off. Update and Restart downloads the zip, checks it against its SHA-256 and the app in it against this app's identifier, then replaces the old app (which goes to the Trash) and opens the new one. Nothing is installed without your say.
Fixed since 0.6.0
- Full screen on a screen with a notch: a click in the strip beside the notch, where the menu bar would be, reaches the page again. macOS kept every click there for the auto-hiding menu bar, so a link or button in the strip did nothing and the menu bar came down. The menu bar and the Dock are now hidden until the pointer presses against the top edge (or the Dock's edge, from where the Dock fills its zone); anywhere else in the strip the click is the page's.
- An extension's native helper that ends at once no longer takes BasicShell with it. Writing to it killed BasicShell with SIGPIPE, with no crash report; now the helper is closed and noted in the debug log. (Apple's iCloud Passwords helper is one that macOS refuses to start for BasicShell, so that extension still can't work here.)
After updating, quit and reopen BasicShell if it did not restart itself, and start a new chat in your agent.
SHA-256: BasicShell-0.6.1.zip 14f0b135a3085dca849bb4e38721b24d91e6be6f832fab7e520235669079258e
BasicShell 0.6.0
Download: BasicShell-0.6.0.zip, with BasicShell.app inside: unzip, move it to Applications. From here on a release is the build with the agent tools alone (Settings › Agents, off until you turn it on); the plain build is ./build.sh from the source.
It is self-signed, not an Apple Developer ID, so the first time macOS refuses to open it: open it once, then System Settings › Privacy & Security › Open Anyway.
Requires: macOS 27 on Apple silicon.
Updates. BasicShell can now update itself (0.5.3 and later): BasicShell menu › Check for Updates…, and once a day by itself unless Settings › General turns that off. A higher version number is offered with its notes; Update and Restart downloads the zip, checks it against its SHA-256 and the app in it against this app's identifier, then replaces the old app (which goes to the Trash) and opens the new one. Nothing is installed without your say. Earlier versions update by downloading this zip.
New since 0.5.1
- Reader (⌥⌘R): the article on its own in a page BasicShell makes, light, sepia or dark, serif or sans, five sizes, three widths. The page is read, never touched; the reader page has no JavaScript and lets in nothing but pictures. Any page can be tried; Esc closes it; Find works in it.
- ⇧⌘R copies the whole page, top to bottom, as one picture.
- A speaker on a tab that makes sound mutes it; Tab › Mute This Site keeps a site quiet.
- The "Link copied" pill (⇧⌘C) has QR Code and AirDrop.
- Downloads can be paused, resumed, cancelled and restarted, with speed and time left; a paused one is still there after a quit.
- Esc closes Find from the page too.
Agent tools (48; Settings › Agents)
settleand Settings › Agents › Waiting: how the tools know a click's effects are over. A script in the page (as before), the Web Inspector, which puts nothing in the page (about 130 MB for each tab worked in, given back a minute after; none returned early on a lab of 17 patterns, 47-86 ms after the page's own end), or the old 150 ms window. An agent may switch to the inspector by itself if an action comes back too early or late; it lasts until BasicShell quits.
After updating, quit and reopen BasicShell if it did not restart itself, and start a new chat in your agent.
SHA-256: BasicShell-0.6.0.zip 071b63f4851783c1b9f30cdc822e86d4fa6904c45701205ddba2ce50469a02ee
BasicShell 0.5.1
Download: one of two, each with BasicShell.app inside: unzip, move it to Applications.
BasicShell-0.5.1.zip: BasicShell.BasicShell-0.5.1-agent.zip: the same with the agent tools. The plain one has no part of them.
It is self-signed, not an Apple Developer ID, so the first time macOS refuses to open it: open it once, then System Settings › Privacy & Security › Open Anyway.
Requires: macOS 27 on Apple silicon.
In the plain build: nothing you would notice.
In the build with the agent tools (47 tools; Settings › Agents)
- Faster, and by events: nothing is waited for by sleeping or looking again and again. A click is 0.04 s (it was 0.23), a hover 0.04 (0.27), typing 0.04 (0.30), a read of a tab that was asleep 0.09 (0.35). The default report now sees what a page adds 400 ms after a click or after a fetch, which the old 150 ms window missed (31 of 85 reactions in a lab of 17 patterns, none now).
- It does that with a small tracker put in the pages an agent works in (not in other pages, and not in a page with a password or card field).
defaults write com.mbahakeskin.basicshell agent.quietTracker -bool falseturns it off. - Hover works (it did nothing before). Calls that arrive together run together. Pictures no longer hold the browser up (a screenshot stalled it 95 ms, now 0), and
read_pagesstarts the next page as soon as one is done. - Name things by what they say:
labelorselectorinstead of a ref,expectto check the result,pictureto click in a region or tile;batchactions can beoptionalorrepeat. - Reading less:
tabsfilters,read_texttakesselector,main,structured;read_pagetakessince_last; a newapitool gives the data a page fetched as rows. - The frame says "Agent at work" (it was cut off) and "Agent done" ten seconds after the last call, then goes; the tab is let go after two minutes, not ten.
After updating, quit and reopen BasicShell, and start a new chat in your agent if you use the build with its tools.
SHA-256: BasicShell-0.5.1.zip b212d13eae9a02bbda27705d0d7f125ff3893024368b022b2602448dacf3de1e, BasicShell-0.5.1-agent.zip 57fb1f7d7c3a9124ca5a29dfccdee8be5de8e82d6909a7d209c6ab27bac1575c
BasicShell 0.5.0
Download: one of two, each with BasicShell.app inside: unzip, move it to Applications.
BasicShell-0.5.0.zip: BasicShell.BasicShell-0.5.0-agent.zip: the same with the agent tools. The plain one has no part of them.
It is self-signed, not an Apple Developer ID, so the first time macOS refuses to open it: open it once, then System Settings › Privacy & Security › Open Anyway.
Requires: macOS 27 on Apple silicon.
In both builds
- Full screen beside the notch: the menu bar and the Dock are macOS's own auto-hiding ones now. The menu bar sometimes came halfway down and went back up; macOS does that when the options change while the pointer rests at the top, so they are set once. It comes down when the pointer touches the top, without the earlier rest, and the top bar moves below it.
- Closing the tab shown goes back to the one shown before it, not to its neighbour.
In the build with the agent tools (Settings › Agents; they are no longer called Claude's, and any MCP client can connect)
- 46 tools, handed over as a short list;
helpgives the whole description of one. - Fewer round trips: a click, key or fill says what changed;
openandnavigatelist the page; newfill_form,searchandread_pages(up to 25 addresses in one call). Waits end when the page is still, not after fixed times. screenshottakesmax_width,quality,marks, andfull_pagewithtileoroverview.- Settings › Agents › Connect can write a skill for Claude Code, and the activity list shows how long each call took.
- Files on this Mac are one site an agent asks for; what a page asks while an agent works in it is answered no; "Remember" starts ticked.
After updating, quit and reopen BasicShell, and start a new chat in your agent if you use the build with its tools.
SHA-256: BasicShell-0.5.0.zip 06e05cb8911d233a922bb2cdb6b104a56aa1989058d717e1d105777b4c4dba5e, BasicShell-0.5.0-agent.zip 23f92ab58cc911048f9753e64f77ef8529b85df4a44650462423f2a5a9d37029
BasicShell 0.4.6
Download: one of two, each with BasicShell.app inside: unzip, move it to Applications.
BasicShell-0.4.6.zip: BasicShell with what is new below under "In both builds".BasicShell-0.4.6-claude.zip: the same with Claude's tools. The plain one has no part of them.
It is self-signed, not an Apple Developer ID, so the first time macOS refuses to open it: open it once, then System Settings › Privacy & Security › Open Anyway.
Requires: macOS 27 on Apple silicon.
In both builds
- Site information: the lock at the left of the address (an "i" where the page isn't secure) brings up how the page was fetched and by whose certificate (with the system's own viewer), what the site was allowed (location, notifications; each can be taken back), what it keeps on this Mac (its cookies and stored data, which can be removed), and its zoom.
- Zoom is kept by site:
⌘+,⌘−and the panel's buttons set it, and it comes back whenever a tab goes to the site. It is never remembered from a private tab. Settings › Tabs lists the sites that have one. - A Develop menu in the menu bar, as in Safari, out of sight until Settings › General turns it on: the Web Inspector, its console, a page's source and resources, picking an element on it, recording its timeline; the inspector of an extension's background page; the user agent a tab introduces itself with (an iPhone, an iPad, Chrome, Firefox, or one typed in, which is remembered), a phone's, a tablet's or a typed-in size, a light or dark look; a tab without JavaScript, images or styles, without the same-origin policy, or without the limits on what a file may read; emptying the caches; WebKit's experimental features.
- A Debug menu beside it, likewise: WebKit's internal debugging features (compositing borders, repaint counters, the resource usage overlay…), the web process's number and crashing it, the page as a web archive. What is switched in either is kept and put on the pages opened after; "Reset All WebKit Features to Defaults" takes it back. Safari's own Debug menu has more (iCloud, CloudKit, AutoFill); that is Safari's, not WebKit's.
- View › Debug Log is now Develop › Debug Log (Settings › General still opens it).
In the build with Claude's tools (4 tools were added to the 38 of 0.4.5, 42 in all)
site_info: whether the connection is secure, the certificate's holder, issuer and expiry, what the person allowed the site, its cookie count, the zoom, how the tab is set. Needs your "read" for the site.- Behind Developer tools:
render(a tab without its JavaScript, images or styles; put back when Claude lets the tab go),source(the page as the site sent it, before its scripts ran; values of password and card fields replaced by[hidden]) andfeatures(WebKit's experimental and debugging features, the same as the menus'; a change lasts while Claude is connected, and whatever touches privacy or security stays yours). extensionscan also say the problems WebKit reports for an extension, and, with Developer tools on, what its background page writes to the console. It can't run a script in one.resizetakes any user agent, not only a phone's or a tablet's.- Settings › Claude has a new switch, "WebKit features", under Developer tools. "Bypass permissions" turns it on with the rest; privacy and security features and the same-origin and file restrictions are not Claude's even then.
After updating, quit and reopen BasicShell, and start a new chat in Claude if you use the build with its tools: a chat reads the tools when it starts. Adding BasicShell to Claude Code or the Claude app once is enough. The Develop and Debug menus are off until Settings › General turns them on.
SHA-256: BasicShell-0.4.6.zip b382d1fb372dd538dc068a9b92e91857a69e33604858dc9f21fe2d673818c0f2, BasicShell-0.4.6-claude.zip abddff1b64ecf4d2462d3ca505e021d99bcc6557917cd30a36a465aa67a41610
BasicShell 0.4.5
Download: one of two, each with BasicShell.app inside: unzip, move it to Applications.
BasicShell-0.4.5.zip: BasicShell as it was in 0.4.4. Nothing in it has changed.BasicShell-0.4.5-claude.zip: the same with Claude's tools (below). The plain one has no part of them.
It is self-signed, not an Apple Developer ID, so the first time macOS refuses to open it: open it once, then System Settings › Privacy & Security › Open Anyway.
Requires: macOS 27 on Apple silicon.
In the build with Claude's tools (12 tools were added to the 26 of 0.4.4, 38 in all)
- More on a page:
drag(sliders, sortable lists, canvases, text selection),screenshotof a part, enlarged, or of the whole page,selection(what you have selected),keywith a repeat,waitfor text, a CSS selector, the address or a quiet network,download(into Downloads, asked each time),navigatewith a hard reload,resize(the window's size, a phone's or tablet's, light or dark, zoom, user agent) andbatch(several tools in one call). - The browser itself, each off until you turn it on:
arrange(pin, copy, sleep or move a tab, take it to a window),clipboard,extensions(list, reload), and the history, bookmarks and downloads. - For developers, behind Developer tools:
inspect(an element's styles, box and HTML),performance(load timings, paints, slowest requests),block(keep a tab from loading requests that match), request and response bodies innetwork(passwords, tokens, keys and cookies replaced by [hidden]) andstorage(cookies, local and session storage, databases; a value only when asked, an HttpOnly cookie's never, clearing asked first). - Settings › Claude is new: it says what each part allows, in words, with the tools it turns on; sets a site (read, read and ask before clicking, read only, read and act, or never) and adds one before Claude asks; and lists what Claude has done since BasicShell opened.
- "Bypass permissions" now turns every switch on while it is on, as well as the asking: sites, files, downloads and clearing cookies unasked. The sites you said no to stay closed, private tabs and password and card fields stay out of reach, and Stop still stops it.
- The README has a section on what this does that Claude in Chrome doesn't, and where Claude in Chrome is still ahead.
- A page can try to talk Claude into things with text you don't see, and this has no classifier checking each action as Anthropic's extension does: keep it to sites you trust.
After updating, quit and reopen BasicShell and start a new chat in Claude: it reads the tools when a chat starts. Adding BasicShell to Claude Code or the Claude app once is enough.
SHA-256: BasicShell-0.4.5.zip 381588f348d4beed9b62dc161ab5e4cb57d3ee01ce442133ca9c2996ac47c1a1, BasicShell-0.4.5-claude.zip dc65f182f44c45d1ce38febb322a692ef641846570d7171126076270e12122a1