Repository navigation
Releases: KyleKeane/Axit
Releases · KyleKeane/Axit
Release list
Axit 3.7.6
- Axit: a privacy page says everything Axit contacts over the network and when, the programs it runs, and what stays on your computer; it is in the zip, on GitHub and in every window (Axit menu, About, Privacy), and the installer says it before it changes anything, with what it changes. About, Third-party notices names the .NET runtime and Windows Forms the program carries, under their MIT licence.
- For developers: the repository's governance (
GOVERNANCE.md: roles, how releases are made, the maintainer's commitments), a code of conduct, the code signing policy in the README and every release page, how contributions are licensed inCONTRIBUTING.md, and the plan for free Windows code signing through SignPath Foundation (docs/axit/code-signing.md).
Built with the .NET SDK 10.0.402.
Code signing policy, privacy and governance: https://github.com/KyleKeane/Axit#code-signing-policy, https://github.com/KyleKeane/Axit/blob/main/PRIVACY.md and https://github.com/KyleKeane/Axit/blob/main/GOVERNANCE.md
Axit 3.7.5
- Axit: an update that Windows will not let run (Smart App Control's "An Application Control policy has blocked this file") stops before it changes anything, and says why; the version you have keeps working. Until now the update installed the blocked program and failed at the end. A background app that cannot be started again after an update is said rather than failing it.
Built with the .NET SDK 10.0.402.
Axit 3.7.4
- Axit: a paste is heard in every window: Ctrl+V or Shift+Insert into the message field, an editor, a field or a notice's field says "Pasted", or "Pasted, 3 lines" for several; the text itself is never read out.
- axProcess: sizes are said as in every other app, one decimal from megabytes up ("350.4 MB"); they were whole megabytes.
- axPreview: Ctrl+E and Open with no longer run a program, a script or a shortcut you are only looking at: a notice says so, and where to run it if you trust it. A Word, PowerPoint or OpenDocument file made to unpack to gigabytes, or one that declares a DTD, is shown as its readable text instead of being loaded.
- axGIT: Ctrl+F, F3 and Shift+F3 find in the list while the list has the focus, as in every other list window, and in the details otherwise; they always searched the details.
- Axit: the AI tools hand a client nothing a window announced while access was off or before the client was paired, refuse more script hosts as clients (bash, WSL, the terminals, dotnet and other runtimes), and quote npm's claude.cmd command line safely. An app opened through Windows' Open with lets only itself take the foreground. Copy details also leaves out the computer's and the domain's names and a work OneDrive's organisation.
- For developers: one runner for programs run to their end (
Axit.Core/ProcessRun, from axGIT, axClaude and axPass), the item apps' selection menus inItemForm,AxitList.SetLines,EditKeysandTextJumpeach one class, shared test helpers (tests/Shared), and the long code notes rewritten one bullet per file; the security review of 3.7.x is indocs/axit/security-audit-2026-10-24.md(S-46 to S-53).
Built with the .NET SDK 10.0.402.
Axit 3.7.3
- axClaude: in a side answer's text (
/btw), the letters Claude names work as the buttons do: c copies, f forks. A long answer that arrives in parts keeps its first lines in the text instead of losing them off the top of the console. - Axit: a failed update's notice shows what went wrong (the versions, Windows' version, and what the installer said or the error) and has a Copy details button that puts it on the clipboard to send, with your account's name, your folders and any e-mail address left out. The installer's own log says which version it installs on which Windows, and where it failed.
Built with the .NET SDK 10.0.402.
Axit 3.7.2
- axPreview: a viewer for every file, in two panes: the file above, read as text, and a Details list under it (Tab or F6) with everything known about the file: its name, folder, size, type and dates, what is in it (the encoding and the words of a text, the files of a zip, the headings of a document), and every detail Windows has, like a picture's dimensions or a song's length. Ctrl+C copies a detail's value; Enter on the Folder line opens it in axFile.
- axPreview: every kind of file opens, each through its own reader: a text file as before; a Word document, a PowerPoint presentation or an OpenDocument text as its text, with its headings and slides as headings for Ctrl+H; a zip as its list of files; a picture, sound or video as what it is; any other file as the readable text inside it. "Not a text file" is gone.
- axPreview: Ctrl+E goes on with the file by its kind (its editor, axMedia, or the program Windows has for it), and File, Open with lists the Axit apps for the file, Windows' program and Windows' own list of programs, where Always sets a default.
- axPreview: offered under Windows' Open with for every file type, not only text files.
- For developers:
Axit.Core/FileSize(axFile's size format) andAxit.Forms/WindowsOpenWith(axFile's Open with dialog) are shared on their second use. - Axit: an update no longer fails with "the list of apps could not be read": the zip carries the list as
apps.json, which the installer reads when the new program cannot answer, and the message says why it could not (3.7.1's update failed so on one machine, with no reason given). - Axit: the installer no longer removes other programs from Windows' Open with. Writing Axit's entry for a file type emptied the type's list in your own part of the registry first, taking the other programs registered there for you with it, for
.md,.txt,.json, the sound and video types and.kdbx; programs registered for the whole computer were not touched. A program that went missing comes back when it is updated or repaired.
Built with the .NET SDK 10.0.402.
Axit 3.7.1
- Axit: Windows' Open with lists each app for its file types on its own line: axDown and axPreview for
.md,.markdownand.txt, axJSON and axPreview for.json, axMedia for sound and video, axPass for.kdbx. Only axPreview was offered before, since Windows lists one program per program file and every app isAxit.exe; the installer now gives each of these apps a link ofAxit.exeunder its own name (axDown.exeand the like), which hands the file toAxit.exe. - For developers:
tools/sign-release.ps1parses again, and the release workflow no longer makes the draft for a tag ending in a carriage return.
Built with the .NET SDK 10.0.402.
Axit 3.7.0
- axClaude: a side answer (
/btw <question>) and the other screens of Claude's that only inform (/goal,/taskswith nothing running) are read-only text in the window, its title the screen's and its text the answer, with Close (Enter or Escape, which closes the screen in Claude too) and a button for each of the screen's other keys (Copy, Fork, Browse); they used to be a list in the message field's place, with "waiting for your answer" in the status bar, which now says "showing a side answer". A second/btwin a session, whose keys Claude names with Shift and the arrows, is shown too, where it used to show nothing. - Axit: in every window, AI tools such as Claude Code can read what the Axit windows show and open apps, once you turn it on in the Axit menu, AI tools, which also adds Axit to Claude Code for you, and allow each tool in the notice it brings up. It is off by default; a tool cannot change or delete anything, never reads axPass or axClip, and every call is in
mcp-audit.log. Forget AI tools takes every pairing back. - axPass: F5 reads the database again, as File → Refresh does; it used to show the list read before.
- For developers: every window's keys are one list of commands (
Axit.Forms/Command,docs/axit/app-kit.mdAK-2), each making its menu item and its key from one record, with a mark of what it does for the planned AI access; the windows' key switches are gone. New scripts for axStart and axClip intests/scripts. - For developers: a new app is registered by its line in
Dispatch.Appsand a run oftools/new-app.ps1, which writes its folders, a first window, its documents and its registration places (docs/axit/app-kit.mdAK-4.3). The installer reads the apps fromAxit.exe apps,run.ps1andtools/make-icon.ps1fromDispatch.cs,Program.csstarts them from one table, and the executable references the projects ofsrcby a glob. - axGIT, axPass, axClaude: when Git, KeePassXC or Claude Code is missing, the notice that says so offers Install it now: the maker's own installer runs without a window (Git and KeePassXC through winget, with one administrator prompt; Claude Code for your account only), and the app goes on once it is there. Without winget, the download page opens.
- axTerminal: only the shells this computer has are listed; PowerShell 7 and Git Bash, when missing, are offered as Install PowerShell 7 and Install Git, for Git Bash in Session, Switch shell.
- axCalc: a new app, a calculator as one expression field and a history list. Enter says the answer and adds the line "expression = answer" to the history; an expression that starts with an operator continues from the last answer; variables (
rate = 1.25), functions, constants, hexadecimal, binary and octal numbers. Ctrl+I says an answer in hexadecimal, binary and octal, Ctrl+Shift+C copies it, Enter on a history line puts its expression back in the field, Ctrl+S saves the history. Start menuAxit axCalc, commandaxcalc. - axClip: a new app, a clipboard history. It runs in the background from sign-in and keeps the text of every copy, in memory unless you turn on Keep history between runs, leaving out what a password manager marks private. Windows+Alt+V from anywhere brings up one search field over it, newest first: type to narrow it, Down and Up move through it, Enter pastes the item into the program you were in, Shift+Enter only copies it, Ctrl+Q reads it in full, Delete removes it, Ctrl+P pauses recording. Start menu
Axit axClip, commandaxclip. - Axit: in every window, the apps are listed in four groups with a separator between them, the same order everywhere: axClaude, axTerminal, axGIT; axFile, axDown, axJSON, axPreview, axMedia; axTask, axPass; axStart, axClip, axCalc, axProcess (the Axit menu's New window and Open windows by type, axFile's Open in Axit).
- Axit: every window that holds a file or a folder has the same Show in submenu: File Explorer, then axClaude, axTerminal, axGIT and axFile but itself. The editors, axPreview and axMedia gain axClaude (in the file's folder), and axMedia axTerminal and axGIT.
- Axit: in Recently closed, every app is in it, axCalc, axClip and axStart by name when they close, as axProcess was. axFile's Open in Axit no longer offers the apps that take no path.
- Axit: in every window, the Show current folder in submenus name the apps as the bundle spells them, axGIT, axTerminal, axFile, axClaude, with the same letters.
- axClaude, axFile: a clipboard another program holds is said the way every other window says it, "The clipboard could not be written", with the reason.
- Axit: every release is now signed, and Axit installs an update only when its signature checks against the key built into it; install.cmd checks the same before it installs. A hijacked GitHub account could publish a release, but not one Axit installs.
- axGIT: a repository that names programs of its own (hooks, a file monitor, diff programs) runs without them until you choose Trust this repository in the notice that says so. A repository copied from a zip or a USB stick can no longer run anything by being opened.
- axPass: Ctrl+C puts the password on the clipboard marked private, so Windows clipboard history (Windows+V), the cloud clipboard and axClip keep no copy, and clears it after 30 seconds, on lock and on close. axPass locks when you lock Windows, switch user or the computer sleeps. Ctrl+U opens web addresses only. KeePassXC's tool is used from outside Program Files only when Windows finds it signed.
- axTerminal: a program's output or a file you print can no longer fake "done", the prompt or the folder: only the marks of the shell's own prompt count.
- axClip: a history kept between runs is encrypted so that only your Windows account can read it.
- axTask: a link to a network folder or a file outside the lists is never opened; it reads as missing.
- axFile: files taken out of a downloaded zip keep the mark Windows uses to warn about downloads, and Compress leaves links inside a folder out.
- Axit: in every window, Copy diagnostics replaces your account's name, paths and e-mail addresses before you share it. Programs Axit starts (git, cmd, PowerShell, File Explorer) are found by their full path, never in the folder you opened. Names with hidden direction marks show them, so "invoicetxt.exe" cannot pass for a text file.
- For developers: the security audit,
docs/axit/security-audit-2026-10-24.md(45 findings and what became of each), the release key and signing (tools/release-key.ps1,tools/sign-release.ps1, AX-3.4), the automation channel's run secret, and the specifications of MCP access (docs/axit/mcp.md) and the app kit (docs/axit/app-kit.md), not built yet.- For developers: the inventory of copies, dead code and drift,docs/axit/inventory-2026-10-24.md, and its eleven cleanups: sharedCopyText,Dispatch.EditorOf,MarkdownKeys,User32,ListViewState, the search field ofHotkeyForm, the large windows in partial files, the notes against the code.
Built with the .NET SDK 10.0.402.
Axit 3.6.0
- axPass: a new app, a KeePass password database (
.kdbx) in axTask's two panes: Right into a group, Tab or Enter to an entry's fields, the password read as hidden. Ctrl+B copies the user name, Ctrl+C the password (KeePassXC's tool clears the clipboard after 30 seconds), Ctrl+U opens the URL, Ctrl+M moves an entry to another group, Ctrl+L locks, and the window locks itself after ten minutes away. Each password field says what to do ("Re-enter the password for Gmail"). Before the first change after unlocking, the database file is copied into a folder beside it ("mine backups"), the newest 20 kept; File, Back up now makes one at any time. Entries are added, renamed, changed and moved to the Recycle Bin, Ctrl+Z bringing them back; a password is typed twice or generated. It runs KeePassXC's command-line tool and never decrypts the file itself, so KeePassXC must be installed. Start menuAxit axPass, commandaxpass. - axTask: a new app, tasks and lists as a folder of small files, one JSON file per item. The top level is in sections, Smart lists, User lists, your own sections and Archived lists, and Ctrl+Up and Ctrl+Down go between them; Ctrl+M moves a list to a section. Right goes into a list and Left back to the sections; Tab, or Enter on an item, goes to its fields in the detail pane (
Due, date, 30 October 2026, Friday), and Enter changes one: a date takes tomorrow or +3, a choice its options, a link another item's title. Space marks a task done, Ctrl+1 is All tasks, Delete moves an item to the Archive list and Ctrl+Z brings it back; smart lists are saved filters written in axJSON. Start menuAxit axTask, commandaxtask. - axProcess: a new app, what runs on the computer as one list with three views. Ctrl+1 the processes with their memory and processor use, largest first; Ctrl+2 the services with their state and start type; Ctrl+3 the programs that start at sign-in. Enter shows an item's details with what can be done to it, Delete ends a process after a question, a service's details start, stop or restart it, Ctrl+E shows a program in axFile, Ctrl+Q says the summary. Nothing refreshes by itself: F5 reads again. Start menu
Axit axProcess, commandaxprocess. - axFile, axTask, axPass: F2 renames in place in every list where something can be renamed: a box over the line, Enter keeps the new name, Escape the old.
- axGIT, axMedia, axFile, axProcess: every list has type-to-find with Shift and a letter going backwards, and the edge sound at the first and last item.
- For developers: the automated checks' runner,
tools/AxitDrive, is called axAutomate now:tools/AxAutomate, run asdotnet run --project tools\AxAutomate.
Built with the .NET SDK 10.0.402.
Axit 3.5.0
- axTerminal: Ctrl+Up and Ctrl+Down in the command field go through the recent commands, with a short earcon on each; past the newest comes what you typed or last changed. The plain arrows only move the caret.
- axTerminal: Speak output is all lines by default, so a command's output is read as it arrives; a settings file that already says none keeps none (Options, Speech, Speak output: all lines changes it).
- axFile: Cut and Copy put the paths on the clipboard as text as well, so that a text field pastes them; File Explorer and Paste still take the files.
- axFile: Move to new folder is Move to folder: Down and Up complete the folder as in Go to folder, a folder that exists (here or by its path) takes the entries, and any other name is a new folder made here.
- axFile: Shift+F10, the Applications key and a right click open the menu bar's Item menu, as Alt+I does, so that NVDA reads its first item the first time too; the list's own context menu, silent on its first opening, is gone, and with it Ctrl+I inside the menu.
- Axit: a window that comes to the front while Alt is still held, as Alt+F4 on another window leaves it, no longer opens its menu bar when Alt is let go.
- axClaude, axTerminal: a quick key (h, p, c and the rest) says only the row the caret lands on, what Down Arrow would read there; it said the whole line, often cut short, and Down then read the same text again.
- axClaude: Session, Open folder in new window and Open recent folder in new window start axClaude in the folder in a window of its own and leave this one's session running; Open folder and Open recent folder still restart Claude in this window.
- axTerminal: Session, Open recent folder in new window, the same for a shell.
- Axit: the low note at the end of a list is louder and two notes falling an octave, so that the speech after it no longer drowns it.
- Axit: the apps are named axClaude, axDown, axJSON, axGIT, axTerminal, axFile, axMedia, axPreview and axStart, the ax in lower case, so that a screen reader says each as ax and a word. The case does not matter anywhere a name is typed or found, and the Recently closed list keeps its entries.
- Axit: a command palette in every window. Ctrl+Shift+P, or Axit, Command palette (the first item of the Axit menu), opens one search field over a list of every command in the window's menus, each read with its menu and its key, "Save as, File, Ctrl+Shift+S". Typing narrows the list to the commands holding every typed word, and after a short pause the first match is said with the count; Down and Up, Page Down and Page Up, Ctrl+Home and Ctrl+End move through the matches while the caret stays in the field. Enter runs the command where you were, Escape closes. At the first or the last match a key that cannot move plays the low note and then says the match again. The recent lists and the window lists of the menus are left out.
- axStart: Down or Up at the first or the last match plays the low note and then says the match again; the note alone had left NVDA's reading of the field as the last thing heard.
- axFile: in Go to folder, Down or Up past the first or the last completion plays the low note and then says the completion again, as the palette and axStart do.
- Axit: the command palette is the first item of the Axit menu (Alt+A, P), no longer in Help.
- Axit: a typed text finds accented names again: "cafe" finds "Café" in the command palette, in axStart and among axFile's entries. The program runs without the globalization data, where the accents stayed; the tests now run the same way, which is what found it.
- axFile: a new name that reads the same as an entry's with its accent written as two characters is refused again, for the same reason.
- axTerminal: a command sent without recording (Ctrl+Enter) no longer shows in the status bar and Ctrl+Q while it runs; they say "a command sent without recording".
- axTerminal: New session and a change of folder give the new shell a fresh screen, as Restart shell does; the new shell drew on the old one's rows, and its shorter lines showed their tails.
- axTerminal: a program inside the shell that marks the end of its own input (Claude Code does) no longer hides the whole transcript as if it were a prompt.
- Axit: F1 while a menu is open stays the menu's, as the palette's key does; it opened the shortcuts over the open menu. An update whose installer cannot be started, or that passes ten minutes, is reported as a failed update instead of an unexpected error. About, Version names all nine apps and their settings files; it named four.
- axStart: the close that ends an update installed from its own window closes it, so that the new version starts; it hid.
- axMedia: a Windows edition without the media components (an N edition without the Media Feature Pack) gets "Cannot play" with the reason instead of an unexpected error. Go to time with a number too long for a number says it is not a time instead of failing.
- For developers: a critical review of the five days of development from 2026-10-18 (
docs/axit/review-2026-10-23.md: the verdict, the inventory, what was fixed, what is open, the rewrites in order) and a plan for keeping the repository stable for years (docs/axit/longevity.md). The tests run without the globalization data, as the program does; a test checks that every app has its places in the repository; the .NET version is one property ofDirectory.Build.propsand the workflows read the SDK band fromglobal.json; the release notes name the SDK that built the release; every spec's header says what was built and checked, with the record, instead of a version it was written for. - axClaude: a question that arrives while a menu is open no longer pulls the focus out of the menu a second later; the delayed move to the question happens from the conversation, or when another program's window was in front.
- axJSON: a value that is not a number, "1abc" or "12-5", is the first error for Ctrl+E and stops Format, instead of passing as a number and being written back.
- axDown, axJSON, axPreview: a reload that cannot read the file (another program still holds it) keeps the text and shows the error; it used to empty the window to an Untitled document and say "Reloaded" over the error. Save as renames the document only once the file is written; a write that failed left the window under the old name with the new path.
- axGIT: a git command whose output a program it started keeps open (a signing agent, a hook's daemon) ends at the timeout instead of leaving the window at "Working" for good.
- axFile: an operation that ends while you are in another folder says its result and leaves the list where you are; it used to pull the list back to the folder it ran in, with the selection moved.
- axFile: the Actions list no longer shows a finished operation as running when two ran at once and the first ended; the rename box closes with the name kept when the folder changes or is read again under it; Open in Axit lists the apps that take a path, so axStart is no longer offered; Open in Axit, axPreview on a folder says "Not a file".
- axGIT: switching views keeps each view's selection on the right item when two views hold the same number of items; a view switch while a command runs says "Working" and stays, instead of showing an empty list; the log names the git subcommand only, not a commit's message.
- Axit: in every notice's text (the keyboard shortcuts of F1, the user guides, About), h and Shift+H move by heading and 1 to 6 by level, in every window now, axGIT, axFile, axMedia and axStart included; axDown, axJSON and axPreview keep their Ctrl+letter keys there as well. Ctrl+F finds a text in a notice: the Find notice takes its place and Find next brings it back with the match selected; F3 and Shift+F3 find the next and the previous match.
- axFile: the command palette holds the folder's entries after the commands, "notes.md, file", "docs, folder"; Enter on one opens it as Enter in the list does.
- axGIT: Push is Ctrl+Shift+H; Ctrl+Shift+P is the command palette's in every window.
- Axit: after a notice the focus goes back to the control it came from in every window, by one rule of the window base: the Actions list of axFile, the details of axGIT, the conversation or the message field, and the window's main control when that one is gone (a question answered meanwhile). A chain of notices (the update's progress after its offer, an error after a command) counts as one. Ctrl+S in axStart says "Nothing to save here" like the other windows without a document.
- axTerminal: an output line that starts like the shell's continuation prompt (
>> xin PowerShell,> helloin Git Bash) stays in the transcript; it was hidden as a continuation row, at once and again during a long command. A prompt of two rows printed from the bottom row is hidden whole; its first row stayed visible. A command typed before the shell's first prompt no longer turns that prompt into "Done". - axClaude, axTerminal: Close anyway, Restart now, a new session or a switch of shell over a program still at work end it at once instead of waiting two seconds for it to notice its console closing (a
ping -theld the window for four). A selection in the conversation no longer keeps the processor busy while output waits behind it. A program that redraws its screen from the top no longer brings back copies of old rows, or an old tail after a shorter line; a terminal reset is treated like a clear. - axClaude: the git exclude file keeps its Windows line endings when axClaude adds or removes its block.
- axClaude, axTerminal: after a restart of Claude or the shell, what is typed goes out at the paced speed again. A restart while an answer was being typed out left a second write pump running, which halved the pacing and could drop characters.
- For developers: axClaude's and axTerminal's windows derive from one console window in the shared project (
Axit.Forms/ConsoleForm: the view, the field, the control area, the st...
Axit 3.4.0
- AxClaude: the conversation no longer flickers while Claude runs a command. Claude Code's timer under a running command, "(4s · timeout 3m)", on a row of its own, was taken for conversation and rewritten every second, which moved the caret and made NVDA redraw its highlight once a second. It is interface now, like the spinner.
- AxStart: a new app of the bundle, a program launcher (
docs/axstart/SPEC.md). It runs in the background from sign-in, and its hotkey, Ctrl+Shift+Space unless changed in Options, Hotkey, brings up one search field from any program. Typing narrows the Start menu's programs, desktop programs and Store apps alike, to the names holding every typed word; after a short pause the first match is said, "Calculator, 1 of 2". Down and Up, Page Down and Page Up, Ctrl+Home and Ctrl+End move through the matches while the caret stays in the field. Enter starts the match, Ctrl+Shift+Enter as administrator, Ctrl+I says where its program is, Ctrl+O shows it in AxFile, Escape hides AxStart at once. The programs started most often come first.Axit.exe start,axstart, Start menu entry "Axit AxStart"; the installer stops it before an install and starts it again after. - AxFile: Right and Left on the menu bar move between the menus again; with a folder selected in the list, Right opened that folder instead. The fix is in the window base, so no window's own keys act while its menu bar has the keyboard.
- Axit: a development build started from the repository no longer offers the latest release when it starts; Check for updates in the Axit menu still asks.
- Axit:
test.ps1runs every test project in Release, as GitHub Actions does;release.ps1andrun.ps1 -Testuse it, so that a test that only fails in Release stops the release here rather than in the workflow, as it did 3.3.0. - Axit: the Build workflow tests every branch, not only
main. The repository has a new README naming all the apps, CONTRIBUTING and SECURITY pages, issue forms that ask for the app, the versions and the test plan step, a pull request checklist, and Dependabot for the workflow actions and the test packages.