Read the active tab
Use the current tab as the starting point, but make it clear when Chrome blocks the page or when context is empty.
Diary | Local Browser AI Experiment
A personal builder diary on Nano Workbench, a local-first Chrome extension experiment for page summaries, documents, OCR, screenshots, voice notes, and private browser memory.
I built Nano Workbench to test a specific idea: can Chrome's on-device AI become useful inside the browser without creating a developer backend for the user's page text, prompts, screenshots, notes, or transcripts?
The browser is already where much of the work happens: reading a page, comparing information, saving notes, checking a document, capturing a screen, or extracting text from an image. The side panel keeps the AI surface beside that work.
The hard question is not whether AI can summarize a page. The hard question is whether the tool can show the exact source, explain the browser boundary, and keep local records under user control.
This page records the build as a learning diary: what the extension does, how it can be tried locally, what is hard, and why the product needs diagnostics as much as features.
Build Model
What source is being used right now? The answer could be the active page, selected text, an attached file, an image, a screenshot, a voice transcript, local memory, or no page context at all.
Implementation Track
Use the current tab as the starting point, but make it clear when Chrome blocks the page or when context is empty.
Keep the assistant in Chrome's side panel so the answer stays next to the page, document, image, or screenshot being used.
Support page text, selected text, PDFs, DOCX, images, screenshots, voice memos, and generic chat without hiding the source.
Show model readiness, blocked pages, storage state, screenshot status, OCR support, voice state, and conversation evidence.
User-Facing Surfaces
Summarize the tab, ask questions, or send a highlighted paragraph through the right-click menu.
Attach documents, run image OCR when supported, and keep the source type visible.
Capture visible or long pages, record voice notes, and save only transcript text locally.
Use local memos, tab sessions, and diagnostics to make the assistant more explainable.
Working Model
Nano Workbench is useful only if it can name the source, check the browser boundary, route the selected input, and tell the user what was actually available to the local model.
A normal http or https tab is the safest starting point.
Choose page, selection, file, image, screenshot, voice, or chat.
Chrome local model, APIs, page access, and permissions must be ready.
The result appears beside the source rather than in a detached tool.
Doctor and local memory keep the state reviewable.
The source must be named: page, selected text, file, image, screenshot, voice note, memory, or generic chat.
The product has to show where records live and whether any feature has a browser or service caveat.
Internal pages, model availability, image support, and Web Speech behavior are browser realities the UI must explain.
A local tool earns trust when it can say what worked, what failed, and what source was actually used.
Source Modes
This is the part that should be visible in the design. The app is not a single chat box. It is a small browser workbench that routes page text, chosen text, files, images, screenshots, and voice notes through different paths.
The basic mode: summarize or ask questions about the current page when Chrome allows the page to be read.
Right-click a highlighted paragraph and send only that chosen text into the side panel workflow.
Attach text, markdown, CSV, JSON, PDF, DOCX, or image files for local reading and summarization.
Try extracting text from an image when Chrome's local image capability is available.
Capture visible pages or full pages, save them locally, and use them as visual work records.
Record a memo or meeting note. Audio is not stored; saved transcript text remains local.
Why This Exists
A lot of AI workflows still require copying material into another window. That breaks the flow of reading and working, and it can make the context boundary unclear.
Nano Workbench tries a different path: let the user choose the context inside Chrome, keep the assistant beside the page, and make it clear what is local and what is not available.
The user chooses the context. The browser does the work. The developer should not see the user's content.
What It Does Today
The extension supports page summaries, tab questions, local files, image OCR, screenshots, voice notes, memos, history, tab sessions, exports, right-click actions, and Doctor diagnostics.
Animated Pipeline
A click on the extension icon should not hide the path. The page needs to show that Nano Workbench first identifies a source, then checks the local model, then uses helper tools such as OCR, screenshots, Web Speech, storage, and Doctor.
The extension starts from the active tab, selected text, or the current browser task.
The user chooses page text, file, image, screenshot, voice note, or generic chat.
Chrome on-device AI runs only when the local model and browser APIs are ready.
OCR, screenshots, downloads, Web Speech, and local parsers handle the extra source types.
Doctor records readiness and failure evidence without exposing private page content.
Build History
The project kept expanding as each source type introduced a new boundary: page access, file parsing, image support, screenshot capture, voice transcription, local records, and diagnostic proof.
The first milestone was to open the side panel, read the current page when allowed, and keep the answer beside the source.
The project then separated active tab, selected text, file upload, image OCR, screenshot capture, voice memo, and generic chat.
No developer backend, no analytics, no telemetry, no ads, and no account became design constraints, not footer language.
Doctor became the screen for model readiness, page access, storage, screenshot, OCR, voice, and conversation state.
For reusable code, MIT is the practical default. Personal writing, screenshots, and diary material remain separate unless clearly permitted.
Local First Architecture
The architecture is intentionally modest. The extension tries to keep page text, prompts, notes, screenshots, conversations, memos, and transcripts local unless the user deliberately exports or shares something.
The page the user is already working with
A Chrome workspace beside the page
Chrome local model when available
PDF, DOCX, text, CSV, JSON, markdown, and images
Image text extraction when Chrome supports it
Visible and full-page capture experiments
Memos, sessions, notes, and work history
Evidence for model, page, storage, voice, and capture health
Engineering Insights
A browser assistant becomes useful only when it handles context, readiness, screenshots, OCR, voice, and local memory without making hidden assumptions.
Actual Working Contract
The working contract is concrete: if the page cannot be read, say so. If the model is not ready, show setup. If the source is a screenshot or image, make the visual path clear. If voice uses Web Speech, explain the caveat. If anything is saved, keep the local record visible.
Engineering Diary
Chrome internal pages, host permissions, model setup, OCR support, long-page capture, Web Speech behavior, and local storage are not footnotes. They shape the actual experience.
The side panel keeps the answer beside the current tab, so the source and the response remain in the same working frame.
Readiness checks for page access, model state, OCR, screenshots, voice, storage, and conversation state make the tool more trustworthy.
Browser permissions are powerful. The interface and documentation must say why access is needed and when it is used.
Page, selection, file, image, screenshot, voice, memory, and Doctor need distinct signals so the user knows the current mode quickly.
Diagnostics Mindset
If the model is missing, a page is blocked, context is stale, or OCR is weak, the extension should explain the state rather than pretend the result is complete.
Chrome version, on-device model download, API availability, or local feature flag state.
Show a setup and status screen before asking the user to trust AI output.
Chrome internal page, protected site, permission boundary, or browser restriction.
Explain that the page cannot be read and switch to generic chat or another user-selected context.
Tab switch, page reload, long session, or a mismatch between the visible page and stored context.
Refresh page context and make the current source visible before answering.
Image quality, browser image support, microphone permission, or Web Speech service behavior.
Show what was attempted, what failed, and what data remains local.
The Hard Parts
The extension needs page access to be useful, but that same permission must be explained plainly and used only for user-chosen context.
Full-page capture involves scrolling, splitting, stitching, saving, and checking whether the output is actually complete.
Voice transcription uses Chrome Web Speech API, which may use a Google speech service depending on the setup. That boundary must be visible.
MIT is the preferred default for reusable code. Diary writing, screenshots, and personal notes should stay separate unless permission is clearly given.
The public store path should be linked only after review is complete. The diary should explain the route without listing internal release details.
Evidence should help debugging without exposing private page text, prompts, notes, screenshots, or transcripts.
Data Layer
The app stores local memos, history, tab sessions, notes, and diagnostic evidence in browser-local storage. That is useful only if the user can understand what is saved and when export is a deliberate choice.
Memos, history, tab sessions, and work notes begin in browser-local storage so the prototype can be tested without a server.
As documents, OCR, screenshots, voice notes, and sessions grow, the data model becomes part of the product experience.
The user may export or share selected material, but the default direction is local control, not automatic upload.
Download And Try Locally
There is no separate frontend build step for normal local use. The folder that contains manifest.json is the folder Chrome loads.
Clone the public repository or download the ZIP from GitHub.
Go to chrome://extensions and turn on Developer mode.
Select the folder that contains manifest.json. There is no separate frontend build step for normal local use.
Use a regular http or https page, then click the extension icon to open the side panel.
Git Option
git clone https://github.com/Najariya/nano-workbench.git
cd nano-workbenchZIP Option
Open GitHub, choose Code, download the ZIP, unzip it, and then load the extracted folder through Chrome Developer mode.
Open GitHub repositoryPermissions
The extension uses permissions such as side panel, storage, scripting, tabs, active tab, downloads, context menus, tab groups, optional history, and broad host access. These permissions are not decorative. They decide whether the workbench can see the user selected page, save local notes, add right-click actions, capture screenshots, and open beside the current page.
The important design rule is that access should follow the user selected context and should be explained in ordinary language.
What To Try First
Future Roadmap
The direction is not to make a dramatic claim. The direction is to make the current browser task more understandable, more private, and more useful, one layer at a time.
Make page summary, tab questions, selected text, and generic chat reliable and easy to understand.
Improve documents, images, screenshots, OCR, voice memos, and meeting notes with clearer status and safer defaults.
Turn browser-local notes, sessions, and history into a useful memory layer that remains under user control.
Move toward a refined, private assistant for the browser that can explain context, actions, and boundaries.
Current Boundary
The current working candidate is being validated locally and through Doctor evidence. The public store path should be added only after review is complete, without turning this diary into a release tracker.
For the source code, MIT is the preferred default license when reuse is intended. The writing, screenshots, and personal diary material remain separate unless permission is clearly stated.
This page is a record of a browser experiment: a side panel that tries to keep AI close to the user's chosen source, keep records local, and make failure states visible instead of hiding them behind a polished answer.
Follow the Nano Workbench build on GitHub