neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
SLICC는 브라우저 내 AI 에이전트로 웹 앱 자동화·셸 명령 실행·병렬 에이전트 조정을 수행하며 서버·API 키·승인이 필요 없습니다
SLICC is a browser-native AI agent that automates web apps, runs shell commands, and coordinates parallel agents. No server, no API keys, nothing to approve.
개발 도구TypeScript · SwiftGitHub @ai-ecoverse온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
A browser-native AI agent (claw) for everyone that loves ice cream
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
You are looking at a macOS desktop, with four windows running:
1. Google Chrome, running SLICC as a web application. It shows a Welcome page, a hidden tab with meeting preparation notes that were created by the agent, and a terminal, showing that the operating system is of the unlikely Mozilla/5.0 kind. What?
2. Slack, the desktop app. Err. Slack the Electron app. It has an overlay injected, showing the ice cream logo asking to join a tray. If you do this, Slack can be remote-controlled by your agent. What the?
3. Sliccstart, the desktop app.README 전문 보기 ↗You are looking at a macOS desktop, with four windows running:
Mozilla/5.0 kind. What?If this scares, confuses, or excites you, keep reading.
A browser-native AI agent for getting practical work done in and through the browser.
🍦 Home page: www.sliccy.com · Hosted app: www.sliccy.ai/?slicc=leader
SLICC runs in a browser and controls the browser it runs in. It combines a shell, files, browser automation, and multi-agent delegation so you can do real work from one workspace — coding, web automation, authenticated app tasks, and the weird in-between jobs that do not fit neatly inside a chat panel. SLICC can orchestrate multiple browsers, and even some apps through telepathy, making it a powerful hub for your digital work.
The fastest ways to try it:
.dmg from releases. No Windows or Linux UI yet.npx sliccy launches Chrome with the local workspace attached. Node 22+ required.curl -fsSL https://www.sliccy.ai/install-cli | sh installs the Go slicc follower binary (macOS, Linux, WSL, Git Bash) into ~/.local/bin (or a writable /usr/local/bin). Native Windows: irm https://www.sliccy.ai/install-cli.ps1 | iex.Once you're in, you can:
bash, git, node, python, playwright)Status: active working prototype. The macOS app is the easiest way in today; the extension is on the Chrome Web Store.
Scoop shells bound supported filesystem traversals and command buffers. See the shell work limits for limits and command coverage.
git, "node", python, playwright, built-in. Text files use UTF-8 by default; binary pipelines and explicit file encodings preserve their bytes. Browser files support serialized appends and persistent modes/timestamps./workspace/skills, and it also discovers compatible .agents / .claude skills read-only across the reachable VFS.sliccy.ai, connect multiple tray sessions, attach to Electron apps, embed SLICC into any third-party page via the @ai-ecoverse/cherry host SDK, or join from an iOS follower (SliccFollower) with read/write leader files in Files.app — all on the same core.SLICC is for you if:
Link header with a SLICC handoff or upskill rel (the tray-hub /handoff?handoff=... / ?upskill=... endpoint is a convenience) and SLICC prompts you to approve the action inside the Chat tab.bash, git, grep, node, python, previews, and browser automation when the job is bigger than text generation.mcp add <url> <name> to register a server, mcp exposure <name> direct to expose its tools as native agent tools, or keep the default server-local QuickJS codemode tool. Direct tool names use underscores in place of hyphens; mcp invoke and codemode scripts still use the server's original wire names..jsh CLIs as one MCP server. mcp --serve <path> (repeatable; name=path sets the tool prefix) prints one https://<token>.sliccy.now/mcp URL. A later --serve joins that URL. mcp --serve --list prints it; mcp --serve --stop [name] drops one CLI or the whole server. Accepting the consent page lets that client run every published CLI, including each script's skill token and the signed-in browser. Adding a CLI after Accept asks again.edit tool. One call can apply multiple unique, non-overlapping replacements while preserving BOMs and line endings; replacement text is always literal, so $ sequences cannot rewrite themselves through JavaScript replacement expansion.<img:data:image/...;base64,...> markers from commands such as and render as bounded, lazy-loaded inline images in chat tool rows. Each tool body displays at most four images and shows an explicit overflow indication when more are present.The fastest way to try SLICC — no clone, no install:
npx sliccy
This downloads the latest release, launches Chrome, and opens the workspace. Configure your LLM provider in the first-run settings dialog. Requires Node >= 22.19.
If you plan to use SLICC regularly:
npm install -g sliccy
slicc
git clone https://github.com/ai-ecoverse/slicc.git
cd slicc
npm install
npm run dev
npm run dev runs the node-server with Vite HMR, launches Chrome, and opens the workspace on http://localhost:5710. npm start runs the pre-built bundle from dist/, so use it only after npm run build.
cp packages/dev-tools/providers.example.json packages/webapp/providers.jsonThe extension is a thin CDP bridge — no bundled UI, no offscreen agent engine. The full SLICC webapp loads from the hosted leader tab (https://www.sliccy.ai/?slicc=leader); the extension just pins that tab, proxies chrome.debugger to it, and — when you click the toolbar icon — opens an on-demand Chrome side panel that iframes the hosted ?cherry=1 follower for inline use.
Install it from the Chrome Web Store. The extension's source, build, and release live in ai-ecoverse/slicc-extension; this repo keeps only the webapp side of the protocol it speaks. The service worker pins the hosted leader tab on install; clicking the toolbar icon focuses it (or recreates it if the user closed it). Each page you visit gets the launcher overlay, which iframes the same hosted webapp as an auto-follow follower.
SLICC can mirror itself across multiple browsers, even on other machines:
host in the built-in terminal to print the URL.)host leave does the same thing; host leave --leader <worker-url> leaves the current role and becomes a leader on that worker.Tray protocol changes are additive, so older browsers keep syncing while newer controls stay hidden until both peers support them. Once connected, the sessions stay in sync in real time. A follower can switch the model of the cone it is viewing — model selection is per cone, so this never disturbs the cone the leader is working in — and adjust thinking for its selected scoop, while provider credentials remain on the leader.
SLICC can also attach to Electron apps and inject the same shared overlay into their pages. The best way to use it with Electron apps is to use the Join Tray feature, so that the Electron app becomes a remote-controllable target.
npm run dev:electron -- /Applications/Slack.app
For the full Electron workflow, see docs/electron.md.
slicc (the Go CLI in packages/slicc-cli/) joins a leader session from any terminal — prompt, exec, watch, and follow over the same WebRTC tray channel the browser and iOS followers use. Install the released binary for your platform:
npx sliccy --install-cli
This finds the newest release carrying CLI binaries (they only attach when the CLI changed) and installs the one for your OS/architecture to the idiomatic place: ~/.local/bin when it is on your PATH, otherwise /usr/local/bin when writable without privileges, otherwise ~/.local/bin with a PATH hint (%LOCALAPPDATA%\Programs\slicc on Windows; --install-dir <dir> overrides).
On macOS, launching a terminal follower from Sliccstart also exposes its managed CLI at ~/.local/bin/slicc. Existing user installs are never replaced, and failure to create the symlink does not block the terminal launch.
Run a leader on a GitHub Actions runner for as long as a job allows, seed it with credentials, files, and mounted folders, and talk to it from the same job or from other workflows through the slicc CLI:
jobs:
slicc:
uses: ai-ecoverse/slicc/.github/workflows/slicc-leader.yml@main
with:
duration: 45m
prompt: Summarize /mnt/repo/README.md into /workspace/summary.md
fetch-file: /workspace/summary.md
mounts: |
${{ github.workspace }}:/mnt/repo
secrets:
SLICC_CONE_CONFIG: ${{ secrets.SLICC_CONE_CONFIG }}
Companion workflows send prompts, run shell commands, read and write VFS files, and lend a second runner to the leader as an exec-capable follower. Reference and recipes: packages/github-workflow/README.md.
SLICC shares one core across every runtime ("float"). The browser is not just where you view the product — it is where the agent runtime lives.
@slicc/cloud-core over an e2b sandbox), and the native macOS / iOS surfaces (Sliccstart, slicc-server, SliccFollower) all reuse the same underlying system.Once the product makes sense, the ice-cream language is easier to enjoy: it maps to real architecture, not just mascot energy.
/cones/<folder>/workspace) and memory file, so cones do not overwrite each other's files or interleave each other's memory — what a cone learns is remembered for that cone; /shared, /tmp and installed skills stay common. You never talk to a scoop directly: opening one from the tab strip shows its transcript with no composer — you watch it work, and everything it needs from you (a sudo request, an approval, a nudge when it goes idle) appears in the chat of the cone that owns it. The cone is where you answer, and feed_scoop from the cone is the only way to send a scoop input. The iPhone/iPad follower shows the same read-only scoop view. A Cherry embed — SLICC as a garnish inside someone else's page — mirrors the cones its leader has but never offers to create or drop one.Why the name? SLICC stands for Self-Licking Ice Cream Cone: a recursive system that can help build, extend, and operate itself. A browser agent running inside the browser: that's as self-recursive as tongue-out gelato.
SLICC's main control is a text field, so it has no always-on shortcuts to collide with your typing. Instead it has a mode, like vim. By default (Auto), the mode is where you rest: keyboard mode is on whenever nothing is focused for typing (and you are not clicking composer chrome like the + button), and every key below is a bare letter. Press Esc to leave the composer for it, or just click somewhere that is not the composer. To type again, press ⏎ or i (or click into the composer). While the mode is on, a pill above the composer says so.
In Theme settings you can switch how the mode is entered:
| Trigger | Behavior |
|---|---|
| Auto (default) | On whenever you are not typing / not in composer chrome |
| Esc | Only Esc enters; blurring the composer does not |
| Off | Keyboard mode disabled |
The choice is stored as "trigger" in /etc/slicc/keys.json ("auto", "esc", or null).
| Key | Action |
|---|---|
| Esc | Leave the composer for keyboard mode (again: exit full screen) |
| i or ⏎ | Back to the composer |
| ? | This list, in an overlay |
| 1…9 | Switch to that agent in the tab strip (9 = last) |
| → / ← | Next / previous agent, looping |
| n / N | New conversation / new conversation, erasing this one |
| c / C | New cone / drop this cone |
| r | Archived chats (with 1–9: restore that one) |
| s | Stop the running turn |
| a | Go to the pending approval |
| u | Attach a file or skill |
| v | Dictate — press again to send |
| y / Y | Copy the last reply / the whole chat |
| j / k | Next / previous message — or entry, inside an open list |
| f | File browser (with 1–9: open that row) |
| t | Terminal |
| b | Browser tabs (then 1–9 to switch) |
| p | Peek a tab (then 1–9: show it and come back) |
| m | Memory (with 1–9: open that entry) |
| g | Monitor |
| e | Sprinkles (with 1–9: open that one) |
| [ / ] | Toggle the left rail / the right panel |
| z | Full screen the open panel |
| l | Model picker |
| L | Next model |
| h | Next thinking level |
| , | Accounts |
Chords. Anything that owns a list takes a digit straight after it, and the digit picks from THAT list instead of the tab strip: f 3 is the third file, r 1 is the chat you archived most recently, e 2 is the second sprinkle. 9 is always the last one, exactly as it is for agents. The first key acts immediately, so f on its own is still just "open the files panel", and a digit pressed on its own is still an agent.
Tabs. b opens the tab switcher, and its cards are numbered: press 1–9 to switch to one (9 is always the last). p opens it ready to peek instead — so p 1 shows you that tab and brings you back five seconds later, without you losing your place. p also arms peek from inside the switcher if you are already looking at it; the chip in the header says so, it applies to a click too, and closing the switcher disarms it.
j and k walk the same lists, looping — e j j steps through your sprinkles, f k jumps straight to the last file — and with no list open they walk the conversation a message at a time instead. A list stays addressable for exactly as long as its keys are still showing on the pill, and every digit or step key keeps both alive, so a walk down a long list never expires under you.
Every key you press shows up as a cap on the pill — dimmed if it was not bound to anything, so a mistyped key reads as "that did nothing" rather than as a dead keyboard. The strip clears after a moment of quiet.
Keys that navigate, or toggle chrome (digits, the arrows, j, k, [, ], s, v, z, help), keep the mode on; anything that hands focus to a surface leaves it, whether that is a shortcut, a click, or a panel that opens with a field ready. Inside a text field nothing is intercepted at all, and a focused button keeps its own ⏎ and Space. The overlay is also in the avatar menu, under Keyboard mode.
Switching agents keeps your place. The mode you were in when you left a cone is the mode you land back in: leave it typing and the caret is waiting in the new cone's composer, leave it in keyboard mode and the pill is still up. A scoop's transcript is read-only and has no composer at all, so it always puts you in keyboard mode — but it does not overwrite what you left behind, so cone → scoop → cone gives your caret back.
Rebinding. The keys live in /etc/slicc/keys.json in the VFS — edit it and reload the tab (Theme settings writes "trigger" live without a reload). Bindings ship EMPTY: the keymap above lives in SLICC itself and the file holds only your overrides, so anything you do not mention follows the shipped map, including keys a later version adds. Each entry maps a key to a command ("q": "terminal") and several keys can share one; null removes a binding. The file lists every command it accepts, and a chord follows its command — rebind files to q and q 3 is the third file. Esc and the digits are reserved. A bad line is skipped with a warning rather than costing you the rest of the file, and the help overlay always shows what is actually bound.
Upgrading from 6.110 or earlier? That version wrote its whole keymap into
/etc/slicc/keys.json, which would have pinned you to it forever. If you never edited the file, SLICC replaces it once with the empty one so the map above reaches you; if you did edit it, your file is left exactly as it is. To keep the old keys, the file's comment carries them as a block you can paste back into"bindings".
To use SLICC, you need an LLM provider. SLICC is very much a BYOT (bring your own tokens) affair. We have built-in support for many providers, and these have actually been tested.
The bundled pi 0.99.1 catalogue includes GPT-6.1 Sol for OpenAI, Azure OpenAI Responses, and OpenAI Codex. Those entries currently declare a 272,000-token context window, although OpenAI documents 1,050,000 tokens; output is capped at 128,000 tokens. OpenAI Codex now defaults to GPT-6.1 Sol.
OpenAI Codex (ChatGPT Subscription) hides models that OpenAI has retired from Codex with ChatGPT sign-in, such as GPT-5.5. If an existing cone still has a retired model selected, choose a current model beneath its composer.
On Bedrock CAMP, select GPT-6.1 Sol (Global) (global.openai.gpt-6.1-sol). Its Converse profile was verified in US, EU, and APAC regions. It accepts tool use, user images, and reasoning effort low through max; SLICC omits unsupported temperature and moves tool-result images into adjacent user content. Global rates are $2 input / $10 output per million tokens, with higher rates above 272,000 input tokens.
Bedrock CAMP also offers Grok 4.7 (Global) (global.xai.grok-4.7) and Grok 4.7 (US) (us.xai.grok-4.7). They accept tool use and user images, with reasoning effort low, medium or high; SLICC omits unsupported temperature and moves tool-result images into adjacent user content. Global rates are $2 input / $6 output / $0.50 cache read per million tokens (US +10%), with no long-context tier.
The other providers are in YMMV territory. Please file an issue if you find them working or broken.
When a provider's longer-lived AI allowance is exhausted, SLICC stops automatic retries and offers to switch or add a provider instead. Adobe weekly-budget responses preserve their reset date, while Grok credit/subscription refusals use the same Out of AI budget treatment. Brief 429 rate limits remain retryable.
SLICC can safely manage API keys, tokens, and credentials with domain-scoped injection. The agent never sees real secret values — only masked placeholders — and secrets are only injected into requests destined for authorized domains. This protects against prompt-injection attacks that try to exfiltrate credentials.
See docs/secrets.md for setup instructions.
Found a vulnerability? Please report it privately — see SECURITY.md.
SLICC is part of the AI Ecoverse, a growing set of AI-native tools and workflows. Its distinctive angle is simple: browser-native, practical, and job-oriented.
SLICC would not have been possible without the pioneering inspiration of OpenClaw, NanoClaw, and Pi. Pi is actually the frozen heart of every SLICC instance.
Developers can verify native browser storage with npm run test:opfs and trial the
optional OPFS preload setting.
If you want to go deeper, the detailed docs live here:
open --viewscreencaptureimgcat photo.png sends image bytes to its Kitty graphics preview. Other supported image and video types keep their existing media preview.computer bash rows show a live or frozen frame — frozen stills never forward input. A Swift-launcher Mac advertises native capture; iOS is viewer-only.serve --bridge <dir> mints a URL whose every visitor tab becomes a live, leader-driveable synthetic-CDP target — the agent can navigate/click/evaluate/screenshot and weave in webhook licks. Security: opt-in only; cross-subdomain cookie risk accepted and documented (host-only cookies isolated per preview; Domain=.sliccy.now cookies readable across all previews).serve --ttl 30d <dir> uploads an immutable snapshot that remains available without the tray leader for up to 30 days; serve --stop <token> revokes it early. Files are capped at 25 MiB; a tray holds up to 10 snapshots (live previews are unlimited and expire once the leader has been gone for 5 minutes) — see serve limits.bb.jsh, check.sh, packages/webapp/src/main.ts:42 — SLICC checks it against the workspace in the background and turns the ones that really exist into links. Clicking opens a preview; a mention that does not resolve stays plain text, so there are no dead links. A file with uncommitted changes opens on its diff. Names are read in the context of what the agent has already DONE: after echo "test" > /home/lars/foo.md, a later "see foo.md" links to that exact file — even when it lives outside the workspace, and even when three other foo.md files exist.data: URL, the output of base64 < report.pdf — collapses to a chip naming what it is and how big it is (png · 12 KB). Clicking opens it in the same previewer a file name does: images render, PDFs and audio play, text and JSON are syntax-highlighted. Only payloads SLICC can actually decode and recognize are collapsed; anything else stays exactly as you typed it, and long strings of every kind now wrap instead of dragging the chat column sideways..md or .html preview opens as the document — formatted prose, a laid-out page — with a Source toggle for the syntax-highlighted markup (and Diff when the file has uncommitted changes). HTML renders in a sandboxed frame that cannot run scripts or reach the app..jsh, a Justfile) previews as source instead of refusing. Text is syntax-highlighted, PDFs render inline, and images, audio, and video play as before..skill archives still install into /workspace/skills./sessions snapshot they point at./sessions as a live snapshot (one per cone, extended on every round) and the summary tells the agent where to find it. New chat completes that snapshot into a normal frozen session (Save / New chat, fast) or deletes it (Discard). Compact on idle: a cone that has sat idle for 30 minutes with a context of at least 200k tokens compacts in the background, so you never wait for a summary at the start of your next turn; if you come back mid-round, or if the summary provider is rate-limited, out of quota, unavailable, or returns no valid summary, the round is thrown away and both the live and saved conversation stay byte-for-byte as they were. A later idle window can retry. Every adopted compaction leaves a small marker in the transcript naming what happened, with a link to the snapshot it replaced; a round that ends up keeping nothing takes its marker back out while retaining the full snapshot for recovery.export-profile in the terminal) saves your cones, chats, frozen chats, files, memory, skills, sprinkles and licks as slicc6-profile-<date>.zip in Downloads, which SLICC 7's Freezer imports. Your API keys and logins don't move: the dialog lists the providers to set up again. Credential-like files such as .env or *.pem are included as they are, and the dialog lists them before anything is written. Export once in each place you use SLICC 6 (sliccy.ai, the CLI, the extension).gelatiere run asks for a pass now; the instructions, the nightly schedule and the budget live in /shared/GELATIERE.md.experimental-settings controls its availability but is not itself user-toggleable. Experimental features take effect when SLICC boots, so flipping one only matters on the next load. Changes are held until you confirm: the dialog says what is waiting and offers Reload now to save and apply them, or Revert to drop them. Nothing is written until you reload, and dismissing the dialog discards — so a flag can never end up reading on with nothing to show for it.Enter sends — including from a hardware keyboard in the native iOS follower — and queues behind whatever the cone is already doing; Shift+Enter inserts a newline. Ctrl+Enter (Cmd+Enter on macOS) steers: the message is injected as soon as the current step finishes, so you can redirect the agent mid-turn.v86 start runs real operating systems (Alpine, FreeDOS, KolibriOS, ...) on the wasm-based v86 emulator, entirely client-side. The agent drives the guest from the shell — type, click, screenshot, stream the screen live, save/restore state — and -net <model>,relay=fetch gives the guest HTTP access through SLICC's fetch proxy. Install with ipk add -g v86.ipk add -g @ai-ecoverse/wasm-pkgconf) makes each one a shell command. A package can also define fixed arguments for a wasm command, such as -S gem for a Ruby launcher. Each process runs in a worker of its own, with real pipes, child processes, signals and job control; wasm --list shows what is installed, and wasm -t bash gives an interactive shell on the panel terminal (^Z, jobs, fg, bg). Install @ai-ecoverse/wasm-bash and GNU bash becomes the shell of both the agent's bash tool and the terminal panel. No local mount or server is needed.scoop_wait./mnt/myproject so you do not hide existing skills or scripts. Tear one down with umount /mnt/myproject (or the longer mount unmount /mnt/myproject). Picker mounts ask again after a page reload; for folders you always want available, map them in the launcher's mount table (npx slicc --mount=~/Projects/foo:/mnt/foo, or Settings → Mounts in Sliccstart.app) and they are mounted automatically on every launch, with no picker or permission prompt — see Auto-mounted host folders.mount --source bridges S3 buckets, S3-compatible services like Cloudflare R2 and MinIO, and Adobe authoring content — both da.live repositories and Helix 6 sites on the AEM Source Bus — into the same VFS surface. Reads use TTL+ETag caching with conditional revalidation; writes use ETag-conditional PUTs that surface concurrent-edit conflicts as EBUSY. Credentials live server-side (~/.slicc/secrets.env in CLI, chrome.storage.local in the extension via the Extension options page) and never reach the agent. After setup: mount --source s3://my-bucket --profile r2 /mnt/r2, mount --source da://my-org/my-repo /mnt/da, or mount --source aem://my-org/my-site /mnt/aem. A da:// source checks the site config first and re-routes to the Source Bus when the site has been upgraded to Helix 6, rather than quietly mounting a store that no longer holds its content. See docs/mounts.md for the full guide.