PackageTrack
Sign in Get early access

dcli

Dart console SDK - write console (cli) apps/scripts using dart.

10.0.0 61K downloads/mo #1356 most downloaded on pub.dev onepub-dev/dcli

What this package is like to depend on

Last release 3 days ago

21 Aug 2026

Release timing varies

gaps range from 2 weeks to 4 months

Most releases are documented

notes for 217 of 268 stable releases

3 versions withdrawn

withdrawn after publishing

6 years old

298 releases · first in 2020

16 releases in the last 12 months

see the full history below

Release timeline

298 releases · Aug 2020 to Aug 2026
2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 298
  1. 10.0.0 21 Aug 2026
    Release notes
    • BREAKING: change the case of stacktrace to stackTrace to conform with parent exceptions in a number of DCliException dervied classes.

    • upgraded lint_hard and circular buffer deps.

    • we now restore the XDG_RUNTIME_DIR and DBUS_SESSION_BUS_ADDRESS env vars on linux when releasing sudo priviledges. This is to help give tooling access to the linux credential store.

    Open source →
  2. 9.0.2 05 Aug 2026
    Release notes
    • Added NamedLock.observe() for read-only diagnostic and monitoring snapshots without acquiring or otherwise affecting the observed lock.
    Open source →
  3. 9.0.1 24 Jul 2026
    Release notes
    • updated to using posix 6.5.1 so we can use its 'kill' command.
    Open source →
  4. 9.0.0 28 May 2026
    Release notes
    • Updated NamedLock files to use the visible pid.<pid>.isolate.<isolate>.name.<name> filename format.
    • Added cross-platform process start identities to NamedLock files so stale locks are detected when an operating system or container reuses a PID.
    • Replaced ps process checks with native process APIs: kill(pid, 0) and proc_pidinfo for macOS process start identities.
    • Removed deprecated public APIs and deprecated entry-point libraries.
    • Raised Dart SDK lower bounds where required by dependency upgrades.
    • Upgraded win32 to 6.0.1 and dart_console to 5.x.
    • Removed the dcli_common publish_to override so packages publish to pub.dev.
    Open source →
  5. 8.4.2 28 Jan 2026
    Release notes
    • Fixed a bug in the read where it was mixing codecs.
    • Change all occurances of #! /usr/bin/env dart with #! /usr/bin/env dcli to take advantage of the the faster startup time due to its use of the --resident flag.
    Open source →
  6. 8.4.1 27 Jan 2026
    Release notes
    • Change the script runner to use the --resident flag to improve startup times for dart scripts (from 5sec down to 1).
    • Fixed a bug where the -v flag wasn't actually enabling verbose logging.
    • moved flag class into its own file, verbose and help as well.
    Open source →
  7. 8.4.0 27 Jan 2026
    Release notes
    • no using the document_throws package to document all exceptions.
    • document all exceptions.
    • cleaned up some of the hand documented exceptions to fully utilise the @Throwing lints.
    • fixed formatting.
    • Added option includeParentEnvironment to start methods to resolve https://github.com/onepub-dev/dcli/issues/263.

    $ 8.4.0

    • Added includeParentEnvironment to start() and startFromArgs() so child process inheritance can be controlled.
    Open source →
  8. 8.3.0 01 Jan 2026
    Release notes
    • DCLi functions which execute process have assumed that data is ascii which is incorrect as most cli system utilise utf-8. This updates changes the default encoding to utf-8 and provides the ability to select the encoding. These changes should be backward compatible whilst fixing the output of programs that output mulit-byte utf-8 data. Functions like start() now take an 'encoding' parameter which is used if no Progress is passed to the method. If you pass in a Progress then the encoding of that Progress is used.
      • Added encoding-aware Progress classes.
    Open source →
  9. 8.2.1 09 Dec 2025
    Release notes
    • corrected documentation for Progresses. Added a new progress 'both' which allows you to output both stdout and stderr via a single LineAction.
    • corrected the names of delete and backspace.
    Open source →
  10. 8.2.0 24 Oct 2025
    Release notes

    8.2.0 Fixes a major bug which could randomly cause a hang when running a process (.run, .start etc) due to a race condition. All users should upgrade to 8.2.0

    • Fixed a race condition. postMessage would attempt a put which would throw an full exception, by the time we did an isFull check (because the exception didn't tell us which state the mailbox was in, the message was read by the other isolate and the mailbox was no longer full so we incorrectly assumed that the mailbox was closed and discared the put attempt. This would result in the exit code not being sent to the primary isolate causing a hang. We have now change the mailbox to throw a full or closed exception explicilty removing the need for the isFull call and therefore eliminating the race condition.
    • After the process completes ae are now expliitly closing the mailbox. We previously relied on the finalizer, this is probablly not necessary but makes the process more explit. logging improvements. The IsolateChannel now has a close method that closes all ports.
    Open source →
  11. 8.1.1 18 Oct 2025
    Release notes
    • exitCode was not being set for non-zero results due to the dart:io package having its own global exitCode setter.
    • process was late when we need to set it to null explicitly causing issues when an exception was thrown due to the executable being not found.
    • fixed format for 1000B not being formatted correctly as 1.000K.
    • moved process related tests into the process folder.
    • moved synchronous_test into the correct folder.
    Open source →
  12. 8.1.0 18 Oct 2025
    Release notes
    • upgraded to pubspec_manager 3.x
    Open source →
  13. 8.0.0 17 Oct 2025
    Release notes
    • retracted 7.2 as it had a breaking api change (setVerbose is no sync).
    • This is a re-release of 7.2 with the correct version number reflecting that breaking change.
    Open source →
  14. 7.2.0 16 Oct 2025 withdrawn
    Release notes
    • Fixes #260 - thanks to @passy for the suggested fix.
    • moved exitCode read into a finally block to guarentee that we read the exit code as we have seen child processes go into a defunct state due the parent not reading the exit code.
    • terminal is no longer a required arg, it sets to false by default.
    • reverted the use of TokenEvaluation from win32 as not all 5.x version of win32 have the replacement TokenEvaluation.
    • Fixed a bug in the RunnableProcess.run method which was failing to throw a RunException if the exit code was non-zero and nothrow was false.
    • upgraded to lint_hard 6.x
    Open source →
  15. 7.1.1 27 Sep 2025
    Release notes
    • check package analyses correctly when down graded.
      • upgraded to scope 5.1 to access const ctors for keys.
      • Removed usage of deprecated const from win32.
    • fixed async test calls.
    • escaped html doco.
    • for some reason we had an ignore on the example files.
    Open source →
  16. 7.1.0 26 Sep 2025
    Release notes
    • upgraded to pubspec_manager 2.x
    Open source →
  17. 7.0.5 08 Jun 2025
    Release notes
    • fixed missing await in sleepAsync causing it to return immediately.
    Open source →
  18. 7.0.4 08 Jun 2025
    Release notes
    • exposed the sleepAsync function.
    Open source →
  19. 7.0.3 27 Apr 2025
    Release notes
    • broken buid - generated files were missing.
    Open source →
  20. 7.0.2 05 Mar 2025
    Release notes
    • updated to code to conform to the lates lint_hard lints. Work on the 'pack' command to ensure it generates code that conforms with the latest lint rules.
    • changed the ask call to readlineSync to use the newer utf8 global var.
    Open source →
  21. 7.0.1 14 Feb 2025
    Release notes
    • Merge pull request #255 from davidmartos96/archive_v4 - thanks for the patch
    • Support archive v4
    Open source →
  22. 7.0.0 12 Feb 2025
    Release notes

    BREAKING - copyTree now copies empty directories and links. To revert to the original behaviour pass in 'includeEmpty: false' and 'includeLinks: false'.

    • deprectaed symlink in favour of createSymLink as it is more consistent with the other symLink methods and more consisten with the usage of createXXX in other APIs.
    Open source →
  23. 6.1.2 26 Jan 2025
    Release notes
    • Added new method withPrivilegesAsync
    • forced native_synchronisation to 0.7.1
    • Fixed bug on windows which resulted in the projectRootPath being /C:/
    Open source →
  24. 6.1.0 19 Oct 2024
    Release notes
    • upgraded to archive 3.6.1 to overcome dart 3.5 compatibility issue.
    • upgraded all packaages to scope 5.x
    • upgraded to native_syncronization_temp 0.7.1 to fix macos and windows compatiability issues.
    Open source →
  25. 6.0.5 17 Aug 2024
    Release notes
    • attempt two at fixing the process runner bug.
    Open source →
  26. 6.0.4 17 Aug 2024
    Release notes
    • fixed a bug in all of the 'process' runners caused by a changed to the native_synchronize package which now can be in a closed state. This confused our mailbox logic which could result in the exit code never being posted resulting the process isolate never shutting down.
    Open source →
  27. 6.0.3 15 Aug 2024
    Release notes
    • upgraded to archive 3.6.1 to overcome dart 3.5 compatibility issue. upgraded all packaages to scope 5.x upgraded all packages to lint_hard 5.x
    Open source →
  28. 6.0.2 14 Aug 2024
    Release notes
    • upgraded to native_synchronise_temp 0.5.0 to resolve https://github.com/onepub-dev/dcli/issues/252
    Open source →
  29. 6.0.1 12 Aug 2024
    Release notes
    • fixed a bug in chown. If the path was a directlry and recursive was true then we wouldn't change the permissions of the directory itself only its children. We now change the permissions for the directory as well as any children.
    Open source →
  30. 6.0.0 08 Aug 2024
    Release notes
    • Breaking The AskValidator now takes an additional argument 'customErrorMessage'. This will only affect users that have built custom ask validators. change String validate(String line) to String validate(String line, {String? customErrorMessage}) and then return the customErrorMessage rather than you usual error message if the customErrorMessage is not null. When outputing an error from you validator you should use customErrorMessage??'my original error' Thanks to Emad Beltaje for the contribution!

    • Upgraded to win32 v5 to fix an issue with a deprecated api for dart 3.5.

    Open source →
  31. 5.0.0 31 Jul 2024
    Release notes
    • Breaking -- Removed a number of the withXX sync functions in favour of withXXAsync as the sync versions were dangerous as it was too easy to make async calls within the callback and then the withXXX method would return before the callback completed.

    We have left stub methods for the old withXXX form that are marked as deprecated and will throw an UnsupportedError if you call them.

    -- withTempDir replaced by withTempDirAsync -- withFileProtection replaced by withFileProtectionAsync

    • Removed a number of redundant methods from the dcli package that were just pass throughs to the dcli_core package. As the dcli barrel file now exports the dcli_core functions for these methods there should be no noticiable difference in the API.

    • Added new method PubCache::pathToGlobalPackage

    • Fixed a bug in NamedLock which was causing a dead lock if the an existing lock file was found but the owning process was no longer runnimg.

    Open source →
  32. 4.0.5 16 Jul 2024
    Release notes
    • change the #! bang to use dart rather than dcli. In the early days dcli had to read a script and set up the pubspec but we no longer support this mode and calling through dcli just slows start time on scripts. So we are moving to launching via dart directly.
    Open source →
  33. 4.0.4 07 Jul 2024
    Release notes
    • opened the win32 compatible version range. This resulted in a number of deprecated warnings which we have suppressed. This should be ok until we need to support win32 6.x and helps HMB to work with the latest file_picker pacakge.
    Open source →
  34. 4.0.3 03 Jul 2024
    Release notes
    • added missing await.
    • Merge pull request #248 from sstasi95/master
    • fix ProgressMixin.firstLine throwing if there are no lines
    Open source →
  35. 4.0.2 23 Jun 2024
    Release notes
    • removed overridden dep.
    • Added a sync test for exitCode.
    • temporary cleanup of the withLock methods until we get a real fix for the runtime lock package.
    • update version.
    • turned off debugging, cleaned old code.
    • removed old startIsolate and renamed startIsoalte2 to startIsolate.
    Open source →
  36. 4.0.1 20 May 2024

    Nothing published for this version

  37. 4.0.1-beta.4 13 Apr 2024 pre-release
    Release notes
    • added back in the missing nothrow arg to start method.
    • Fixed running of detached processes. We were trying to get the exit code which would never work.
    • Added some missing async statements when using named locks. Fixed a bug in dart_project when running in a unit test. It was getting the platformComfig which was a uri of the form file:// but then trying to process it as a simple path.
    • moved message_response to its own file. Added a processor for exceptions as we were dumping exceptions generated in the isolate on the ground. Fixed a bug when we call start in with mode terminal. We were still trying to attach to the stdio stream when the don't actually exist. The same goes for detached. added json encoding to DCliException and RunException so we can pass them over the isolate boundary via a mailbox.
    • changed namedLock to async until tsavoc has a chance to merge in his sync version. We may need a sync and async version to allow for async callbacks.
    • still no action on async validation methods for 'ask'.

    Most unit tests are now working and most of the common process execution paths appear to be working.

    Open source →
  38. 4.0.1-beta.2 07 Apr 2024 pre-release
    Release notes
    • upgraded to the latest version of dart_console.
    • migrated back to dart_console as I'm now the maintainer.
    • down graded max win32 version to 5.3 to avoid deprecation notices.
    • renabled support for terminal mode on the start command. Still needs more testing.
    • minor code refactor.
    • Reverted the use of win32 to constansts deprecated from 5.4.0 to improve our compatability window.
    Open source →
  39. 4.0.1-beta.1 05 Apr 2024 pre-release
    Release notes

    Breaking

    • fetch/fetchMulti are now async.

    Still a chunk more to do but the core 'good' paths seem to be mostly working when running processes. Optimistically this will get most people over the hump whilst we clean up the few remaining problems.

    There are still some concerns around running a process in 'terminal' or 'detached' mode and I've not done any testing (and there is a path missing) of getting stdin attached to the process. This is probably the remaining 'big' issue but I think I can see a path through this.

    Take it for a spin and let us know how you go. I will try to priorities the issues that are burning people the most.

    Open source →
  40. 4.0.1-alpha.13 25 Mar 2024 pre-release

    Nothing published for this version

  41. 4.0.1-alpha.12 25 Mar 2024 pre-release

    Nothing published for this version

  42. 4.0.1-alpha.11 21 Mar 2024 pre-release
    Release notes
    • merged #234 from tsavo-at-pieces which provides windows support for synchronous process calls. Big thanks for the work on this Tsavo!!!
    • migrated away from custom implementation of mailboxes to the native_synchronization package. Big thanks to @mraleph for his massive contributions and trial conversion of dcli to dart 3.x which most of my work is based off.
    • The sleep function is now fully syncronous and blocks all async code from running. This is a BREAKING change as the previous version of sleep allowed async code to keep running. Use sleepAsync to allow async code to run. Note: code in other isolates is unaffected by calls to sleep.
    Open source →
  43. 4.0.1-alpha.8 20 Feb 2024 pre-release
    Release notes
    • fixed the sdk range for dcli_common
    • switch to activating dcli_sdk instead of dcli.
    Open source →
  44. 4.0.1-alpha.7 19 Feb 2024 pre-release
    Release notes
    • upgrade settings_yaml version.
    Open source →
  45. 4.0.1-alpha.4 19 Feb 2024 pre-release

    Nothing published for this version

  46. 4.0.0 14 May 2024
    Release notes
    • BREAKING - removed the PubSpec class. We now recommend that you use the package pubspec_manager which provide similar (better) functionality We have also migrated dcli from using pubspec2 to pubspec_manager.
    • withTempDir is now async. The sync version was dangerous because if the callback was async dart didn't warn you and we could delete the temp dir before the action completed.
    • core.which is now synchronous.
    • core.restoreFile is now synchronous
    • core.tail now returns a List<String> rather than a stream.
    • fetch is now async

    Special thanks to Vyacheslav Egorov for contributing most of the work required to remove waitFor.

    Open source →
  47. 4.0.0-alpha.1 24 Oct 2023 pre-release

    Nothing published for this version

  48. 3.4.0 26 Mar 2024

    Nothing published for this version

  49. 3.3.6 27 Feb 2024

    Nothing published for this version

  50. 3.3.5 05 Feb 2024

    Nothing published for this version

  51. 3.3.4 05 Feb 2024

    Nothing published for this version

  52. 3.3.3 05 Feb 2024

    Nothing published for this version

  53. 3.3.2 14 Jan 2024

    Nothing published for this version

  54. 3.3.1 13 Jan 2024

    Nothing published for this version

  55. 3.3.0 13 Jan 2024

    Nothing published for this version

  56. 3.2.8 13 Jan 2024

    Nothing published for this version

  57. 3.2.7 13 Jan 2024

    Nothing published for this version

  58. 3.2.5 12 Jan 2024

    Nothing published for this version

  59. 3.2.4 04 Jan 2024

    Nothing published for this version

  60. 3.2.3 16 Dec 2023

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive