{"id":17398216,"url":"https://github.com/codeman99/tyedev","last_synced_at":"2025-04-15T01:43:31.638Z","repository":{"id":207111867,"uuid":"718211299","full_name":"CodeMan99/tyedev","owner":"CodeMan99","description":"Improve Devcontainer Creation","archived":false,"fork":false,"pushed_at":"2025-03-23T23:41:02.000Z","size":163,"stargazers_count":13,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T00:27:45.287Z","etag":null,"topics":["containers","devcontainers","developer-tools"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodeMan99.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2023-11-13T16:03:40.000Z","updated_at":"2025-03-23T23:40:56.000Z","dependencies_parsed_at":"2023-11-17T19:54:17.028Z","dependency_job_id":"100eda42-8af2-4373-bcec-a36584b2622b","html_url":"https://github.com/CodeMan99/tyedev","commit_stats":null,"previous_names":["codeman99/devconf","codeman99/tyedev"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeMan99%2Ftyedev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeMan99%2Ftyedev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeMan99%2Ftyedev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeMan99%2Ftyedev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodeMan99","download_url":"https://codeload.github.com/CodeMan99/tyedev/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248991516,"owners_count":21194893,"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":["containers","devcontainers","developer-tools"],"created_at":"2024-10-16T14:42:26.751Z","updated_at":"2025-04-15T01:43:31.622Z","avatar_url":"https://github.com/CodeMan99.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tyedev\n\n![white tyedev logo](./static/tyedev-white.png#gh-dark-mode-only)\n![black tyedev logo](./static/tyedev-black.png#gh-light-mode-only)\n\nCreate and manage devcontainer configuration.\n\n## Install\n\nThe preferred method is to use [cargo binstall](https://github.com/cargo-bins/cargo-binstall).\n\n```shell\n$ cargo binstall tyedev\n```\n\nAlternatively, download the appropiate [release asset](https://github.com/CodeMan99/tyedev/releases/latest). Then extract and copy as needed.\n\n```shell\n$ shasum --check tyedev-*.sha256\n$ tar -xzf tyedev-*.tar.gz\n$ cp tyedev-*/tyedev ~/.local/bin\n```\n\nThe last method is to use the [Github CLI](https://github.com/cli/cli) with the [redraw/gh-install](https://github.com/redraw/gh-install) extension.\n\n```shell\n$ gh ext install redraw/gh-install\n$ gh install CodeMan99/tyedev\n```\n\n## Usage\n\nUse `--help` to see help on input flags.\n\n```shell\n$ tyedev --help\nCreate and manage devcontainer configuration\n\nUsage: tyedev [OPTIONS] [COMMAND]\n\nCommands:\n  completions  Generate shell auto-complete configuration\n  init         Create new devcontainer\n  inspect      Display details of a specific feature, template, or collection\n  list         Overview of collections\n  search       Text search the `id`, `keywords`, and `description` fields of templates or features\n  help         Print this message or the help of the given subcommand(s)\n\nOptions:\n  -p, --pull-index  Pull the index of features \u0026 templates\n  -v, --verbose...  More output per occurrence\n  -q, --quiet...    Less output per occurrence\n  -h, --help        Print help\n  -V, --version     Print version\n```\n\nAll of the commands depend on a local copy of the _generated_ [collection index](https://github.com/devcontainers/devcontainers.github.io/blob/gh-pages/_data/collection-index.yml).\n\n```shell\n$ tyedev --pull-index --verbose\n[2023-11-23T15:28:33.056Z INFO  tyedev] Saved to /home/vscode/.local/share/tyedev/devcontainer-index.json\n```\n\n### Features\n\nThe `tyedev` application is organized into sub-commands.\n\n#### tyedev init\n\nUse to start a new project. Provide no arguments for the default interactive experience.\n\n```shell\n$ tyedev init --help\nCreate new devcontainer\n\nUsage: tyedev init [OPTIONS]\n\nOptions:\n  -z, --non-interactive               Avoid interactive prompts\n  -s, --attempt-single-file           Write to \".devcontainer.json\" when using an `image` type template\n  -v, --verbose...                    More output per occurrence\n  -q, --quiet...                      Less output per occurrence\n  -r, --remove-comments               Strip comments from the generated devcontainer.json\n  -t, --template-id \u003cOCI_REF\u003e         Reference to a Template in a supported OCI registry\n  -f, --include-features \u003cOCI_REF\u003e    Add the given features, may specify more than once\n      --include-deprecated            Include deprecated results when searching\n  -w, --workspace-folder \u003cDIRECTORY\u003e  Target workspace for the devcontainer configuration\n  -h, --help                          Print help\n```\n\nNote that `--remove-comments` is not yet actually supported. A better `jsonc` library would be helpful. May need to write my own.\n\n#### tyedev inspect\n\nDescribe all details of a specific template or feature. Use as an aid when editing an existing `devcontainer.json`.\n\n```shell\n$ tyedev inspect --help\nDisplay details of a specific feature, template, or collection\n\nUsage: tyedev inspect [OPTIONS] \u003cOCI_REF\u003e\n\nArguments:\n  \u003cOCI_REF\u003e  The `id` to inspect\n\nOptions:\n  -d, --display-as \u003cFORMAT\u003e  Format for displaying the configuration [default: table] [possible values:\n                             table, json, none]\n      --install-sh           Read the `install.sh` script of a given feature\n  -v, --verbose...           More output per occurrence\n  -q, --quiet...             Less output per occurrence\n      --show-files           List the filenames of a given feature or template\n  -h, --help                 Print help\n```\n\nThe `--show-files` option exists to assist authors with debugging a missing file problem.\n\nThe `--install-sh` option exists for debugging container creation failures.\n\n#### tyedev list\n\nList collections overview. Akin to [containers.dev/collections](https://containers.dev/collections).\n\n```shell\n$ tyedev list --help\nOverview of collections\n\nUsage: tyedev list [OPTIONS]\n\nOptions:\n  -C, --collection-id \u003cOCI_REF\u003e  Display a given collection, including features and templates\n  -v, --verbose...               More output per occurrence\n  -q, --quiet...                 Less output per occurrence\n  -h, --help                     Print help\n```\n\nWith `--collection-id` option display all features or templates for the given collection.\n\n```shell\n$ tyedev list -q -C ghcr.io/codeman99/features\nName:          Features by CodeMan99\nMaintainer:    Cody Taylor\nContact:       https://github.com/CodeMan99/features/issues\nRepository:    https://github.com/CodeMan99/features\nOCI Reference: ghcr.io/codeman99/features\n┌───┬─────────┬────────────────┬──────────────┬───────────────────────────────────────────────────────────┐\n│   │ Type    │ OCI Reference  │ Name         │ Description                                               │\n├───┼─────────┼────────────────┼──────────────┼───────────────────────────────────────────────────────────┤\n│ 1 │ feature │ ~/circleci-cli │ CircleCI CLI │ Install the CircleCI CLI. Also installs the CircleCI ext+ │\n│ 2 │ feature │ ~/exercism-cli │ Exercism CLI │ Install the exercism-cli.                                 │\n└───┴─────────┴────────────────┴──────────────┴───────────────────────────────────────────────────────────┘\n```\n\n#### tyedev search\n\nFind a [template](https://containers.dev/templates) or [feature](https://containers.dev/features).\n\n```shell\n$ tyedev search --help\nText search the `id`, `keywords`, and `description` fields of templates or features\n\nUsage: tyedev search [OPTIONS] \u003cVALUE\u003e\n\nArguments:\n  \u003cVALUE\u003e  The keyword(s) to match\n\nOptions:\n  -c, --collection \u003cCOLLECTION\u003e  Match which section of the index [default: templates] [possible values:\n                                 templates, features]\n  -d, --display-as \u003cFORMAT\u003e      Format for displaying the results [default: table] [possible values:\n                                 table, json]\n  -v, --verbose...               More output per occurrence\n  -f, --fields \u003cFIELD\u003e           Match only within the given fields [possible values: id, name,\n                                 description, keywords]\n  -q, --quiet...                 Less output per occurrence\n      --include-deprecated       Display deprecated results\n  -h, --help                     Print help\n```\n\nExample: Find a _feature_ with `circleci-cli` in the _id_ field only, and output as _json_.\n\n```shell\n$ tyedev search --quiet -d json -f id -c features circleci-cli | jq '.[1]'\n{\n  \"collection\": \"Features\",\n  \"id\": \"ghcr.io/codeman99/features/circleci-cli\",\n  \"version\": \"1.2.0\",\n  \"name\": \"CircleCI CLI\",\n  \"description\": \"Install the CircleCI CLI. Also installs the CircleCI extension for vscode.\",\n  \"keywords\": null\n}\n```\n\n### Non-Features\n\nThis project avoids interop with docker or any editor. Please see the [related tools](#related-tools) list to accomplish runtime needs.\n\n## Work in Progress\n\nThis project is absolutely a work in progress. Bugs do exist. More documentation needs to be written. More tests need to be written. General design patterns need to be reviewed.\n\n### Contributing\n\nHow to help!\n\n- :wrench: Just use the tool. :speaking_head: Feedback is appreciated.\n- :bug: Report bugs.\n- :book: Improve documentation.\n- :computer: Contribute code directly.\n\n### Devcontainer\n\nFor code contributions please use the _devcontainer_ for this project.\n\nThere are some permissions errors that need to be sorted out for `/usr/local/cargo`. Upstream issues have already been filed. For now just correct this manually.\n\n```shell\n$ sudo chmod -R g+w $CARGO_HOME\n```\n\n## Related Tools\n\n- `devcontainer` - [Official CLI](https://github.com/devcontainers/cli) tool. Primary use is building and executing containers.\n- `devcontainerx` - [Unofficial CLI](https://github.com/stuartleeks/devcontainer-cli) to improve the experience of working with Visual Studio Code devcontainers.\n- `vscli` - A CLI tool to [launch vscode projects](https://github.com/michidk/vscli), which supports devcontainers.\n- `devcon` - [Start devcontainers without vscode](https://github.com/guitsaru/devcon).\n- `devopen` - Simple [bash function](https://gist.github.com/CodeMan99/852d8539bd35a347a48d4a6119ff70e7) to open a devcontaienr project from a WSL directory.\n- As well as other [supporting tools](https://containers.dev/supporting) in the devcontainer ecosystem.\n\n## General Devcontainers Resources\n\n- The [VSCode Overview](https://code.visualstudio.com/docs/devcontainers/containers) documentation.\n- The [awesome-devcontainers](https://github.com/manekinekko/awesome-devcontainers) repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeman99%2Ftyedev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeman99%2Ftyedev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeman99%2Ftyedev/lists"}