Repository navigation
Releases: Tiagospem/corescope
Release list
CoreScope 0.13.1
Fixed
- The menu bar menu grew past the screen with many profiles, projects, orphans and agent
sessions. The search and the footer stay put and the sections scroll within the screen's
visible height; with little content the menu keeps its natural size.
Commits since v0.13.0
Full diff: v0.13.0...v0.13.1
Install
- Download CoreScope-0.13.1-macos-universal.dmg below (universal: Apple Silicon and Intel, macOS 14+).
- Open the DMG and drag CoreScope to Applications.
- The app is open source and signed ad hoc, not notarized by Apple, so macOS blocks it the first time. Open it once, then go to System Settings → Privacy & Security and click Open Anyway. Alternatively, in Terminal:
xattr -dr com.apple.quarantine /Applications/CoreScope.app
The Intel slice is built and checked on every release but has not yet been run on an Intel Mac; reports are welcome.
Checksums (SHA-256)
86dc6bcc2a864337b64e0770f70c855330e277957538442798c6f6413bf3039a CoreScope-0.13.1-macos-universal.dmg
f24789d38d4b47e3303fe9181da38720a3f37ee5e6781ac2371bc8a3e1bf4db3 CoreScope-0.13.1-macos-universal.zip
Verify with shasum -a 256 -c SHA256SUMS.txt in the download folder.
CoreScope 0.13.0
Changed
- The capacity gate admits or refuses at once instead of holding commands. The hook decides
within 5 seconds: the command runs, or the agent reads why, the numbers and what to do; if
CoreScope cannot decide in time the command runs and the failure is recorded. Blockers are
transient (CPU, memory pressure: wait withwait_for_capacity) or structural (a full
container VM, a container at its limit or stopped: do what it says; waiting won't help). - Each heavy command says what it uses: a plain prefix runs on the Mac (CPU and memory);
{command, uses: [cpu, memory, containers], containers: [...], weight}also checks the container
VM and the containers it loads (running, below 90% of their own limit). Default PHP suites and
Docker commands use containers. Existing.corescope.ymlfiles keep working.
Added
- Admission queue shared by every session: admitted commands count as running while their
processes live; at mostmax_parallel(by weight, default 2) at once, one heavy command per
container, staggered admissions, earlier commands first; places expire when a session stops
asking or ends. MCPreserve_capacity,release_capacity,capacity_events;system_capacity
andwait_for_capacitytake the command. The Agents page shows the queue with Run now and the
latest decisions. corescope capacity-advice/ MCPcapacity_advice: reads the container VM and the
project's containers (limits, use, missing limits, limits larger than the VM) and proposes the
wait_for_capacityrule with what each heavy command loads.
Fixed
- Explicit waits that never end:
wait_for_capacitystops at once on a structural blocker, and
whenmax_wait_minutespasses it says not to run the command (instead of "go ahead").
Commits since v0.12.1
- feat(capacity): admission queue for heavy commands instead of a gate that holds them (817c0ba)
- chore(release): 0.13.0 (6865b49)
Full diff: v0.12.1...v0.13.0
Install
- Download CoreScope-0.13.0-macos-universal.dmg below (universal: Apple Silicon and Intel, macOS 14+).
- Open the DMG and drag CoreScope to Applications.
- The app is open source and signed ad hoc, not notarized by Apple, so macOS blocks it the first time. Open it once, then go to System Settings → Privacy & Security and click Open Anyway. Alternatively, in Terminal:
xattr -dr com.apple.quarantine /Applications/CoreScope.app
The Intel slice is built and checked on every release but has not yet been run on an Intel Mac; reports are welcome.
Checksums (SHA-256)
3e77636d1822ac4113deb10b5518195dfc957c2dd4c90af68b2469882397dfe5 CoreScope-0.13.0-macos-universal.dmg
aeb791a3706874441e1629ff95f82b2854c9bfc336be543b78343499fcf812d2 CoreScope-0.13.0-macos-universal.zip
Verify with shasum -a 256 -c SHA256SUMS.txt in the download folder.
CoreScope 0.12.1
Added
- Container VM memory in the capacity gate: OrbStack / Docker Desktop / Colima containers live
in a VM with its own memory (often 4 GB).wait_for_capacity,system_capacity, the gate hook and
corescope waitnow read it and wait while less thancontainer_memory_free(default 15%) is
free, naming the containers using most; containers at their own limit and those killed (exit
137 / out of memory) in the last 30 minutes come back as warnings. Overview › Memory shows the VM.
Default heavy commands now includedocker compose upanddocker run.
Fixed
- Agents looping on
wait_for_capacity: the project'smax_wait_minutesnow counts across
calls, so a Mac that stays busy ends in go ahead instead of an endless wait. - Stale data and a frozen window under heavy load: the collector no longer runs at utility
priority (it waited behind saturated efficiency cores for over 25 s); the Agents page, logs and
session buttons no longer touch project folders (often on an external disk) or LaunchServices on
the main thread on every sample; file events, profile container reads over MCP and the volume
re-read after an eject left the main thread. The disk-growth walk runs only on an idle Mac. - A memory-pressure alert while memory was free: the Overview alert follows the gate's rule (a
lingering "warning" counts only with 35% or less available). - Heavy actions waiting for a busy Mac that was not busy: the kernel's memory-pressure
"warning" lingers while half the memory is free; it now counts only with 35% or less available
("critical" always counts). A waiting action says so on its chip and row (waiting for room:
and why) and Run now skips the wait. - An environment stuck on a busy port: when a status error names a port ("Port 19091 in use"),
the card shows who listens on it (marked when orphaned) with Terminate, so a process left by an
earlier start no longer blocks the environment until it is found by hand.
Commits since v0.12.0
- fix(capacity): do not wait on a lingering pressure warning; let a waiting action run now (42c65df)
- feat(environment): show and terminate the process holding a port an error names (dfe475b)
- fix(capacity): read the container VM's memory; keep the app live under heavy load (1e192bd)
- chore(release): 0.12.1 (bbd3403)
Full diff: v0.12.0...v0.12.1
Install
- Download CoreScope-0.12.1-macos-universal.dmg below (universal: Apple Silicon and Intel, macOS 14+).
- Open the DMG and drag CoreScope to Applications.
- The app is open source and signed ad hoc, not notarized by Apple, so macOS blocks it the first time. Open it once, then go to System Settings → Privacy & Security and click Open Anyway. Alternatively, in Terminal:
xattr -dr com.apple.quarantine /Applications/CoreScope.app
The Intel slice is built and checked on every release but has not yet been run on an Intel Mac; reports are welcome.
Checksums (SHA-256)
1f334186fcc33c6a5181427b5a78411cc667469cc8df4f6ae557372827ab48c4 CoreScope-0.12.1-macos-universal.dmg
0b17e5979aac545ceab80c7835f32f99b2544f3315af78b78a64bf3462bc9f90 CoreScope-0.12.1-macos-universal.zip
Verify with shasum -a 256 -c SHA256SUMS.txt in the download folder.
CoreScope 0.12.0
Added
- Databases › watch changes: a window per database that lists, while you use the app, rows
created (all values), updated (before/after, changed columns) and deleted, per table and
moment; ignore noisy tables (defaults from.corescope.yml, togglable in the window), clear,
snapshot and compare. No triggers or binlog: kept rows compared when the server says a table
was written (MySQL/MariaDB information_schema, PostgreSQL pg_stat). MCPdb_watch_*. .corescope.ymldatabases:— per database:server,ignore_changes,skip_data,
before_restore/after_restorecommands (any stack).- Restore a dump, safer: other sessions on a replaced database are closed (or waited for
30 s),before_restore/after_restorerun around it, the tables without data default to
the project's list and the last choice, a marker table flags an incomplete restore (incomplete
on the card), progress is read from the server, and each server has a restore history. - Databases › restore a dump: a mysqldump / mariadb-dump / pg_dump (plain) dump,
.sqlor
.sql.gz, into an existing database (replaced after a snapshot) or a new one. It is analysed first
— tables with exact row counts and sizes, views, triggers, routines, definers; truncated,
multi-database or cross-database dumps are refused — and you choose which tables come without
data (or No data above N rows), and whether to leave out triggers / owners. Streamed into the
server's client inside the container with its credentials, in batched transactions; the dump's
USE / CREATE DATABASE / \connect, SET GLOBAL and grants are left out, missing DEFINER accounts
become CURRENT_USER, max_allowed_packet is raised when needed. Progress, cancel and a log that
names the dump line of an error. CLIdb analyze/db import; MCPanalyze_dump,
restore_dump,restore_status,cancel_restore. - Environment › recent runs: every mode start/stop and action keeps its last 5 logs (with the
exit code appended). The environment card lists them, Show output next to a status error opens
the latest one, and logs open in a window that follows the run, marks errors and finds with ⌘F.
Action logs are on the Logs page too. MCPenvironment_runs. - Reorder by dragging the ≡ handle (or Move up / Move down): projects on the Projects page
(saved inprojects.json, so the floating panel and menu bar follow; MCPreorder_projects)
and project sections on the Profiles page (MCPset_setting profiles_order).
Changed
- Profiles page, more compact: each project section folds to one line that says what is in
use, and an app's actions are chips grouped by kind instead of one row each — the chip is the
button (▶ and the name), with the last result as a dot and output, artifact, cancel and the
command in its context menu. Action and run rows highlight end to end under the pointer.
Commits since v0.11.0
- feat(environment): keep recent run logs and show them in the app (c934496)
- feat(profiles,projects): compact environment actions and drag to reorder (f3dad28)
- feat(databases): restore a dump into a new or existing database (f14cf72)
- feat(databases): watch changes, safer dump restores, databases in .corescope.yml (a14952b)
- chore(release): 0.12.0 (625a62c)
Full diff: v0.11.0...v0.12.0
Install
- Download CoreScope-0.12.0-macos-universal.dmg below (universal: Apple Silicon and Intel, macOS 14+).
- Open the DMG and drag CoreScope to Applications.
- The app is open source and signed ad hoc, not notarized by Apple, so macOS blocks it the first time. Open it once, then go to System Settings → Privacy & Security and click Open Anyway. Alternatively, in Terminal:
xattr -dr com.apple.quarantine /Applications/CoreScope.app
The Intel slice is built and checked on every release but has not yet been run on an Intel Mac; reports are welcome.
Checksums (SHA-256)
8ba011e51ea5ea8acec4af0a138d32b71c921e082fc9971fdff07b3a0bc50b0a CoreScope-0.12.0-macos-universal.dmg
6755a7dfff73ba2f3bbdc120133e5109730baebb4c9daae5984f6a84d6ab6a8a CoreScope-0.12.0-macos-universal.zip
Verify with shasum -a 256 -c SHA256SUMS.txt in the download folder.
CoreScope 0.11.0
Added
- Projects › choose the editor: Settings › Editor and terminal sets what Open uses (the
file's default app until chosen, CoreScope's editor, or an installed IDE/editor among VS Code,
Cursor, Windsurf, Zed, PhpStorm and the JetBrains family, Sublime, Nova, Xcode…); IDEs open the
file inside its project folder. - Open in terminal on the project card, the changes header and each worktree, with the
terminal chosen in Settings (Terminal, iTerm2, Warp, Ghostty, kitty, Alacritty, WezTerm…); the
terminal buttons on Processes and Agents use it too. MCPopen_terminal, andprojects_editor/
projects_terminalinget_settings/set_setting. - Projects › quick editor: edit a file from its changes in CoreScope's own editor — line
numbers, syntax colors, find, ⌘S, external-change warning, unsaved-changes prompt. - Projects › fetch, pull, push and publish in the changes header, with git's output, and the
remote with a link to open it in the browser (credentials stripped from URLs), also on the
project card. Coregitchanges::sync, MCPproject_git_sync. - Databases in containers without a published port (only inside their compose network) now
appear, grouped by compose project, matched by image, compose service or name. - Databases with a password: containers are read inside them with their own credentials
(MYSQL_ROOT_PASSWORD/MARIADB_*,POSTGRES_USER,REDIS_PASSWORD, Redis--requirepass
on stdin), so the password never leaves the container; servers on the Mac take a user and
password saved in the Keychain, handed to the installed client through its environment.
Fixed
- Projects › diff: long lines scroll sideways again (the lazy diff list now gets the widest
line's width), and each file's header (counts, edit, Open) stays in view while scrolled. - Projects no longer flashes "No projects yet" while the list is first read.
Commits since v0.10.0
- feat(projects): add editor choice, quick editor and git sync (2153c69)
- feat(projects): add open-in-terminal with a configurable terminal (95dbb36)
- fix(projects): show a spinner instead of "No projects yet" before the first read (6d993d9)
- chore(release): 0.11.0 (e7fb01a)
Full diff: v0.10.0...v0.11.0
Install
- Download CoreScope-0.11.0-macos-universal.dmg below (universal: Apple Silicon and Intel, macOS 14+).
- Open the DMG and drag CoreScope to Applications.
- The app is open source and signed ad hoc, not notarized by Apple, so macOS blocks it the first time. Open it once, then go to System Settings → Privacy & Security and click Open Anyway. Alternatively, in Terminal:
xattr -dr com.apple.quarantine /Applications/CoreScope.app
The Intel slice is built and checked on every release but has not yet been run on an Intel Mac; reports are welcome.
Checksums (SHA-256)
5abac78906d6dbc767737c710cd05c8b6643cd4dca411ef8a05c6faf5228ab9b CoreScope-0.11.0-macos-universal.dmg
4fdf63bf67039b96b08aa1dacc6415dd43c8d0a3e438744684134f0aaad5025a CoreScope-0.11.0-macos-universal.zip
Verify with shasum -a 256 -c SHA256SUMS.txt in the download folder.
CoreScope 0.10.0
Added
- Environment controllers (all optional in
.corescope.ymlunderenvironment:, older files
unchanged; see docs/ENVIRONMENT-CONTROLLER.md): each app of a
project's own controller is listed with the modes it can come up in (modes, one at a time), the
command that takes it down, containers to watch and its actions; mode commands do the whole
operation while CoreScope only watches (no second Docker operation, no race with
docker compose up -d, Stop runs only that app'sdown). Services checks follow the profiles,
app or status component that need them (profiles:,app:,component:), so an app that is
switched off raises no alert even when a proxy keeps its port open, with the new states
starting,externalandunknown(never up, never off). Astatuscommand's versioned JSON
is read every 30 s with a short timeout and reconciled with what CoreScope started (selection
changed in a terminal, CoreScope restarted, stale readings). One-off actions (setup, backup,
restore) have their own timeout, log, artifact, cancel and, for restores, a preview the user
confirms. MCP:environment_status,list_actions,run_action,cancel_action; each app mode
is a profileproject/app:modeforstart_profile/stop_profile.
Changed
- Profiles is grouped by project: each project's environment card shows a summary (apps
selected, expected components ready, problems) and one folded row per app, with its state in a
fixed column, a Start menu with its modes and Stop, and inside it the app's components and
actions by kind (kind:, otherwise guessed from the names); profile cards fold their commands and containers while stopped, show
the profile's own name with its state in a fixed column, and stopped profiles of a project fold
into one line when there are more than three. Components whose state the controller could not
read are summed up in one line and make the app unknown, not starting; when no container
engine answers at all (Docker switched off) the environment simply shows as off, without errors
or alerts. What is open is remembered. - Menu bar: every value has its own SF Symbol (cpu, memory chip, disk I/O arrows, network,
thermometer, internal drive for the SSD, terminal for Codex, sparkle for Claude) next to it,
also in the compact format, and the item's tooltip explains each one; the same icons are in
Settings. Settings › Menu bar is a single list (on/off, what it shows, order) instead of the
toggles followed by an unexplained copy of the same items. - Lower cost: environment status reads use
/bin/shwith the login environment read once
instead of an interactive login shell every 30 s, and slow to every 2 min with no window open;
the floating panel is released when turned off and the menu bar window stops rendering while
closed (both kept updating on every sample); freed memory is returned to macOS after the window
closes and every 5 min while closed.
Fixed
- An ejected volume leaves Storage at once instead of up to 30 s later.
- Language: System followed the language last chosen in CoreScope instead of macOS's.
Commits since v0.9.0
- feat: environment controllers, lighter Profiles and menu bar, lower cost (d1fcef8)
- chore(release): 0.10.0 (960bf1a)
- feat: environment apps with modes, menu bar icons, Docker off is not an error (117aa63)
Full diff: v0.9.0...v0.10.0
Install
- Download CoreScope-0.10.0-macos-universal.dmg below (universal: Apple Silicon and Intel, macOS 14+).
- Open the DMG and drag CoreScope to Applications.
- The app is open source and signed ad hoc, not notarized by Apple, so macOS blocks it the first time. Open it once, then go to System Settings → Privacy & Security and click Open Anyway. Alternatively, in Terminal:
xattr -dr com.apple.quarantine /Applications/CoreScope.app
The Intel slice is built and checked on every release but has not yet been run on an Intel Mac; reports are welcome.
Checksums (SHA-256)
f7200fed803d9da71454fbb8e56a23a9cadac40446c341368e44f2d837f70da4 CoreScope-0.10.0-macos-universal.dmg
63dc658d5ed919c4d4f5853beb46a11add30a9a82842a3ae1d9f92c16dd162a9 CoreScope-0.10.0-macos-universal.zip
Verify with shasum -a 256 -c SHA256SUMS.txt in the download folder.
CoreScope 0.9.0
Added
- Performance audit: MCP
performance_auditsweeps what CoreScope already knows and ranks
what the user could stop, remove or turn off — orphans, heavy apps and processes, stuck or
power-hungry agent sessions, started profiles, idle and stopped containers, reclaimable space from the
cached Cleanup scan and plan, folders Disk growth saw grow, Services checks that are always down,
and CoreScope's own costliest switches (collector interval, floating panel, Codex and Claude live
limits). Each finding carries what it would give back (CPU, memory, disk, watts), how sure
CoreScope is, and the tool and arguments that act on it; the audit never acts, never scans the
disk, and lists stale sources with the tool that refreshes them. Ranking weighs whatever is tight
right now (memory pressure, a nearly full disk, battery). The top findings also show on the
Overview as To lighten the Mac, each row opening the page where to act. - Remove unused Docker volumes from the Containers page: a trash button per volume and
Remove unused… for all of them, each behind a confirmation that names the volumes, their sizes
and that the data is deleted for good. Only volumes no container references (running or
stopped) can be removed; volumes in use say by which containers, and the core re-checks right
beforeDELETE /volumes/{name}(never forced) over the same local socket. Per-volume results,
then the list refreshes. Rows show when each volume was created, anonymous (64-hex) volumes and
what the labels say made them (compose project and volume), and database-like volumes
(MySQL/PostgreSQL/Redis) warn that no snapshot is possible without a container. MCP
list_volumesandremove_volumes(a dry run unlessconfirm: true; in-use volumes are
always refused). - Projects › Remove unused worktrees and branches: Remove unused… on each repository's card
(Branches and Worktrees sections, card menu) opens a confirmation listing exactly what goes —
linked worktrees whose branch is merged into the default branch, whose upstream is gone or whose
folder is gone, and local branches merged into the default branch — with path, branch, size, why
each qualifies and a checkbox per item. Never the main or current working tree, a worktree a
process works in, a locked one, or a branch checked out in a worktree that stays; a worktree
with uncommitted changes is shown and skipped unless a separate option (off by default) allows
--force. A merged branch can go together with its worktree. Usesgit worktree removeand
git branch -d(never-D); the core checks every item again against fresh state before
removing and reports each result (removed, refused with the rule, or git's error). MCP
project_unused(dry run with reasons) andproject_remove_unused(same rules, never forced or
dirty).
Changed
- Services tell "not running" apart from "down": checks are grouped by project (checks added
in the app in their own group) with a per-group summary. A check from a project's
.corescope.ymlwhose profile is not running and whose port nobody listens on is gray "not
running", with a Start button for the profile; while the app is off it is not probed at all
(checking resumes when the profile starts or the port opens), no longer counts against uptime
and sends no down notifications; red is kept for what should be up (profile running, port listening but
failing, checks added by hand). The tooltip explains each state. Checks and whole groups can be
paused. MCPlist_services/check_servicesreportstatus(up,answered_with_error,
down,not_running,paused,not_checked_yet),group,monitoredandexplanation; new MCP
pause_service. - The Worktrees and Local branches sections group their rows into In use, Removable and
Other, show the removable count and size next to the title, collapse long groups, and share
badges (merged, upstream gone, in use) in the same order and colors.
Commits since v0.8.1
- feat(mcp): performance_audit, ranked things to stop, remove or turn off (c08a84c)
- feat(containers): remove unused Docker volumes, with MCP list_volumes and remove_volumes (964128c)
- feat(services): tell "not running" apart from "down", grouped by project (ec7b9aa)
- feat(projects): remove unused worktrees and branches, grouped card sections (7e3e947)
- feat(services): don't probe a project's app while it is off (56a9b15)
- chore(release): 0.9.0 (ed91b5e)
Full diff: v0.8.1...v0.9.0
Install
- Download CoreScope-0.9.0-macos-universal.dmg below (universal: Apple Silicon and Intel, macOS 14+).
- Open the DMG and drag CoreScope to Applications.
- The app is open source and signed ad hoc, not notarized by Apple, so macOS blocks it the first time. Open it once, then go to System Settings → Privacy & Security and click Open Anyway. Alternatively, in Terminal:
xattr -dr com.apple.quarantine /Applications/CoreScope.app
The Intel slice is built and checked on every release but has not yet been run on an Intel Mac; reports are welcome.
Checksums (SHA-256)
d74e1d93c5a2c82ac2f517e7f8c48c4b42335708edf70a34fa190fa37f18c0e0 CoreScope-0.9.0-macos-universal.dmg
77efe5b2db61198d2a91f4e55c15e7b0cf7f66a794df5929bfc310bab1e93ec7 CoreScope-0.9.0-macos-universal.zip
Verify with shasum -a 256 -c SHA256SUMS.txt in the download folder.
CoreScope 0.8.1
Added
- Current Claude limits (opt-in): Settings › Agents › Read the current limit through Claude
Code (or the button on the limits card) runs Claude Code's own/usage(claude -p /usage, no
model turn, no tokens, no session saved, hooks off) every 5 minutes while a Claude session is
working and every 30 minutes otherwise, so the panel, menu bar and overview show the same 5-hour
and weekly numbers, with reset times, as Claude Code and Claude Desktop — instead of a Claude
Desktop sample that can be hours old. Claude Code asks Anthropic with its own login; CoreScope
reads no credentials. MCPusage_limitsaddsage_secondsandlive_readfor Claude and Codex.
Changed
- The Claude limit shown is now the newest of Claude Code's
/usage, the status line and Claude
Desktop's samples (one with reset times wins within 5 minutes); an old status-line reading no
longer hides a newer Claude Desktop sample.
Commits since v0.8.0
- feat(agents): current Claude limits through Claude Code's /usage (opt-in) (1f15a00)
- chore(release): 0.8.1 (700a2f4)
Full diff: v0.8.0...v0.8.1
Install
- Download CoreScope-0.8.1-macos-universal.dmg below (universal: Apple Silicon and Intel, macOS 14+).
- Open the DMG and drag CoreScope to Applications.
- The app is open source and signed ad hoc, not notarized by Apple, so macOS blocks it the first time. Open it once, then go to System Settings → Privacy & Security and click Open Anyway. Alternatively, in Terminal:
xattr -dr com.apple.quarantine /Applications/CoreScope.app
The Intel slice is built and checked on every release but has not yet been run on an Intel Mac; reports are welcome.
Checksums (SHA-256)
93d3e41749e8431705cfc36fca5183d80eb72548436fd360a4cbfdcd6c60cef8 CoreScope-0.8.1-macos-universal.dmg
0c42ecaef4e967ee059fbb4e2bcd1de884d1d040fa94d38104a38722693d1d4f CoreScope-0.8.1-macos-universal.zip
Verify with shasum -a 256 -c SHA256SUMS.txt in the download folder.
CoreScope 0.8.0
Added
- Projects page (phase 1 of the Projects epic): register local repositories by folder, with a
default name from.corescope.yml(or the folder) that stays editable; the file is validated
with errors placed on their line and summarized (profiles, ports, Services, logs, capacity), a
minimal one is offered when missing (decline and nothing is added); git root, linked worktree
and main repository, subfolder, branch or detached HEAD;git initafter a confirmation;
rename and remove (files are never touched).corescope://open/projects,corescope projects,
MCPlist_projects. The list lives inApplication Support/CoreScope/projects.jsonand is part
of the settings backup. - Projects › Changes and commit (phase 2): a commit panel per repository — branch, upstream
and ahead/behind, last commit; files grouped into Conflicts, Staged, Modified, New and Removed
with status and +/− lines (git status --porcelain=v2plusgit diff --numstat); checkbox
stage/unstage, multi-select, Stage all / Unstage all; unified diff; open in an installed
editor or Finder; Discard changes… after a confirmation (tracked files back to HEAD, new files
to the Trash); commit with ⌘↩, disabled without a message, staged files or with conflicts, hooks
and signing as configured and a failing hook's output shown.index.lockand conflicts are
explained, never a crash. The diff reads like Zed's uncommitted-changes view: all changes
stacked by file (or the selected files) under pinned headers with a stage checkbox and Open,
green/red/yellow gutter bars, line numbers, syntax colors, folded unchanged stretches and
↑/↓ between changes. Each card shows the change counts and ahead/behind without opening it,
live while the page is open. FSEvents refreshes the panel only while it is open (.gitreduced to
HEAD/index/refs,.gitignored paths dropped, at most two reloads a second), measured as
Projects (git) in CoreScope's own cost.corescope status,corescope://project/NAME, MCP
project_git_status,project_git_diff,project_git_stage,project_git_commit,
project_git_discard. - Projects › Branches and worktrees (phase 3, view only): collapsible sections on each
repository's card, closed by default and read only when opened. Local branches (git branch --format): current first, last commit, ahead/behind or upstream gone, checked out in another
worktree. Worktrees (git worktree list --porcelain, main included): branch, agent, merged,
uncommitted changes, process working in it, lock, folder gone, last commit and a size measured
in the background and cached for 10 minutes, without counting nested worktrees twice. Removal
stays on the Cleanup page, linked from the section.corescope branches,corescope worktrees
accepts a project name, MCPproject_branches/project_worktrees. - Demo mode also anonymizes project names and branch names on the Projects page.
- Projects in the floating panel and the menu bar (phase 4): Show in panel per project (card
menu, the panel's menu, MCPset_project) adds a row with name, branch and change counts to
every panel layout and to the menu bar popover, read when they appear and kept live by file
watchers only while visible; a click opens the project's changes in a window of their own. - Change notifications per project (phase 5, opt-in, off by default): every 1, 5 or 15 min
(card menu, Settings › Notifications, MCPset_project). Watchers only mark a project as
touched; at its interval it is read once and compared with the last notification (core
delta, tested), so it says what moved — new/modified/staged/deleted/conflict counts, a new
commit or a branch switch — and never fires for a save that changes nothing. Clicking opens the
changes. - AI commit message (phase 6, opt-in, off by default): Generate message in the changes
panel writes the message from the staged diff only (corecommit_context: lockfiles and
binaries left out, cut at a configurable size, tested) with the provider set in Settings › AI:
Claude Codeclaude -por Codexcodex execalready signed in (no tools, no MCP, outside any
project), the Anthropic / OpenAI (Responses) / Gemini API with the key in the Keychain only, or
Ollama / LM Studio. Editable instructions (Conventional Commits, title up to 72 characters),
message language, model as free text with suggestions, Test connection, and a one-time
consent per provider showing exactly what is sent. The message is editable and nothing commits
on its own. MCPgenerate_commit_message. CONTRIBUTING and Privacy document the exception to
local-only. - Agents follow the project's
.corescope.ymlon their own: Settings › MCP server › Agent
hooks installs, per agent (Claude Code~/.claude/settings.json, Codex~/.codex/hooks.json,
each backed up first), a SessionStart hook (corescope context --hook) that gives each new
session a summary of the nearest.corescope.yml— capacity rule and heavy commands, ports,
profiles, services, logs, a snapshot before wiping a database, or the file's error with its
line — and the capacity gate (corescope gate), which now also covers Codex (same payload). The
settings show whether Codex trusts the hooks (it runs user hooks only after/hooks). For
agents without hooks: MCPagent_context, and a marked section in the project'sCLAUDE.md/
AGENTS.md(Agent instructions… on the project card,corescope context --write, MCP
write_agent_instructions), leaving the rest of the file alone. MCPagent_hooksreports and
changes the hooks; the MCP instructions ask agents to readagent_contextwhen no session
context came.
Fixed
- The Navigate menu gives ⌘1–⌘9 to the first nine pages only; more pages would have crashed it.
Commits since v0.7.0
- feat(projects): phase 1, register projects with .corescope.yml and git (e59a4f8)
- feat(projects): phase 2, changes and manual commit (8c9cea0)
- feat(projects): phase 3, branches and worktrees (974b726)
- feat(agents): project context and capacity hooks for Claude Code and Codex (23f665e)
- fix(settings): agent hooks as plain form rows (the grid overlapped the text below) (b9a67bc)
- refactor(projects): RepoWatcher shared by the changes panel; one-call git summary for compact rows (485bf56)
- feat(projects): Zed-style diff and change counts on each card (60cef08)
- feat(projects): phase 4, projects in the floating panel and the menu bar (79c75c4)
- feat(projects): phase 5, change notifications per project (3995bfe)
- feat(projects): phase 6, AI commit message (opt-in) (ab60eef)
- chore(release): 0.8.0 (85f96f8)
Full diff: v0.7.0...v0.8.0
Install
- Download CoreScope-0.8.0-macos-universal.dmg below (universal: Apple Silicon and Intel, macOS 14+).
- Open the DMG and drag CoreScope to Applications.
- The app is open source and signed ad hoc, not notarized by Apple, so macOS blocks it the first time. Open it once, then go to System Settings → Privacy & Security and click Open Anyway. Alternatively, in Terminal:
xattr -dr com.apple.quarantine /Applications/CoreScope.app
The Intel slice is built and checked on every release but has not yet been run on an Intel Mac; reports are welcome.
Checksums (SHA-256)
dbd3fa30238fbc0a7c89784eff632122c9726b91dcd540a396f9890d49cb525c CoreScope-0.8.0-macos-universal.dmg
b21781da2f96d449efdc7f56c72d2d1e7182fc7c978afbd663d65888a2a34545 CoreScope-0.8.0-macos-universal.zip
Verify with shasum -a 256 -c SHA256SUMS.txt in the download folder.
CoreScope 0.7.0
Added
- Machines › why a systemd unit failed: the units in a Failed systemd units alert are
clickable. CoreScope runssystemctl status <unit> --no-pager -n 0and the unit's journal over
your BatchMode ssh (read-only, no sudo, unit name validated), groups the last run's
error/failedlines with counts and shows a hint for well-known causes — logrotate
unknown user(a config left for a deleted site user, e.g. Laravel Forge's
/etc/logrotate.d/forge-*), logrotateduplicate log entry, postrotate failures andnginx -t
errors. Says when journald hides system logs from the ssh user (not inadm/systemd-journal).
Hints only explain; CoreScope never changes the server. - MCP
explain_failed_unit {host, unit}: the same status, grouped errors and hints for agents. - Storage: processes using the disk now; SSD health from NVMe SMART (wear, spare, data written
and read, power-on hours, cycles, unsafe shutdowns, media errors, verdict); What grew today
opens each folder to the subfolders that grew and links to the cleanup plan; a safe cleanup
plan for caches tools re-create, with estimates, the exact command or folders and busy-tool
checks; large files in the home folder and its linked drives (one filesystem per root,
cloud storage andnode_modulesskipped, app-managed files only shown); Eject… shows the
processes holding a volume and runsdiskutil eject. CLItop --disk,disk-health,
space --plan,large-files,eject-check; MCPdisk_health,cleanup_plan,
run_cleanup_plan,large_files,volume_holders,eject_volume. - Databases: Open in TablePlus, Redis Insight, Sequel Ace, Postico or DBeaver and Copy DSN;
Redis keys by prefix (sampled, adaptive depth) with keys without TTL andFLUSHDBafter a
confirmation; snapshots of MySQL/MariaDB and PostgreSQL databases (inside a container with
its own credentials, never seen by CoreScope) and restore. CLIdb snapshot|snapshots|restore| redis; MCPdb_snapshot,db_snapshots,db_restore,redis_keyspace,redis_flush; the MCP
instructions ask agents to snapshot beforemigrate:freshordb:wipe. - Claude limits without the status line: from Claude Desktop's own samples
(plan-usage-history.json), local and credential-free. Pace per limit window (projected at
the reset, or when it reaches 100%). MCPusage_limits. - Settings backup outside
~/Library(default~/.corescope/backups, or a folder you pick),
written a few seconds after a change; a launch with empty settings offers to restore it. MCP
backup_settings.
Fixed
- Status line data that carries the reset epoch in
used_percentageis ignored instead of shown. - Sizes and rates read "0 KB" instead of "Zero KB".
Commits since v0.6.0
- feat(machines): explain why a failed systemd unit failed (ff80a5a)
- feat(storage): SSD health, who's writing, growth drill-down, cleanup plan, large files, eject (17fddd3)
- feat(databases): open in TablePlus/Redis Insight, Redis by prefix, snapshots (59a64da)
- feat(agents): Claude limits from Claude Desktop, pace, MCP usage_limits (c1dff46)
- feat(settings): automatic settings backup outside ~/Library, restore on launch (4bde9b0)
- chore(release): 0.7.0 (c01e9b2)
Full diff: v0.6.0...v0.7.0
Install
- Download CoreScope-0.7.0-macos-universal.dmg below (universal: Apple Silicon and Intel, macOS 14+).
- Open the DMG and drag CoreScope to Applications.
- The app is open source and signed ad hoc, not notarized by Apple, so macOS blocks it the first time. Open it once, then go to System Settings → Privacy & Security and click Open Anyway. Alternatively, in Terminal:
xattr -dr com.apple.quarantine /Applications/CoreScope.app
The Intel slice is built and checked on every release but has not yet been run on an Intel Mac; reports are welcome.
Checksums (SHA-256)
e3219ef26580703c7c8e866c1dc030247069d62568d9602b74aa1ff0a1707535 CoreScope-0.7.0-macos-universal.dmg
76f0b21608f60889416ab171a8f386cf09c7c947d6e566166a7ea2b1bb34cda0 CoreScope-0.7.0-macos-universal.zip
Verify with shasum -a 256 -c SHA256SUMS.txt in the download folder.