Repository navigation
Applications Manifests and Python
Install a project directory:
binman install ./MyAppIf BinMan cannot safely guess the entry point, tell it:
binman install ./weather-app \
--entry 'python3 src/main.py' \
--workdir srcPython projects can receive an isolated environment:
binman install ./weather-app --venvDirectory apps are stored under ~/.local/share/binman/apps/<name> and exposed
through a shim in ~/.local/bin/<name>. The shim changes to the configured
working directory, activates the selected environment when appropriate, and
uses exec for the real entry command so signals and exit status are not
swallowed by a shell wrapper.
Entry detection scores conventional candidates such as bin/<name>, Python
__main__.py, and language-specific source files. Explicit --entry and
--workdir override detection. --link stores a development symlink instead
of copying a directory tree; single files are still copied.
Single-file Python targets receive a stable payload under
~/.config/<name>/app.py. When requirements are present, BinMan creates a
neighbouring environment and installs them. Directory apps use the app-store
environment flow instead.
Install a text manifest:
binman install --manifest tools.txtManifest files can contain one source per line. Blank lines and # comments
are ignored.
JSON manifests are accepted when jq is installed. They may contain an array
of strings or objects with a source field. Each item is routed through the
normal installer, so its copy/link mode, app detection, venv setup, and
confirmation rules still apply.
Wizard-created projects also receive BinMan manifests in the active app store:
<name>.cmd single-file project
<name>.app application project
The record includes name, type, version, source path, run target, preview, and help text. Existing manifests are not silently overwritten.
binman doctor
binman doctor --all --python 3.11
binman doctor --dry-run MyAppDoctor reports the active mode, paths, archive tools, PATH status, and possible
shadowing. For Python apps it can create .venv, update pip best-effort, and
install dependencies from requirements.txt or a basic pyproject.toml
dependency list. An executable .binman/doctor.sh hook runs from the app
directory.
--fix-path updates existing .zshrc, .zprofile, .bashrc, and .profile
files, and adds a Fish config entry when Fish is available. It does not reload
the current shell.