{"id":20782066,"url":"https://github.com/metaist/cosmofy","last_synced_at":"2025-12-30T00:59:11.198Z","repository":{"id":256874573,"uuid":"855162003","full_name":"metaist/cosmofy","owner":"metaist","description":"Cosmopolitan Python Bundler","archived":false,"fork":false,"pushed_at":"2025-01-15T02:20:14.000Z","size":144,"stargazers_count":23,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-26T01:25:50.097Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/metaist.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"metaist"}},"created_at":"2024-09-10T12:20:14.000Z","updated_at":"2025-02-14T17:20:26.000Z","dependencies_parsed_at":"2025-01-15T03:28:46.408Z","dependency_job_id":"50034417-30a1-4d72-90a1-9312b1d91da0","html_url":"https://github.com/metaist/cosmofy","commit_stats":null,"previous_names":["metaist/cosmofy"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metaist%2Fcosmofy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metaist%2Fcosmofy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metaist%2Fcosmofy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metaist%2Fcosmofy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/metaist","download_url":"https://codeload.github.com/metaist/cosmofy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253560235,"owners_count":21927749,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T14:00:58.714Z","updated_at":"2025-12-30T00:59:11.191Z","avatar_url":"https://github.com/metaist.png","language":"Python","funding_links":["https://github.com/sponsors/metaist"],"categories":["Freezers","Python","Cosmopolitan"],"sub_categories":["Projects"],"readme":"# cosmofy: Cosmopolitan Python Bundler\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/metaist/cosmofy/actions/workflows/ci.yaml\"\u003e\u003cimg alt=\"Build\" src=\"https://img.shields.io/github/actions/workflow/status/metaist/cosmofy/.github/workflows/ci.yaml?branch=main\u0026logo=github\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/cosmofy\"\u003e\u003cimg alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/cosmofy.svg?color=blue\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/cosmofy\"\u003e\u003cimg alt=\"Supported Python Versions\" src=\"https://img.shields.io/pypi/pyversions/cosmofy\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n`cosmofy` bundles your python app using [`uv`](https://docs.astral.sh/uv/) into a **single executable** which runs on\nLinux, macOS, and Windows using [Cosmopolitan libc](https://github.com/jart/cosmopolitan).\n\n## Install\n\nFirst, make sure you have [`uv` installed](https://docs.astral.sh/uv/getting-started/installation/).\n\nTo use the latest version of `cosmofy` without installing, use `uvx`:\n\n```bash\nuvx cosmofy bundle\n```\n\nTo install `cosmofy` locally:\n\n```bash\nuv tool install cosmofy # recommended\n# or\npip install cosmofy # classic\n```\n\nYou can also install the `cosmofy` binary directly.\n\nmacOS / Linux:\n\n```bash\ndest=~/.local/bin/cosmofy\ncurl -sSz $dest -o $dest -L https://github.com/metaist/cosmofy/releases/latest/download/cosmofy\nchmod +x $dest\n```\n\nWindows:\n\n```powershell\n$dest = \"$env:LOCALAPPDATA\\cosmofy\\cosmofy.exe\"\nNew-Item -ItemType Directory -Force -Path (Split-Path $dest)\nInvoke-WebRequest -Uri \"https://github.com/metaist/cosmofy/releases/latest/download/cosmofy\" -OutFile $dest\n```\n\n## Examples\n\nTo bundle a project, first make sure you define `[project.scripts]` in your `pyproject.toml`:\n\n```toml\n[project.scripts]\nmy_command = \"my_command.__main__:main\"\n```\n\nThe bundle the whole project:\n\n```bash\nuvx cosmofy bundle # produces `dist/my_command`\n```\n\nYou can also bundle individual python files:\n\n```bash\nuv init --script myscript.py # or uv add --script myscript.py \u003csome dependency\u003e\nuvx cosmofy bundle --script myscript.py # produces `dist/myscript`\n```\n\n## Limitations\n\n- Currently, we can only bundle pure-Python code (no C extensions) (see [#94])\n- Currently, we're tied to the latest Cosmopolitan Python version (see [#44]).\n- Automatically compiling Python bytecode is currently disabled (see [#41]).\n\n[#44]: https://github.com/metaist/cosmofy/issues/44\n[#41]: https://github.com/metaist/cosmofy/issues/41\n[#94]: https://github.com/metaist/cosmofy/issues/94\n\n## Self Updater\n\n\u003e [!WARNING]\n\u003e This is an experimental feature. See [Security Considerations](#security-considerations).\n\nThere is experimental support for [adding a self-updater](#cosmofy-updater-add) to a cosmofy bundle:\n\n```bash\nuvx cosmofy updater add dist/my_cmd # produces dist/mc_cmd.json\n```\n\nThis produces a `.json` receipt that you should publish together with your bundle.\n\n- If the bundle is run with `--self-update` anywhere in the arguments,\n  the cosmofy updater will run. It will compare it's internal build\n  date with the date at `--receipt-url` and will download any updates, if\n  they exist.\n\n- Otherwise, the bundle will run as normal by calling `.args`.\n  [See below](#supported-python-cli) for minor limitations.\n\n## Security Considerations\n\nThe self-updater verifies downloaded binaries against the hash in the receipt,\nbut does not cryptographically verify the receipt itself. If you control the\nreceipt hosting, this provides integrity verification. For higher-assurance\nscenarios, receipt signing is planned for a future release (see [#53]).\n\n[#53]: https://github.com/metaist/cosmofy/issues/53\n\n## Supported Python CLI\n\nCosmopolitan Python apps have a special `.args` file which is read when it\nstarts up. The contents of this file are typically set during\n[`cosmofy bundle`](#cosmofy-bundle) and can be adjusted with\n[`cosmofy fs args`](#cosmofy-fs-args).\nHowever, when using the [self-updater](#self-updater), we need to check for\nthe `--self-update` option first.\n\nIf `--self-update` is NOT present, we want to process the rest of the\n`.args` as usual. However, since Python has already started, we only support\nthe following [Python Command Line Interface options](https://docs.python.org/3/using/cmdline.html):\n\n- `-c \u003ccommand\u003e`: run a command\n- `-m \u003cmodule-name\u003e`: run a module (this is the most common)\n- `-`: read a command from `stdin` (rare, but we support it)\n- `\u003cscript\u003e`: run a script on the filesystem\n- `-V, --version`: display the Python version (we also support `-VV`)\n- `-h, -?, --help`: show relevant portions of the help message\n- `-i`: enter python REPL after executing a script (`-c`, `-m`, `-`, or `\u003cscript\u003e`)\n- `-q`: don't display copyright and version messages in interactive mode\n\nIf no option is provided, the Python REPL will run.\n\n## Commands\n\n- [`cosmofy bundle`](#cosmofy-bundle)\n- [`cosmofy updater`](#cosmofy-updater)\n  - [`cosmofy updater add`](#cosmofy-updater-add)\n  - [`cosmofy updater remove`](#cosmofy-updater-remove)\n  - [`cosmofy updater check`](#cosmofy-updater-check)\n- [`cosmofy fs`](#cosmofy-fs)\n  - [`cosmofy fs ls`](#cosmofy-fs-ls)\n  - [`cosmofy fs cat`](#cosmofy-fs-cat)\n  - [`cosmofy fs add`](#cosmofy-fs-add)\n  - [`cosmofy fs rm`](#cosmofy-fs-rm)\n  - [`cosmofy fs args`](#cosmofy-fs-args)\n- [`cosmofy self`](#cosmofy-self)\n  - [`cosmofy self update`](#cosmofy-self-update)\n  - [`cosmofy self version`](#cosmofy-self-version)\n\n### `cosmofy`\n\n\u003c!--[[[cog\nfrom cosmofy.__main__ import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nA Cosmopolitan Python bundler.\n\nUsage: cosmofy [OPTIONS] \u003cCOMMAND\u003e\n\nCommands:\n  bundle                    build and bundle a project\n  updater                   install/uninstall bundle self-updater\n  fs                        inspect and modify an existing bundle\n  self                      manage the `cosmofy` executable\n\nOptions:\n      --version             display the program version and exit\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy bundle`\n\n\u003c!--[[[cog\nfrom cosmofy.bundle import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nBuild a Python project into a Cosmopolitan bundle.\n\nUsage: cosmofy bundle [OPTIONS]\n\nInput options:\n      --entry \u003cNAME\u003e        `console_script` entry points to bundle\n      --script \u003cPATH\u003e       paths to bundle\n\n      If neither --entry nor --script is specified, all entry points\n      will be bundled. If both are specified, entries will be bundled first.\n\n      --python-url \u003cURL\u003e    URL from which to download Cosmopolitan Python\n                            [default: https://cosmo.zip/pub/cosmos/bin/python]\n                            [env: COSMOFY_PYTHON_URL=]\n\nOutput options:\n  -o, --output-dir \u003cPATH\u003e   output directory\n                            [default: project-root/dist]\n\nCache options:\n  -n, --no-cache            do not read or save to the cache\n                            [env: COSMOFY_NO_CACHE=]\n      --cache-dir \u003cPATH\u003e    store Cosmopolitan Python downloads\n                            [default: ~/.cache/cosmofy]\n                            [env: COSMOFY_CACHE_DIR=]\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy updater`\n\n\u003c!--[[[cog\nfrom cosmofy.updater.__main__ import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nEXPERIMENTAL: Manage a bundle's self-updater.\n\nUsage: cosmofy updater [OPTIONS] \u003cCOMMAND\u003e\n\nCommands:\n  add                       add self-updater to a bundle\n  remove                    remove self-updater from a bundle\n  check                     check if the bundle has updates\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy updater add`\n\n\u003c!--[[[cog\nfrom cosmofy.updater.add import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nEXPERIMENTAL: Add self-updater to a cosmofy bundle.\n\nUsage: cosmofy updater add \u003cBUNDLE\u003e [OPTIONS]\n\nArguments:\n  \u003cBUNDLE\u003e                  Cosmopolitan file bundle\n\nReceipt options:\n      --receipt \u003cPATH\u003e      output path to the JSON receipt\n                            default is \u003cBUNDLE\u003e + `.json`\n      --receipt-url \u003cURL\u003e   URL to the published receipt\n                            default is --release-url + `.json`\n                            [env: RECEIPT_URL=]\n      --release-url \u003cURL\u003e   URL to the file to download\n                            default is --receipt-url without `.json`\n                            [env: RELEASE_URL=]\n      --release-version \u003cSTRING\u003e\n                            release version\n                            default is $(\u003cBUNDLE\u003e --version)\n\nProcess options:\n      --no-copy             skip copying `cosmofy` code\n                            (e.g., its already a dependency)\n                            [env: COSMOFY_NO_COPY=]\n      --no-args             skip setting `.args`\n                            [env: COSMOFY_NO_ARGS=]\n\nread more: https://github.com/metaist/cosmofy#self-updater\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy updater remove`\n\n\u003c!--[[[cog\nfrom cosmofy.updater.remove import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nEXPERIMENTAL: Remove cosmofy self-updater from a cosmofy bundle.\n\nUsage: cosmofy updater remove \u003cBUNDLE\u003e [OPTIONS]\n\nArguments:\n  \u003cBUNDLE\u003e                  Cosmopolitan file bundle\n\nProcess options:\n      --no-args             skip setting `.args`\n                            [env: COSMOFY_NO_ARGS=]\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy updater check`\n\n\u003c!--[[[cog\nfrom cosmofy.updater.check import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nEXPERIMENTAL: Check if a cosmofy bundle has an update.\n\nUsage: cosmofy updater check \u003cBUNDLE\u003e [OPTIONS]\n\nArguments:\n  \u003cBUNDLE\u003e                  Cosmopolitan file bundle\n\nOptions:\n      --receipt-url \u003cURL\u003e   override the published receipt URL\n                            [env: RECEIPT_URL=]\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy fs`\n\n\u003c!--[[[cog\nfrom cosmofy.fs.__main__ import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nCosmopolitan file system tool.\n\nUsage: cosmofy fs [OPTIONS] \u003cCOMMAND\u003e\n\nCommands:\n  ls                        list files in bundle\n  cat                       print file contents\n  add                       add files to bundle\n  rm                        remove files from bundle\n  args                      get/set special `.args` file in bundle\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy fs ls`\n\n\u003c!--[[[cog\nfrom cosmofy.fs.ls import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nList contents of a Cosmopolitan bundle.\n\nUsage: cosmofy fs ls \u003cBUNDLE\u003e [OPTIONS] [FILE]...\n\nArguments:\n  \u003cBUNDLE\u003e                  Cosmopolitan file bundle\n  [FILE]...                 one or more file patterns to show\n\nFilter options:\n  -a, --all                 show entries whose name starts with `.`\n  -B, --ignore-backups      hide entries whose name ends with `~`\n      --hide \u003cPATTERN\u003e      hide matching entries, unless --all\n  -I, --ignore \u003cPATTERN\u003e    hide matching entries, even with --all\n\nSort options:\n  -r, --reverse             reverse the sort order\n      --sort \u003cMODE\u003e         [choices: none, name, size, time, extension]\n                            [default: name]\n\nOutput options:\n  -l, --long                show permissions, size, and modified date\n  -h, --human-readable      show sizes using powers of 1024 like 1K 2M 3G etc.\n      --si                  show sizes using powers of 1000 (implies -h)\n\nGlobal options:\n      --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy fs cat`\n\n\u003c!--[[[cog\nfrom cosmofy.fs.cat import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nPrint contents of a file within a Cosmopolitan bundle.\n\nUsage: cosmofy fs cat \u003cBUNDLE\u003e \u003cFILE\u003e... [OPTIONS]\n\nArguments:\n  \u003cBUNDLE\u003e                  Cosmopolitan file bundle\n  \u003cFILE\u003e...                 one or more file patterns to show\n\n  tip: Use `--` to separate options from filenames that start with `-`\n  Example: cosmofy fs cat bundle.zip -- -weird-filename.txt\n\nOptions:\n  -p, --prompt              prompt for a decryption password\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy fs add`\n\n\u003c!--[[[cog\nfrom cosmofy.fs.add import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nAdd files to a Cosmopolitan bundle.\n\nUsage: cosmofy fs add \u003cBUNDLE\u003e [OPTIONS] \u003cFILE\u003e...\n\nArguments:\n  \u003cBUNDLE\u003e                  Cosmopolitan file bundle\n  \u003cFILE\u003e...                 files relative to current directory to add\n\n  tip: Use `--` to separate options from filenames that start with `-`\n  Example: cosmofy fs add bundle.zip -- -weird-filename.txt\n\nOptions:\n  -f, --force               overwrite existing files\n      --chdir \u003cPATH\u003e        change to this directory before adding\n      --dest                prefix to add in the bundle\n                            Most python packages go into `Lib/site-packages`\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy fs rm`\n\n\u003c!--[[[cog\nfrom cosmofy.fs.rm import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nRemove files from a Cosmopolitan bundle.\n\nUsage: cosmofy fs rm \u003cBUNDLE\u003e [OPTIONS] \u003cFILE\u003e...\n\nArguments:\n  \u003cBUNDLE\u003e                  Cosmopolitan file bundle\n  \u003cFILE\u003e...                 files to remove\n\n  tip: Use `--` to separate options from filenames that start with `-`\n  Example: cosmofy fs rm bundle.zip -- -weird-filename.txt\n\nOptions:\n  -f, --force               ignore nonexistent files\n  -r, --recursive           recursively remove directories\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy fs args`\n\n\u003c!--[[[cog\nfrom cosmofy.fs.args import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nGet or set the special `.args` files in a Cosmopolitan bundle.\n\nThese are the arguments to the Cosmopolitan Python.\n\nUsage: cosmofy fs args \u003cBUNDLE\u003e [OPTIONS] [VAL]\n\nArguments:\n  \u003cBUNDLE\u003e                  Cosmopolitan file bundle\n  [VAL]                     value to set (if omitted, current value is printed)\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy self`\n\n\u003c!--[[[cog\nfrom cosmofy.self.__main__ import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nManage the `cosmofy` executable.\n\nUsage: cosmofy self [OPTIONS] \u003cCOMMAND\u003e\n\nCommands:\n  update                    update `cosmofy`\n  version                   display `cosmofy`'s version\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy self update`\n\n\u003c!--[[[cog\nfrom cosmofy.self.update import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nUpdate `cosmofy`.\n\nUsage: cosmofy self update [OPTIONS]\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n### `cosmofy self version`\n\n\u003c!--[[[cog\nfrom cosmofy.self.version import usage\ncog.outl(f\"\\n```text\\n{usage}```\\n\")\n]]]--\u003e\n\n```text\nDisplay `cosmofy`'s version.\n\nUsage: cosmofy self version [OPTIONS]\n\nOptions:\n      --short               only print the version\n      --output-format NAME  [default: text][choices: text, json]\n\nGlobal options:\n  -h, --help                show this help message\n  -q, --quiet...            show quiet output\n  -v, --verbose...          show verbose output\n      --dry-run             do not make any filesystem changes\n      --color \u003cCOLOR\u003e       control output color\n                            [default: auto][choices: auto, always, never]\n                            (auto checks `NO_COLOR`, `FORCE_COLOR`, `CLICOLOR`,\n                            `CLICOLOR_FORCE` and tty support)\n```\n\n\u003c!--[[[end]]]--\u003e\n\n## License\n\n[MIT License](https://github.com/metaist/cosmofy/blob/main/LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetaist%2Fcosmofy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmetaist%2Fcosmofy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetaist%2Fcosmofy/lists"}