https://github.com/hydr0nium/mimir
mimir is a meta package manager for ethical hacking tools.
https://github.com/hydr0nium/mimir
capture-the-flag hacking hacking-tool hacking-tools pentesting
Last synced: 8 days ago
JSON representation
mimir is a meta package manager for ethical hacking tools.
- Host: GitHub
- URL: https://github.com/hydr0nium/mimir
- Owner: hydr0nium
- License: gpl-3.0
- Created: 2024-09-14T17:20:25.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-09-05T19:41:56.000Z (10 months ago)
- Last Synced: 2025-09-05T20:21:46.401Z (10 months ago)
- Topics: capture-the-flag, hacking, hacking-tool, hacking-tools, pentesting
- Language: Python
- Homepage:
- Size: 75.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# \[+\] ============ Mimir ============ \[+\]
## The hacking package manager
mimir is package manager for pentesting or generally cybersecurity tools. It acts as a meta package manager and broker between
the installed package managers on that system. If a package is installed it automatically determins how the package can be installed
on that system and remembers how it was installed. It also features a rich search-engine-like search function that accounts for typos
and 'tagged' search.
## Installation
mimir can easily be installed with pipx:
```bash
pipx install git+https://github.com/hydr0nium/mimir.git
```
## Usage
```
usage: mimir [command]
Available Commands:
install Install a tool
uninstall Uninstall a tool
search Search-engine like tool search
help Show help
version Show version
list List all installed packages
update Update a tool
info Info for a package
update-repo Update the local packages.json file
options:
-h, --help show this help message and exit
```
You can get more help by running `mimir help [command]` or `mimir [command] --help`
## TODO
- [X] Implement tool installer
- [X] Implement tool searcher
- [X] Implement list feature
- [X] Implement version feature
- [X] Implement package info feature
- [X] Implement updater
- [X] Implement update-repo
- [ ] Detect currently installed packages on first start
- [ ] Implement updater for all packages
- [ ] Add overwrite to package manager choice
- [ ] Finished info command
- [X] Implement better debug mode
- [X] Implement verbose mode
- [X] QoL package format change
- [X] Create config functionality
- [X] Create local sqlite backend for installed tools
# Contribution:
## How to add a package:
1. Edit the package file in `packages/packages.json`. The `toolname` represents the name that is used to install the package with mimir:
```json
[...]
"toolname": {
"tags": ["first_tag", "second_tag", "third_tag", "..."],
"description": "Here is some description ..."
}
[...]
```
2. Add a `toolname.toml` file. Note that the name in the `packages.json` and the name of the toml file (without the extension) need to be the same. You only need to add the sections that are usable:
```toml
[apt]
name = "toolname" # Name of the apt package.
[pacman]
name = "toolname" # Name of the pacman package.
[pipx]
name = "toolname" # Name of the pipx package.
# git = git+https://[...] # Use instead of name if you want 'pure' git installs
[gem]
name = "toolname" # Name of the gem package.
[snap]
name = "toolname" # Name of the snap package.
[flatpak]
name = "toolname" # Name of the flatpak package.
[cargo]
name = "toolname" # Name of the cargo package.
[yay]
name = "toolname" # Name of the yay package.
[go]
name = "github.com/..." # Path to the github of the package
```
3. Create a `pull request` for review. After the pull request is accepted your package should be good to go if people update their local `packages.json`.