{"id":13531869,"url":"https://github.com/onepub-dev/dcli","last_synced_at":"2026-01-27T04:17:56.518Z","repository":{"id":40344041,"uuid":"221869608","full_name":"onepub-dev/dcli","owner":"onepub-dev","description":"An extensive library and tooling for building console/cli applications and scripts using the Dart programming language.","archived":false,"fork":false,"pushed_at":"2026-01-19T12:33:53.000Z","size":138755,"stargazers_count":259,"open_issues_count":35,"forks_count":29,"subscribers_count":6,"default_branch":"master","last_synced_at":"2026-01-19T19:27:12.611Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Dart","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/onepub-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["bsutton"]}},"created_at":"2019-11-15T07:35:52.000Z","updated_at":"2026-01-19T12:33:57.000Z","dependencies_parsed_at":"2023-10-02T06:42:16.897Z","dependency_job_id":"5aecd01d-3a02-43a6-a295-3b4ecabd95b1","html_url":"https://github.com/onepub-dev/dcli","commit_stats":null,"previous_names":["bsutton/dcli"],"tags_count":494,"template":false,"template_full_name":null,"purl":"pkg:github/onepub-dev/dcli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onepub-dev%2Fdcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onepub-dev%2Fdcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onepub-dev%2Fdcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onepub-dev%2Fdcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onepub-dev","download_url":"https://codeload.github.com/onepub-dev/dcli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onepub-dev%2Fdcli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28801819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T03:44:14.111Z","status":"ssl_error","status_checked_at":"2026-01-27T03:43:33.507Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-08-01T07:01:06.392Z","updated_at":"2026-01-27T04:17:56.502Z","avatar_url":"https://github.com/onepub-dev.png","language":"Dart","funding_links":["https://github.com/sponsors/bsutton"],"categories":["Dart","[Dart](https://dart.dev/)"],"sub_categories":[],"readme":"[![pub package](https://img.shields.io/pub/v/dcli.svg)](https://pub.dev/packages/dcli)\n![Pub Version (including pre-releases)](https://img.shields.io/pub/v/dcli?include_prereleases)\n[![pub publisher](https://img.shields.io/pub/publisher/dcli)](https://pub.dev/packages/dcli)\n![Pub Likes](https://img.shields.io/pub/likes/dcli)\n![Pub Popularity](https://img.shields.io/pub/popularity/dcli)\n![Pub Points](https://img.shields.io/pub/points/dcli)\n\n\n\n\n# README\n\nSee the online [documentation](https://dcli.onepub.dev) for DCli\n\n\nDCli is an API and tooling for building cross platform command line \\(CLI\\) applications and scripts using the Dart programming language.\n\nDCli - pronounced d-cli\n\n\n# Overview\nDCli is intended to to allow you to create Command  Line (CLI) Applications from simple scripts to full blown CLI apps. \n\nDCli is a great replacement for CLI apps that would have traditionally been built with Bash, C, python, ruby, Go, Rust ....\n\nWhether its a 5 line Bash script or a 100,000 line production management system (like we run internally) DCli is the right place to start building your CLI infrastructure.\n# So why DCli?\nDCli is based on Dart which is a modern programming language that has a set of features that makes building CLI apps easy and reliable.\n* Dart and DCli are simple to learn\n* Compiled or JIT \n* Shebang support (run .dart scripts directly from the cli ./hello.dart)\n* Small transportable execs (from 10MB), Dart VM is NOT required on target system.\n* Typesafe language catches errors at compile time\n* Sound null safety reduces null pointer exceptions\n* Fast\n* Great development environment using vs-code\n* Local and Remote development/debugging \n* Cross platform supporting Linux/Windows/osx/arm\n\n# Sponsored by OnePub\nHelp support DCli by supporting [OnePub](https://onepub.dev), the private dart repository.\nOnePub allows you to privately share dart packages between your own projects or with colleagues.\nTry it for free and publish your first private package in seconds.\n\nhttps://onepub.dev\n\nPublish a private package in six commands:\n```bash\ndart pub global activate onepub\nonepub login\ndcli create --template=full myclipackage\ncd myclipackage\nonepub pub private\ndart pub publish\n```\nYou can now activate your dcli script from any system with dart installed\n```bash\ndart pub global activate onepub\nonepub login\nonepub pub global activate myclipackage\n```\n\n# Example:\n```dart\n#! /usr/bin/env dcli\n\nimport 'dart:io';\nimport 'package:dcli/dcli.dart';\n\nvoid main() {\n  var name = ask('name:', required: true, validator: Ask.alpha);\n  print('Hello $name');\n\n}\n```\nTo run the above script called hello.dart:\n\n`./hello.dart`\n\n# So why is DCli different?\nDCli is based on the relatively new programming language; [Dart](https://dart.dev/).\n\nDart is currently the [fastest growing language](https://www.linkedin.com/pulse/google-dart-tops-githubs-list-fastest-growing-2019-bill-detwiler#:~:text=According%20to%20GitHub%27s%20annual%20%22The,tagged%20with%20a%20primary%20language) on github and is the basis on which Flutter is built.\n\n[Ubuntu has just announced](https://medium.com/flutter/announcing-flutter-linux-alpha-with-canonical-19eb824590a9) that Flutter will be the primary platform for building GUI's on Ubuntu and is currently working on replacing the Ubuntu installer using Flutter.\n\nYou can now use Dart to build GUI's on Android, IOS, Windows, OSX, Linux and the Web, server side applications and with DCli you can also target console apps.\n\nImagine the benefits of using a single language across you complete ecosystem.\n\nDart is a simple to learn, and uses the all too familiar 'C' style syntax. I've heard Dart described as the love child of Java and JavaScript. If you come from either of these environments you will find Dart easy to work with.\n\n\nBeing easy to learn also helps with the maintenance cycle of you CLI apps. You no longer need a specialised developer, as anyone that has even a vague familiarity with Java, Javascript or C, ... will be right at home with Dart in a couple of days.\n\nDart and DCli are easy to install; DCli makes it a breeze to create simple scripts and provides the tools to manage a script that started out as 100 lines but somehow grew to 10,000 lines.\n\nDart has is also a large and growing ecosystem of [third party libraries](https://pub.dev/) that you can include in your CLI app with no more than an import statement and a dependency declaration.\n\nDart is fast and if you need even more speed it can be compiled to a single file executable that is portable between binary compatible machines.\n\n```bash\n# compile, install to the local PATH and run hello.dart\n\n$\u003e dcli compile --install hello.dart\n$\u003e hello\nname: brett\nHello brett\n\n\n# copy to a remote machine (where dart is NOT installed)\n$\u003e scp hello remote.domain.com:\n\n# login to remote machine and run the app hello\n$\u003e ssh remote.domain.com\n./hello\nname: brett\nHello brett\n```\n\nYou can use your favourite editor to create DCli scripts. Vi or VIM work fine but Visual Studio Code is recommended.\n\nUse Visual Studio Code for the best development experience with Dart.\n\nVisual Studio Code with the dart-code extension provide a great development an debugging experience including the ability to develop and debug code on a remote server.\n\n# Contributing\nRead the [contributing guide](https://dcli.onepub.dev/contributing) for details on how to get involved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonepub-dev%2Fdcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonepub-dev%2Fdcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonepub-dev%2Fdcli/lists"}