sip_cli
Manage mono-repos with `sip`, run scripts and get dependencies concurrently.
0.19.0
14K downloads/mo
#2519 most downloaded on pub.dev
mrgnhnt96/sip
What this package is like to depend on
Last release 10 days ago
13 Aug 2026
Release timing varies
gaps range from 2 weeks to 5 months
Some releases are documented
notes for 42 of 101 stable releases
12 versions withdrawn
withdrawn after publishing
3 years old
113 releases · first in 2024
20 releases in the last 12 months
see the full history below
Release timeline
113 releases · Jan 2024 to Aug 2026Releases
latest 60 of 113-
0.19.013 Aug 2026Release notes
Open source →Features
- Add
sip validate, which checksscripts.yamlwithout running anything and reports each problem against the line it was written on. It catches unresolvable references, malformed substitutions (${{ a:b }}, which sip passes to the shell verbatim), circular references, invalid script names, aliases claimed twice, keys that look reserved but are not, a valueless(bail)that reads asfalse, and scripts with nothing to run. Errors exit78;--fatal-warningsmakes warnings do the same.--jsongives every diagnostic a stable code and location. - Add
--jsontosip list, printing every script as a flat list: its dotted key, the path to pass tosip run, aliases, description, private and runnable flags, bail, the raw commands as written, the fully resolved commands with their concurrency, env, and thescripts.yamlline and column it was declared on.--no-resolveskips expansion, and a query still filters the listing. - Add
--jsontosip run <script> --print, emitting the resolved commands for a single script. - Add
--jsontosip test, reporting counts and the file, test name and message for each failure. Failures that are not test failures -- a compile error, a crashed runner, output sip could not parse -- are reported separately, so an empty failure list does not read as a passing run. - Add
sip mcp, which runs sip as an MCP server over stdio and exposes this project's scripts to an AI coding assistant as tools:list_scripts,dry_run,run_scriptandvalidate.run_scripttakes a script name, never a command, so it cannot run anything not declared inscripts.yaml. - Add
sip ai agents, which writesAGENTS.md-- the convention Codex, Cursor, Copilot, Zed and Amp read.sip ai allincludes it.
Enhancements
- sip no longer forces ANSI colour on. Output is plain when stdout is not a terminal, so piping
sip listno longer hands the reader a tree full of escape codes.--color/--no-color,NO_COLOR,FORCE_COLORandTERM=dumboverride the guess. - The "a new version is available" notice moved to stderr and is skipped entirely, along with its network request, when stdout is not a terminal. Previously it went to stdout on every command -- for a failed run it was the only thing on stdout.
--no-version-checkandSIP_NO_VERSION_CHECKalso turn it off.
- Add
-
0.18.1011 Aug 2026Release notes
Open source →Fixes
- Fix flags that take no value swallowing the argument that follows them.
sip test --omit-errors test/a_test.dart test/b_test.dartset--omit-errorstotest/a_test.dartand dropped that file from the run, and when only one path followed the flag, the run fell back to testing the entire package. Every flag sip reads as a boolean is now parsed as such and leaves the following argument alone. Flags sip doesn't know about still take a value, so unknowndart test/flutter testoptions are forwarded as before. The same fix applies to boolean abbreviations (-b,-d,-l,-r), which also fixessip pub upgrade --tighten <package>andsip pub constrain -d <package>losing their first package name.
- Fix flags that take no value swallowing the argument that follows them.
-
0.18.904 Aug 2026Release notes
Open source →Enhancements
- Experimental, opt-in: Add
--experimental-buckettosip testfor Flutter packages, combining test files into ~CPU-core-count generated bucket files (dispatched as oneflutter testinvocation per shard) to cut per-file VM-isolate startup overhead, the same idea as the existing Dart-only test optimizer. Files that can't be safely combined (unsafeTestWidgetsFlutterBindingsubtypes, or test-surface mutation without a reset) always run in their own isolated wrapper, never sharing an isolate with anything else. If a bucket's combined run looks untrustworthy (a compile error or a hard binding assertion cuts it short, so one of its files never reports a result), just that bucket's original files are automatically discarded and re-run individually, logged clearly, while every other healthy bucket sharing the same invocation is left untouched. This covers the two known combining hazards, but not arbitrary global test-state leakage (e.g. an unreset image cache) between files sharing an isolate -- that class of bug can't be caught by a static check or the runtime fallback, so treat a bucketed run as a strong signal, not an absolute guarantee of unbucketed-equivalent results. Also adds--bucket-count,--bucket-shard-index, and--bucket-shard-countfor splitting buckets across CI matrix jobs. Off by default; Dart packages and existing behavior are completely unaffected.
- Experimental, opt-in: Add
-
0.18.831 Jul 2026Nothing published for this version
-
0.18.714 Apr 2026Release notes
Open source →Fixes
- Fix issue where running multiple concurrent commands would hang indefinitely
- Thanks for your contribution @supposedlysam
- Fix issue where running multiple concurrent commands would hang indefinitely
-
0.18.7-pre17 Nov 2025 pre-release withdrawnNothing published for this version
-
0.18.617 Mar 2026 -
0.18.6-pre17 Nov 2025 pre-release withdrawnNothing published for this version
-
0.18.506 Feb 2026Release notes
Open source →Enhancements
- Improve test output formatting when using
--omit-errorsflag to show formatted path and test description with colors - Use same simple path | test format (without truncation) for failing tests when
--omit-errorsis not enabled, while still showing error output
- Improve test output formatting when using
-
0.18.5-pre17 Nov 2025 pre-release withdrawnNothing published for this version
-
0.18.404 Feb 2026Release notes
Open source →Fixes
- Fix display path in test output to show the correct path when running
sip test <path>instead of always showing./. - Fix display path to show
.when runningsip testwith no arguments or with.argument - Fix test output to wrap text correctly when the terminal width is smaller than the text length
Enhancements
- When
.,test, or no path argument is provided tosip test, run the test command without forwarding all test directories (e.g.,flutter testinstead offlutter test test/utils test/other)
- Fix display path in test output to show the correct path when running
-
0.18.4-pre17 Nov 2025 pre-release withdrawnNothing published for this version
-
0.18.313 Jan 2026 -
0.18.3-pre17 Nov 2025 pre-release withdrawnNothing published for this version
-
0.18.216 Dec 2025Release notes
Open source →Fixes
- Issue where exception was thrown when no pubspec.yaml file was found while trying to resolve variables
-
0.18.2-pre17 Nov 2025 pre-release withdrawnNothing published for this version
-
0.18.104 Dec 2025 -
0.18.1-pre15 Nov 2025 pre-release withdrawnNothing published for this version
-
0.18.018 Nov 2025Release notes
Open source →Breaking Changes
- Remove
test watchcommand - Deprecate
{$path:...}and{--flag}syntax for referencing scripts- This will be removed in the next major version
- Prefer to use
${{ path.script_name }}and${{ --flag }}syntax instead
Fixes
- Adds check & exit for when dart compiler exits unexpectedly
- Adds listener & register for when the process is interrupted
- Handles cleaning up resources
Enhancements
- Formatting output for tests
- Add more detailed logs when running with
--loudflag - Update dependencies
- Improve test output formatting
- Improve script output formatting
Features
- Support
--bailfor flutter tests - Add
--sliceflag for flutter tests- Separates test directories into chuncks to run them concurrently, useful for large test suites and decreasing the time to run tests
- Add analytics lukehog
- Pass
--helpflag withinsip run <path>to print the usage information for the script - Reformat test output on CI
- Remove
-
0.18.0-pre15 Nov 2025 pre-release withdrawnNothing published for this version
-
0.17.1606 Jun 2025Release notes
Open source →Fixes
- Issue where exception thrown on CI preventing the script from running
-
0.17.1506 Jun 2025Release notes
Open source →Enhancements
- Dependency Updates
Fixes
- Issue where logs were being consumed in CI environments
-
0.17.1405 Jun 2025Nothing published for this version
-
0.17.1305 Jun 2025 withdrawnNothing published for this version
-
0.17.1210 May 2025 -
0.17.1105 May 2025Release notes
Open source →Fixes
- Issue where test output was empty when it shouldn't be
Enhancements
- Add relative path to project root in test output
-
0.17.1005 May 2025Nothing published for this version
-
0.17.902 May 2025Release notes
Open source →Enhancements
- Add env variables to
envafter sourcing the env file - Improve test output formatting
- Add env variables to
-
0.17.802 May 2025Nothing published for this version
-
0.17.702 May 2025 -
0.17.619 Apr 2025Release notes
Open source →Enhancements
- Always show the cursor when the process is interrupted
- Sometimes the cursor would not be visible when the process was interrupted and the cursor would remain hidden
- Always show the cursor when the process is interrupted
-
0.17.513 Apr 2025Release notes
Open source →Fixes
- Issue where a reference command that contains concurrency would loop indefinitely
-
0.17.407 Apr 2025 -
0.17.305 Apr 2025Release notes
Open source →Fixes
- Issue where a command following a non-concurrent command would be skipped
-
0.17.204 Apr 2025Release notes
Open source →Fixes
- Issue where env would not be resolved completely if there were no env commands
- Issue where concurrency commands resolution would fail when env configs were present
Enhancements
- Improve "There's a new version available" message
-
0.17.104 Apr 2025Nothing published for this version
-
0.17.027 Mar 2025 -
0.16.326 Mar 2025Release notes
Open source →Fixes
- Issue where a command that contains variables/flags would be skipped when following a concurrent command
Enhancements
- Add
--printflag tosip runcommand- Prints out the commands that would be run without executing them
-
0.16.221 Mar 2025Release notes
Open source →Enhancements
- When running pub commands, ignore pubspecs within directories that start with a dot
- Add working directory to error output
- Add index of command to error output
-
0.16.111 Mar 2025Release notes
Open source →Fixes
- Issue where concurrency commands could run sequentially, unintentionally
-
0.16.010 Mar 2025Release notes
Open source →Features
- Scope concurrency to original scripts
- Add listener to watch for SIGINT signal to stop the process
-
0.15.204 Mar 2025Release notes
Open source →Fix
- Fix issue where test directories were not identified correctly when parent directory starts with
test
- Fix issue where test directories were not identified correctly when parent directory starts with
-
0.15.124 Feb 2025Release notes
Open source →Features
-
Add executables to variables to be used in commands
(executables): flutter: fvm flutter dart: fvm dart build_runner: "{dart} run build_runner build"
-
-
0.15.021 Feb 2025Release notes
Open source →Features
- Add support to
sip pub constraincommand to constrain specific packages to a specific version - Add support to
sip pub constraincommand to unpin (--no-pin)- e.g.
provider: 5.0.0will be unpinned to^5.0.0
- e.g.
- Add support to
-
0.14.618 Jan 2025 -
0.14.517 Jan 2025Release notes
Open source →Features
- Flutter tests respect the
--bailflag duringsip testcommand- If a test fails, the command will stop running tests and exit with a non-zero exit code
- Flutter tests respect the
-
0.14.406 Jan 2025Release notes
Open source →Fixes
- Issue where formatting test output could result in an exception thrown
-
0.14.306 Jan 2025Nothing published for this version
-
0.14.204 Jan 2025Release notes
Open source →Enhancements
- Improve the output when running flutter tests
- Improve the output when running dart tests
-
0.14.118 Dec 2024Release notes
Open source →Features
- Override
dartandflutterexecutable by using(executables)within the `scripts.yaml file
(executables): dart: fvm dart flutter: fvm flutterEnhancements
- Ignore build and dart tool directories when running pub commands
Fixes
- Check for empty tests when no dart/flutter tests are found when targeting dart/flutter tests only
- Override
-
0.14.018 Dec 2024Nothing published for this version
-
0.13.629 Nov 2024Release notes
Open source →Fixes
- Bug where env reference commands may not be resolved
- Bug that did not remove concurrency symbols from env file commands
-
0.13.523 Nov 2024Release notes
Open source →Features
- Check for dependencies when running
sip pub upgrade <packages>- If the package is not found in the
pubspec.yamlfile, thatpubspec.yamlfile will be skipped
- If the package is not found in the
- Check for dependencies when running
-
0.13.421 Nov 2024Nothing published for this version
-
0.13.4+122 Nov 2024Release notes
Open source →Features
- Pin versions of packages by providing the
--pinflag to theconstraincommand- e.g.
sip pub constrain --pinwill pin all packages to their current versions
- e.g.
- Pin versions of packages by providing the
-
0.13.321 Nov 2024Release notes
Open source →Features
- Constrain certain packages by providing their package names to the
constraincommand- e.g.
sip pub constrain analyzer testwill constrain only theanalyzerandtestpackages
- e.g.
- Constrain certain packages by providing their package names to the
-
0.13.221 Nov 2024Release notes
Open source →Features
- Support querying scripts from
sip list- Usage:
sip list [query] [arguments] - Searches for
- Script keys that contain the query string
- Aliases that match the query string
- Descriptions that contain the query string
- Usage:
- Support querying scripts from
-
0.13.120 Nov 2024 -
0.13.020 Nov 2024Release notes
Open source →Features
- Pass packages to
sip pub upgradewhen provided- e.g.
sip pub upgrade analyzer testwill run<dart|flutter> pub upgrade analyzer test
- e.g.
- Create new
sip pub constraincommand- Constrains all dependency versions in the
pubspec.yamlfile
- Constrains all dependency versions in the
- Create new
sip pub depscommand- Lists all dependencies in the
pubspec.yamlfile by running<dart|flutter> pub deps
- Lists all dependencies in the
- Add
--unlock-transitiveflag tosip pub upgradecommand- This will unlock all transitive dependencies when upgrading packages
- Create new
sip pub downgradecommand- Downgrades all dependencies in the
pubspec.yamlfile by running<dart|flutter> pub downgrade
- Downgrades all dependencies in the
Enhancements
- Always include a space after the label when running scripts concurrently to format the output better
- Pass packages to
-
0.12.030 Oct 2024 withdrawnNothing published for this version