{"id":39689043,"url":"https://github.com/mulle-sde/mulle-sde","last_synced_at":"2026-01-18T10:03:46.327Z","repository":{"id":45785781,"uuid":"116178102","full_name":"mulle-sde/mulle-sde","owner":"mulle-sde","description":"💠 Cross-platform IDE for the command-line","archived":false,"fork":false,"pushed_at":"2025-07-13T22:17:28.000Z","size":2840,"stargazers_count":6,"open_issues_count":8,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-14T00:17:40.787Z","etag":null,"topics":["bash","command-line-tool","commandline","ide","mulle-sde","nogui","plugins"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mulle-sde.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2018-01-03T20:18:16.000Z","updated_at":"2025-07-13T22:02:53.000Z","dependencies_parsed_at":"2023-01-29T18:16:24.765Z","dependency_job_id":"a520cb3f-ae80-432b-b484-138c8684683f","html_url":"https://github.com/mulle-sde/mulle-sde","commit_stats":null,"previous_names":[],"tags_count":199,"template":false,"template_full_name":null,"purl":"pkg:github/mulle-sde/mulle-sde","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulle-sde%2Fmulle-sde","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulle-sde%2Fmulle-sde/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulle-sde%2Fmulle-sde/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulle-sde%2Fmulle-sde/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mulle-sde","download_url":"https://codeload.github.com/mulle-sde/mulle-sde/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulle-sde%2Fmulle-sde/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28534207,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bash","command-line-tool","commandline","ide","mulle-sde","nogui","plugins"],"created_at":"2026-01-18T10:03:45.608Z","updated_at":"2026-01-18T10:03:46.320Z","avatar_url":"https://github.com/mulle-sde.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💠 Cross-platform IDE for the command-line\n\n... for Android, BSDs, Linux, macOS, SunOS, Windows (MinGW, WSL)\n\nMulleSDE is an IDE and a dependency (package) manager for the commandline.\nYou could call it a [npm](https://www.npmjs.com/) or a [virtualenv](//pypi.org/project/virtualenv)\nfor C languages. Currently C and Objective-C are supported. C++ is very\nlikely to work too.\n\n\n![Demo](https://github.com/mulle-sde/.github/raw/master/terminal.gif)\n\nThe basic principle in mulle-sde is the **Edit - Reflect - Craft** cycle.\n\n**Edit** - `mulle-sde edit` sets up the editor of your choice. Use it or any Desktop GUI\nor the terminal to manage the project files.\u003cbr\u003e\n**Reflect** - Changes in the filesystem are picked up by `mulle-sde reflect` and are used\nto update build system files and header files.\u003cbr\u003e\n**Craft** - `mulle-sde craft` fetches dependencies, builds them and installs them local to\nyour project. Then it will build your project.\n\n\n\n\n\n\n\n## Example\n\nHere is run through of the major commands to get you going with an Objective-C\nproject:\n\n### Initialize a project\n\nChoose `executable` and `foundation/objc-developer` at the prompts:\n\n```sh\nmkdir myproject\ncd myproject\nmulle-sde init\n```\n\nor\n\n```sh\nmulle-sde init -d myproject -m foundation/objc-developer executable\ncd myproject\n```\n\n### Look at project\n\n``` sh\ntree .               # or ls -R if tree is not installed\nmulle-sde file\nmulle-sde view\nmulle-sde dependency\nmulle-sde library\n```\n\n### Develop project\n\nChoose the editor of your choice. For a better demo effect, choose one of the\nIDEs.\n\n``` sh\nmulle-sde edit\n```\n\nYou don't have to use `mulle-sde edit` though, it's a mere convenience.\n\n\n``` sh\nmulle-sde definition set CFLAGS \"-DFOO=1\"\nmulle-sde craft\nmulle-sde log\nmulle-sde product\nmulle-sde run\nmulle-sde debug\nmulle-sde add src/MyClass.m\nmulle-sde ignore src/MyClass.m src/MyClass.h\nmulle-sde reflect\nmulle-sde clean\nmulle-sde clean all\nmulle-sde clean tidy\n```\n\n\n### Add a third party dependency\n\n``` sh\nmulle-sde add github:madler/zlib.tar\nmulle-sde dependency move zlib to top\nmulle-sde dependency list\nmulle-sde craftinfo zlib CFLAGS \"-DBAR=1\"\nmulle-sde craft\nmulle-sde dependency headers\nmulle-sde dependency libraries\n```\n\n`mulle-sde clean tidy` and the somewhat less safe `mulle-sde clean gravetidy`\nwill become important, when doing lots of dependency manipulations.\n\n\n### Test project\n\n``` sh\nmulle-sde test init\nmulle-sde test craft\nmulle-sde test run\nmulle-sde test coverage\n```\n\n\n### Going a little deeper\n\n``` sh\nmulle-sde -vv craft\nmulle-sde craftorder\nmulle-sde craftstatus\nmulle-sde environment\nmulle-sde patternfile --cat\nmulle-sde style\nmulle-sde tool\n```\n\n### Going deep\n\n``` sh\nmulle-sde callback\nmulle-sde config\nmulle-sde donefile\nmulle-sde headerorder\nmulle-sde linkorder\nmulle-sde task\nmulle-sde -ld -ls -lx treestatus\n```\n\n\n\n\n## Usage\n\nOutside of a mulle-sde project, you have these commands to initialize a new\nproject or to create non-project files:\n\n```\nUsage:\n   mulle-sde [flags] [command] [options]\n\n   The commandline IDE with the development cycle Edit -\u003e Reflect -\u003e Craft.\n\n   * Edit     you use your preferred editors and file managers\n   * Reflect  mulle-sde creates the necessary make files\n   * Craft    mulle-sde builds the dependencies and the project\n\n   Read the \"De Re mulle-sde\" guide:\n      https://www.mulle-kybernetik.com/de-re-mulle-sde/book.html\n\n   ⚠️  mulle-sde is AI and noob friendly! Use:\n      `mulle-sde commands` to see all commands with descriptions\n      `mulle-sde \u003ccmd\u003e help` for detailed help (if marked help: yes)\n      `mulle-sde howto help` for development topics\n      `mulle-sde api help` for API info\n\n   Start a project with `mulle-sde init` or enter an existing mulle-sde\n   project with `mulle-sde \u003cdirectory\u003e`. Get a quick view over the\n   project with `mulle-sde view` and `mulle-sde files`. Manage external\n   dependencies or add files with `mulle-sde add`.\n\nFlags:\n   --style \u003cval\u003e  : see `mulle-env help` for style description\n   -DKEY=VALUE    : define one-time environment variable\n   -ld            : additional debug output\n   -le            : additional environment debug output\n   -lt            : trace through bash code\n   -lx            : external command execution log output\n   -n             : dry run\n   -s             : be silent\n   -v             : be verbose (increase with -vv, -vvv)\n\nCommands:\n   add            : create a source file from templates\n   api            : show API documentation from dependencies\n   commands       : list of all available commands (some undocumented)\n   extension      : manage language and buildtool extensions\n   howto          : show list of development topics for more extensive help\n   init           : create a new project\n   init-and-enter : create a new project then immediately start a subshell\n   install        : install a remote mulle-sde project, like make install\n   libexec-dir    : print path to mulle-sde libexec\n   show           : show available meta extensions\n   uname          : the simplified uname(1)\n\n   Options are command specific. Use mulle-sde \u003ccommand\u003e -h for help.\n```\nOnce a project has been created, you will have a virtual environment with\na whole lot more commands at your disposal:\n\n```\nUsage:\n   mulle-sde [flags] [command] [options]\n\n   The commandline IDE with the development cycle Edit -\u003e Reflect -\u003e Craft.\n\n   * Edit     you use your preferred editors and file managers\n   * Reflect  mulle-sde creates the necessary make files\n   * Craft    mulle-sde builds the dependencies and the project\n\n   Read the \"De Re mulle-sde\" guide:\n      https://www.mulle-kybernetik.com/de-re-mulle-sde/book.html\n\n   ⚠️  mulle-sde is AI and noob friendly! Use:\n      `mulle-sde commands` to see all commands with descriptions\n      `mulle-sde \u003ccmd\u003e help` for detailed help (if marked help: yes)\n      `mulle-sde howto help` for development topics\n      `mulle-sde api help` for API info\n\n   Edit source files in 'src'. If you add, delete, rename or move\n   source files run `mulle-sde reflect`. Use `mulle-sde craft` to craft your\n   project. Add system libraries with `mulle-sde library` and other\n   dependencies with `mulle-sde dependency`.\n\nFlags:\n   -DKEY=VALUE    : define one-time environment variable\n   -ld            : additional debug output\n   -le            : additional environment debug output\n   -lt            : trace through bash code\n   -lx            : external command execution log output\n   -n             : dry run\n   -s             : be silent\n   -v             : be verbose (increase with -vv, -vvv)\n\nCommands:\n   add            : create a source file from templates\n   api            : show API documentation from dependencies\n   callback       : manage reflection callbacks\n   cd             : change directory to dependency,kitchen et al.\n   clean          : clean various parts of the project\n   commands       : list of all available commands (some undocumented)\n   config         : show multiple sourcetree configurations\n   craft          : craft the project using mulle-craft\n   craftinfo      : show build flags of dependencies\n   craftorder     : show craftorder of dependencies\n   craftstatus    : show the craft status of the dependencies\n   crun           : craft and run if project is an executable\n   definition     : change projects craft options like CFLAGS\n   dependency     : manage third party components (like GitHub projects)\n   donefile       : show contents of donefiles\n   editors        : run various GUI tools (needs node.js)\n   env-identifier : get variable name MULLE_UIOS for a name like MulleUIOS\n   environment    : manage environment variables (project settings)\n   exec           : run a command in a subshell\n   export         : export a dependency or library as mulle-sde commands\n   extension      : manage language and buildtool extensions\n   fetch          : fetch the sourcetree\n   headerorder    : show header includes for dependencies and libraries\n   howto          : show list of development topics for more extensive help\n   ignore         : block files from being crafted\n   init           : create a new project\n   json           : show dependencies and libraries as JSON\n   library        : manage second party (OS) libraries (like pthread)\n   linkorder      : show linkorder of dependencies and libraries\n   list           : list project files (files matching patternfiles)\n   log            : show craft results\n   match          : experiment with patternfiles\n   monitor        : monitor project files, run reflect and craft\n   patternfile    : manage patternfiles\n   product        : location of main executable or library, heuristic\n   project        : rename a project and its files\n   project-dir    : print project root directory\n   recraft        : craft everything anew (cleans tidy)\n   reflect        : update project makefiles and sources\n   retest         : retest using mulle-test\n   run            : run executable product\n   searchpath     : show search path for build products\n   source-dir     : print project source directory\n   status         : show information about the current project state\n   subproject     : manage local subprojects\n   symbol         : list C and Objective-C symbols of the project\n   task           : manage reflection tasks\n   test           : run tests using mulle-test\n   treestatus     : show the sourcetree status\n   unveil         : produce sandbox CSV\n   view           : give an overview over the project settings\n\n   Options are command specific. Use mulle-sde \u003ccommand\u003e -h for help.\n```\n\n\n\n## Info\n\n[De Re mulle-sde](https://www.mulle-kybernetik.com/de-re-mulle-sde/) is a\nshort introductory guide. It's a quick read, and gives a good overview.\n\nMulleSDE strives to be self-explanatory through help texts and file comments.\nAll commands have a `help` subcommand for usage information. Most commands have\nsubcommands, that also have further help. E.g. `mulle-sde help` and\n`mulle-sde dependency help`.\n\nThe [mulle-sde WiKi](//github.com/mulle-sde/mulle-sde/wiki) contains more in-depth information,\nthat doesn't fit into the help texts of the various mulle-sde commands\n\n\n\n\n## You are here\n\nmulle-sde is merely there for the developers convenience. The true power comes\nfrom commands like `mulle-env` or `mulle-sourcetree`. The abstraction\noffered by mulle-sde rarely makes it necessary to interact with them. Yet\nthese tools have features, not presented by mulle-sde.\n\n\n![](dox/mulle-sde-overview.svg)\n\n\n\n## Install\n\nSee [mulle-sde-developer](//github.com/mulle-sde/mulle-sde-developer) how to\ninstall mulle-sde, which will also install mulle-sde with required\ndependencies.\n\nThe command to install only the latest mulle-sde into\n`/usr/local` (with **sudo**) is:\n\n``` bash\ncurl -L 'https://github.com/mulle-sde/mulle-sde/archive/latest.tar.gz' \\\n | tar xfz - \u0026\u0026 cd 'mulle-sde-latest' \u0026\u0026 sudo ./bin/installer /usr/local\n```\n\n\n\n## Author\n\n[Nat!](https://mulle-kybernetik.com/weblog) for Mulle kybernetiK\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmulle-sde%2Fmulle-sde","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmulle-sde%2Fmulle-sde","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmulle-sde%2Fmulle-sde/lists"}