Releases: Static-Codes/BrowserAutomationMaster
v1.0.0A8-x64 Canary Test
v1.0.0A8-x64-canary-test Removed experimental python 3.15 support pending further testing.
BAMM v1.0.0-Alpha7
Notes
- There are 10 binaries below aswell as the raw source code (source.zip).
Changelog
Click to see direct source changes
General Changes:
-
Added members
CRXExtensionIDRegexPatternandXPIExtensionPathRegexPatternin classRegexManagerin namespaceBrowserAutomationMaster.Managers -
Added member
Extensionsto classBAMConfigin namespaceBrowserAutomationMaster.Compilation -
Added parameter
Extensionsto functionVisitin classCompilationHandlerin namespaceBrowserAutomationMaster.Compilation -
Added temporary helper methods to class
ExtensionManagerin namespaceBrowserAutomationMaster.Managerswhile BAMM is ported to .NET 10. -
Added new class
ExtensionManagerin namespaceBrowserAutomationMaster.Managersresponsible for parsing, download, validating, and adding the extension's contents to the current Selenium instance. -
Added new function
GetExtensionsDirectoryin classDirectoryManagerin namespaceBrowserAutomationMaster.Managers -
Added new constants for ExtensionManager in class
ConstantManagersin namespaceBrowserAutomationMaster.Managers. -
Fixed bug in class
Transpilerin namespaceBrowserAutomationMaster.Compilation, nowBAMConfig.CheckConfigLines()is called inTranspiler.SetBAMConfig(). -
Removed member
hasCommentin classTranspilerin namespaceBrowserAutomationMaster.Compilation, now comments are ignored during compilation.
New Action Commands:
New Feature Command:
feature "add-extension" "url or path to extension" - Downloads the extension at the specified path, and adds it to the running Selenium instance.
New CLI Arguments:
bamm --exit-on-ext-fail - This flag will cause BAMM to exit if the built in extension validation fails, this can be useful for debugging.
Releases
Windows 💻
There are two versions for Windows. You most likely need the x64 version.
BAMM-v1.0.0A7-x64-Setup.exe: For modern 64-bit Windows systems, this is the most common version.BAMM-v1.0.0A7-ARM64-Setup.exe: For Windows devices running on ARM64 (ARMv8) processors, such as newer Surface Laptops.
macOS 🍎
- `bamm: For all Intel mac users on MacOS 11.0+
bamm-silicon: For Apple Silicon users on MacOS 11.0+
Linux 🐧
-
bamm.v1.0.0A7.linux-x64.deb: For 64-bit Debian-based Linux distributions, such as Ubuntu, Linux Mint, or Pop!_OS on Intel and AMD CPUs from the last 20 years. -
bamm.v1.0.0A7.linux-arm64.deb: For 64-bit Debian-based Linux distributions, such as Ubuntu, Linux Mint, or Pop!_OS onM-Series Macs, newerSurface Laptops, andRaspberry Pi. -
bamm.v1.0.0A7-linux-arm.deb: For 32-bit Debian-based Linux distributions, running on older chromebooks or other armv7 device, tested on crouton using Debian 12. -
bamm.v1.0.0A7.linux-x64.rpm: For 64-bit Fedora-based Linux distributions, such as CentOS, Oracle Linux, or Qubes on Intel and AMD CPUs from the last 20 years. -
bamm.v1.0.0A7.linux-arm64.rpm: For 64-bit Fedora-based Linux distributions, such as CentOS, Oracle Linux, or Qubes on Macs or newer Surface Laptops. -
bamm.v1.0.0A7.linux-arm.rpm: For 32-bit Fedora-based Linux distributions, running on older chromebooks or other ARMv7 device, tested on crouton using Fedora Server 43.
BAMM v1.0.0-Alpha6
Notes
- There are 10 binaries below aswell as the raw source code (source.zip).
- The macOS binaries were originally macOS
.appbundles, however due to restrictions in newer versions of macOS, all current and future releases of BAMM for macOS will be released as standalone binaries. - Mac Silicon users will now have to use the Intel Binaries through bootcamp.
Changelog
Click to see direct source changes
General Changes:
-
Added new namespace
MacPackager -
Added members
NewandOpento enumMenuOptionin classMenuin namespaceBrowserAutomationMaster.Messaging -
Added new class
EditorManagerin namespaceBrowserAutomationMaster.Managers -
Added new class
Editorin namespaceBrowserAutomationMaster.Managers -
Added new class
ExtensionManagerin namespaceBrowserAutomationMaster.Managers -
Added
Pathvariable to classAppInfoin namespaceBrowserAutomationMaster.Managers.AppManager -
Added
GetExecutablePathto classLinuxin namespaceBrowserAutomationMaster.Managers.AppManager -
Deleted unused class
AppDataHelperin namespaceBrowserAutomationMaster.Helpers -
Fixed a bug in class
LineValidationin namespaceBrowserAutomationMaster.Parsingcausing false positive syntax errors. -
Fixed a bug in class
UserScriptManagerin namespaceBrowserAutomationMaster.Managerscausingbamm compile '<filename>'to fail. -
Fixed a bug in class
Transpilerin namespaceBrowserAutomationMaster.Compilationcausingbamm compile '<filename>'to fail. -
Moved function
Newfrom classParserin namespaceBrowserAutomationMaster.Parsingto classMenuin namespaceBrowserAutomationMaster.Messaging -
Patched a problematic bug causing unnecessary output in
LineValidationin namespaceBrowserAutomationMaster.Parsing -
Refactored classes
Linux,Mac, andWinin namespaceBrowserAutomationMaster.Managers.AppManager.OSto properly include required Path attribute.
New Action Commands:
New Feature Command:
New CLI Arguments:
Creates a new .BAMC file in the userScripts directory.
Prompts the user to select a custom text editor to open the specified file.
If a custom text editor is not found, the OS default is used.
bamm new 'filename.bamc'bamm -n 'filename.bamc'
Opens a .BAMC file that exists in the userScripts directory.
If this file does not exist, the file is automatically created.
The user is then prompted to select a custom text editor to open the specified file.
If a custom text editor is not found, the OS default is used.
bamm open 'filename.bamc'bamm -o 'filename.bamc'
Releases
Windows 💻
There are two versions for Windows. You most likely need the x64 version.
BAMM-v1.0.0A6-x64-Setup.exe: For modern 64-bit Windows systems, this is the most common version.BAMM-v1.0.0A6-ARM64-Setup.exe: For Windows devices running on ARM64 (ARMv8) processors, such as newer Surface Laptops.
macOS 🍎
bamm: For all Mac users on MacOS 11.0+ (Silicon users will need to use Bootcamp to run this binary)
Linux 🐧
-
bamm.v1.0.0A6.linux-x64.deb: For 64-bit Debian-based Linux distributions, such as Ubuntu, Linux Mint, or Pop!_OS on Intel and AMD CPUs from the last 20 years. -
bamm.v1.0.0A6.linux-arm64.deb: For 64-bit Debian-based Linux distributions, such as Ubuntu, Linux Mint, or Pop!_OS onM-Series Macs, newerSurface Laptops, andRaspberry Pi. -
bamm.v1.0.0A6-linux-arm.deb: For 32-bit Debian-based Linux distributions, running on older chromebooks or other armv7 device, tested on crouton using Debian 12. -
bamm.v1.0.0A6.linux-x64.rpm: For 64-bit Fedora-based Linux distributions, such as CentOS, Oracle Linux, or Qubes on Intel and AMD CPUs from the last 20 years. -
bamm.v1.0.0A6.linux-arm64.rpm: For 64-bit Fedora-based Linux distributions, such as CentOS, Oracle Linux, or Qubes on Macs or newer Surface Laptops. -
bamm.v1.0.0A6.linux-arm.rpm: For 32-bit Fedora-based Linux distributions, running on older chromebooks or other ARMv7 device, tested on crouton using Fedora Server 43.
BAMM v1.0.0-Alpha5
Notes
- There are 10 releases below aswell as the raw source code (source.zip).
Changelog
Click to see direct source changes
General Changes:
-
Added namespace
BrowserAutomationMaster.Managers.BrowserStack -
Added namespace
BrowserAutomationMaster.Managers.LocalServer -
Added
BAMConfigclass in namespaceBrowserAutomationMaster.Compilation -
Added
BrowserFunctionsclass in namespaceBrowserAutomationMaster.Compilation -
Added
BrowserVersionManager,DeviceManagerandInstanceManagerinside namespaceBrowserAutomationMaster.Managers.BrowserStack -
Added class
RegexManagerin namespaceBrowserAutomationMaster.Managersand moved all Regex functions to this new class. -
Added check in class
ProgramFunctionsto prevent the GUI server from starting if $DISPLAY is not set -
Added
GetPhysicalSocketCountfunction in classLinuxin namespaceManagers.AppManager.OS -
Added functions to class
DirectoryManagerin namespaceBrowserAutomationMasterGetProjectRequirementsPathGetProjectVEnvPathGetProjectVEnvPythonPathGetProjectVEnvPipPath
-
Added
MemoryInfostruct in classMemoryInfoManagerwithin namespaceBrowserAutomationMaster.Managers+ RefactoredMemoryInfoManager -
Added
PlatformManagerclass in namespaceBrowserAutomationMaster.Managers -
Added
ProcessFactoryclass in namespaceBrowserAutomationMaster.Managers -
Added
ProcessFactory.ProcessResponsestruct in namespace classBrowserAutomationMaster.Managers -
Added
ProgramFunctionsclass in namespaceBrowserAutomationMaster -
Added
RPICheckfunction inLinuxclass in namespaceBrowserAutomationMaster.Managers.AppManager.OS -
Added BrowserStack related functions to class
BrowserAutomationMaster.Managers.DirectoryManager -
Fixed a Windows-Specific bug causing black text to be outputted on a black terminal backgrounds, when multiple instances of are opened.
- Expected behavior is now red text on a black background.
-
Improved Browser command parsing within
Parserclass in namespaceBrowserAutomationMaster.Managers.Parsing -
Improved Physical CPU Core count logic in class
CPUCoreManagerin namespaceBrowserAutomationMaster.Managers -
Improved Python version detection in class
InstallationCheckin namespaceBrowserAutomationMaster.Helpers -
Renamed function
CheckForLinux64toCheckForLinuxin classMemoryInfoManagerin namespaceBrowserAutomationMaster.Managers -
Refactored all
== nullconditions tois nullto utilize pattern matching, a feature that has been available since C# 7. -
Refactored
Debugclass to includeFormatMemoryfunction and improved debug log significantly. -
Refactored
PackageManagerclass in namespaceBrowserAutomationMaster.Managersto use externally hosted JSON, instead of embedded json. -
Refactored
Parser.HandleLineValidationfunction in namespaceBrowserAutomationMaster.Compilationby splitting it intoParser.LineValidation -
Refactored
Transpilerclass in namespaceBrowserAutomationMaster.Compilationto use the newly created classesScriptScriptBodyScriptImportsScriptRequirements
-
Refactored
Transpilerclass in namespaceBrowserAutomationMaster.Managersto use private modifiers on the majority of functions that were previously declared as public. -
Refactored
UninstallationManagerclass in namespaceBrowserAutomationMaster.Managersto properly execute the uninstallation process on Linux (MacOS still has to manually uninstall) -
Split
GetPhysicalCoreCountUnixLikefunction in classCPUInfoManagerintoGetPhysicalCoreCountLinuxandGetPhysicalCoreCountMac
New CLI Arguments:
bamm --bs- Instructs BAMM to use BrowserStack to run the compiled scripts, works on all platforms but is the default on ChromeOS, as chromebooks are too underpowered to run selenium.bamm --editbsconf- Edit and Overwrite Browserstack's YAML Config via an interactive process. (For advanced users)bamm --force-error- Forces a verbose error message, which is helpful for making a bug report.bamm --gui- Starts the Graphical User Interface for BAMM.bamm --nohwc- Instructs BAMM not to check your system's hardware for compatibility, this should not be done unless you've already verified BAMM can run on your machine.bamm --platform-debug- Displays information on the operating system and machine currently running BAMM.bamm --query-display- Displays the status of the $DISPLAY variable, use this to check if your system supports BAMM's GUI.bamm --version- Displays the current version of BAMM, and whether there's a new version available.bamm backup- Backs up all application files toBAMM-Backup.zip.bamm restore- Looks for a backup of BAMM's data, if the data is found, a restoration is attempted.
Releases
Windows 💻
There are two versions for Windows. You most likely need the x64 version.
BAMM-v1.0.0A5-x64-Setup.exe: For modern 64-bit Windows systems, this is the most common version.BAMM-v1.0.0A5-ARM64-Setup.exe: For Windows devices running on ARM64 (ARMv8) processors, such as newer Surface Laptops.
macOS 🍎
bamm: For all Intel mac users on MacOS 11.0+bamm-silicon: For Apple Silicon users on MacOS 11.0+
Linux 🐧
-
bamm.v1.0.0A5.linux-x64.deb: For 64-bit Debian-based Linux distributions, such as Ubuntu, Linux Mint, or Pop!_OS on Intel and AMD CPUs from the last 20 years. -
bamm.v1.0.0A5.linux-arm64.deb: For 64-bit Debian-based Linux distributions, such as Ubuntu, Linux Mint, or Pop!_OS onM-Series Macs, newerSurface Laptops, andRaspberry Pi. -
bamm.v1.0.0A5-linux-arm.deb: For 32-bit Debian-based Linux distributions, running on older chromebooks or other ARMv7 device, tested on crouton using Debian 12. -
bamm.v1.0.0A5.linux-x64.rpm: For 64-bit Fedora-based Linux distributions, such as CentOS, Oracle Linux, or Qubes on Intel and AMD CPUs from the last 20 years. -
bamm.v1.0.0A5.linux-arm64.rpm: For 64-bit Fedora-based Linux distributions, such as CentOS, Oracle Linux, or Qubes on Macs or newer Surface Laptops. -
bamm.v1.0.0A5.linux-arm.rpm: For 32-bit Fedora-based Linux distributions, running on older chromebooks or other ARMv7 device, tested on crouton using Fedora Server 43.
BAMM v1.0.0-Alpha4
Notes
- The releases were updated in accordance to the posted bug fixes on the main repo
- There are 8 releases below
- The updated source code is in
BAMM-v1.0.0A4-Source.zip
Known Bugs
- Enabled auto_copy_path without xclip installed will cause a fatal error, please install xclip to prevent this.
Changelog
Click here to see direct source changes
General Changes:
- Added
featureline validation inParsing.Parser - Added Color Support (3 bit to 24 bit) ➜
Managers.AnsiManager. - Added Config Functionality ➜
Managers.ConfigManager. - Added Custom Themes ➜
Managers.ThemeManager - Added support for Fedora based Linux Distros (CentOS, Oracle Linux, Qubes, etc)
- Cleaned up
Parsing.Parser.cs. - Created
Managers.CommandManager. - Created
Managers.CommandTypes. - Created
Messaging.Clipboard - Created
BrowserAutomationMaster.Transpilernamespace - Created
BrowserAutomationMaster.Types - Created
Types.Command - Increased BAMC JavaScript validation accuracy
- Increased BAMC URL validation accuracy
- Moved code from
Transpiler.cstoCompilationHandler.cs - Moved
Parsing.Parser.MenuandParsing.Parser.MenuOptionstoMessaging.Menu - Moved
Transpiler.csandCompilationHandler.cstoBrowserAutomationMaster.Transpiler - Refactored
Messaging.Helpto use new classTypes.Command - Refactored
Managers.AppManager.OS.Win.GetPhysicalCoreCount()to use CSWin32 for increased stability. - Refactored
Managers.Python.VEnvManagerandManagers.UpdateManagerto be asynchronous - Removed 300+ lines of bloat from Parsing.Transpiler
- Removed redundant OS checks and tightened Windows checks.
- Removed unused features
asyncandbypass-cloudflare - Renamed internal class to prevent naming conflicts,
Managers.AppManager.OS.Windows->Managers.AppManager.OS.Win
New Action Commands:
click-at-position "600" "600"- Clicks at a specific point on screenclose-current-tab- Closes the currrent tab and will close the browser if there's only one open tab.open-new-tab "https://google.com" "3"- A new browser tab is opened, the system will then pause for the number of seconds specified, then visits the requested url.
New CLI Command:
bamm validate "path/to/file.bamc"- Validates the contents of a .bamc file.
New Feature Command:
feature "disable-ssl"- Disables SSL certificate authentication for the given session.
Releases
Windows 💻
There are two versions for Windows. You most likely need the x64 version.
BAMM-v1.0.0A4-x64-Setup.exe: For modern 64-bit Windows systems. This is the most common version.BAMM-v1.0.0A4-ARM64-Setup.exe: For Windows devices running on ARM processors (like newer Microsoft Surface Pro models).
macOS 🍎
bamm: For all Intel mac users on MacOS 11.0+bamm-silicon: For Apple Silicon users on MacOS 11.0+
Linux 🐧
bamm.v1.0.0A4.linux-x64.deb: For 64-bit Debian-based Linux distributions, such as Ubuntu, Linux Mint, or Pop!_OS.bamm.v1.0.0A4.linux-arm64.deb: For 64-bit Debian-based Linux distributions, such as Ubuntu, Linux Mint, or Pop!_OS on Macs.bamm.v1.0.0A4.linux-x64.rpm: For 64-bit Fedora-based Linux distributions, such as CentOS, Oracle Linux, or Qubes.bamm.v1.0.0A4.linux-arm64.rpm: For 64-bit Fedora-based Linux distributions, such as CentOS, Oracle Linux, or Qubes on Macs.
BAMM v1.0.0-Alpha3
Notes
- There are 6 releases below aswell as the raw source code.
source.zipcontains a 22.9MB archive of the repo, this is with all of the bloat visual studio creates, aswell as published builds, for the pure source code (under 1MB when extracted), please downloadBAMM-v1.0.0A2-Source.zip
Changelog
General Changes:
- Added CPU detection logic for all supported platforms.
- Added CPU instruction parsing for x64 CPUs.
- Added Detection logic allowing multiple versions of Python 3.X to be used by BAMM.
- Added support for Linux on ARM64 CPUs, now Mac users running Linux will be able to use BAMM!
- Added Runtime support for scripts compiled using BAMM!
- Added UpdateManager.cs to handle cross platform updating.
- Removed support for Windows 10 32 Bit, as it is not feasible to continue supporting deprecated hardware. Pure x86 CPUs have not been produced since 2023, and the 4GiB RAM limit imposed by Windows 10, combined with the inferior hardware, will lead to a perpetually degrading experience.
New CLI Command:
bamm run "path/to/python/file.py"- Runs any python file however it is strongly recommended to ONLY use this command for scripts compiled using BAMM, specifically ones located in the compiled directory. There is no guarantee this will work with external python scripts.
New Feature Command:
feature "run-headless"- Instructs the compiler to allow headless execution for the duration of the current script.
Windows 💻
There are two versions for Windows. You most likely need the x64 version.
BAMM-v1.0.0A3-x64-Setup.exe: For modern 64-bit Windows systems. This is the most common version.BAMM-v1.0.0A3-ARM64-Setup.exe: For Windows devices running on ARM processors (like newer Microsoft Surface Pro models).
macOS 🍎
bamm: For all Intel mac users on MacOS 11.0+bamm-silicon: For Apple Silicon users on MacOS 11.0+
Linux 🐧
bamm.v1.0.0A3.linux-x64.deb: For 64-bit Debian-based Linux distributions, such as Ubuntu, Linux Mint, or Pop!_OS.bamm.v1.0.0A3.linux-arm64.deb: For 64-bit Debian-based Linux distributions, such as Ubuntu, Linux Mint, or Pop!_OS on Macs.
BAMM v1.0.0-Alpha2
Notes
- There are 5 releases below aswell as the raw source code.
source.zipcontains a 1.5GB archive of the repo, this is with all of the bloat visual studio creates, aswell as published builds, for the pure source code (under 1MB when extracted), please downloadBAMM-v1.0.0A2-Source.zip
Changelog
General Changes:
- Added all examples in repo to the user's userScript directory.
- Added functionality to trim the size of the generated
.pyfile, by ONLY including functions that are required by the.bamcfile being compiled. - Added logo on releases so the app icon isn't default.
- Added support for Apple Silicon!
- Fixed bugs caused by adding comments to the script.
- Fixed bugs relating to click-exp
- Removed
src\MacCompilationScripts - Removed
src\Unused
New Commands:
bamm clear compiled- Deletes the compiled directory and all it's contentsbamm clear userScripts- Deletes the userScript directory and all it's contents (this will be rewritten)bamm uninstall- Uninstalls bamm and all associated databamm --set-custom-useragent "user-agent"- This is an extension of the command below for CLI usage, see "CLI Examples" for more information.set-custom-useragent "user-agent"- Sets a custom user agent for the selenium session, see "BAMC Examples" below.add-header "header-name" "header-value"- Adds an HTTP Header for the current request.add-headers {"header-name1": "header-value1", "header-name2": "header-value2", "header-name3": "header-value3"}- Adds multiple HTTP Headers via a JSON Object.fill-text-exp "selector" "value"- More advanced version of fill-text. For selector information, click here
BAMC Examples:
Windows Firefox
set-custom-useragent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:136.0) Gecko/20100101 Firefox/136.0"
iOS Safari
set-custom-useragent "Mozilla/5.0 (iPhone; CPU iPhone OS 17_7_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.4 Mobile/15E148 Safari/604.1"
CLI Examples:
Windows Firefox
bamm --set-custom-useragent=="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:136.0) Gecko/20100101 Firefox/136.0"
iOS Safari
bamm --set-custom-useragent=="Mozilla/5.0 (iPhone; CPU iPhone OS 17_7_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.4 Mobile/15E148 Safari/604.1"
Notes
- There are 6 releases below aswell as the raw source code.
source.zipcontains a 1.5GB archive of the repo, this is with all of the bloat visual studio creates, aswell as published builds, for the pure source code (under 1MB when extracted), please downloadBAMM-v1.0.0A2-Source.zip
Windows 💻
There are three versions for Windows. You most likely need the x64 version.
BAMM-v1.0.0A2-x64-Setup.exe: For modern 64-bit Windows systems. This is the most common version.BAMM-v1.0.0A2-ARM64-Setup.exe: For Windows devices running on ARM processors (e.g., some Microsoft Surface Pro models).BAMM-v1.0.0A2-x86-Setup.exe: For older 32-bit Windows systems.
macOS 🍎
bamm: For all Intel mac users on MacOS 11.0+bamm-silicon: For Apple Silicon users on MacOS 11.0+
Linux 🐧
bamm.v1.0.0A2.linux-x64.deb: For 64-bit Debian-based Linux distributions, such as Ubuntu, Linux Mint, or Pop!_OS.
BAMM v1.0.0-Alpha1
Notes
- There are 5 releases below aswell as the raw source code.
source.zipcontains a 1.5GB archive of the repo, this is with all of the bloat visual studio creates, aswell as published builds, for the pure source code (only 64MB), please downloadBAMM-v1.0.0A1-Source.zip
Windows 💻
There are three versions for Windows. You most likely need the x64 version.
BAMM-v1.0.0A1-x64-Setup.exe: For modern 64-bit Windows systems. This is the most common version.BAMM-v1.0.0A1-ARM64-Setup.exe: For Windows devices running on ARM processors (e.g., some Microsoft Surface Pro models).BAMM-v1.0.0A1-x86-Setup.exe: For older 32-bit Windows systems.
macOS 🍎
bamm: This is the application for all macOS users.
Linux 🐧
bamm.1.0.0A1.linux-x64.deb: For 64-bit Debian-based Linux distributions, such as Ubuntu, Linux Mint, or Pop!_OS.