A beautiful and feature-packed Apple Music CLI

Overview

am

A beautiful and feature-packed Apple Music CLI!

Written in Rust.

Installation

This GitHub repository contains a flake. Add github:ryanccn/am to your flake inputs:

{
  inputs = {
    # ...other inputs
    am = {
      url = "github:ryanccn/am";
      inputs.nixpkgs.follows = "nixpkgs";
    }
  }
}

Then, use the overlay from overlays.default and add am to your packages. Alternatively, you can use packages.default directly.

Cargo

You can install (the cutting-edge version of) am through cargo.

$ cargo install --git https://github.com/ryanccn/am.git

Manual download

Download the aarch64 (Apple Silicon) or the x86_64 (Intel) version of the binary.

Dequarantine them with xattr -d com.apple.quarantine <path> and make them executable with chmod +x <path>.

Features

  • Beautiful now playing display
  • Playback controls (play, pause, toggle, resume, back, forward, next, previous)
  • Discord rich presence
  • Launch agent installation
  • Shell completions

Screenshots

am now

am now

am next

am next

am discord

am discord

Discord presence launch agent

Through a macOS launch agent, the Discord rich presence can be made to run in the background as long as you are logged in.

Standard installation

You can install the Discord presence as a launch agent by running am discord install. Note that this depends on the executable/symlink staying in the same place; if it moves to a different place, run the command again.

The am process running in the launch agent will log to ~/Library/Logs/am-discord-rich-presence.log.

You can uninstall the launch agent with am discord uninstall.

Home Manager

This repository's flake also provides a Home Manager module at homeManagerModules.default. This module exposes a service am-discord-rich-presence that you can enable.

{
  services.am-discord-rich-presence = {
    enable = true;

    # optional
    # logFile = "${config.xdg.cacheHome}/am-discord-rich-presence.log";
  }
}

Thanks to...

License

GPLv3

Comments
  • build(deps): bump clap from 4.4.2 to 4.4.3

    build(deps): bump clap from 4.4.2 to 4.4.3

    Bumps clap from 4.4.2 to 4.4.3.

    Release notes

    Sourced from clap's releases.

    v4.4.3

    [4.4.3] - 2023-09-12

    Documentation

    • (derive) Clarify use of attributes within the tutorial
    • Split sections in the builder and derive tutorials into separate modules
    Changelog

    Sourced from clap's changelog.

    [4.4.3] - 2023-09-12

    Documentation

    • (derive) Clarify use of attributes within the tutorial
    • Split sections in the builder and derive tutorials into separate modules
    Commits
    • e9668b3 chore: Release
    • bc4986e docs: Update changelog
    • 3d53641 Merge pull request #5122 from epage/docs
    • 32586c7 docs(tutorial): Split into separate modules per section
    • 5f6d4a3 docs(tutorial): Split out into a module
    • 20987de Merge pull request #5121 from epage/docs
    • 9e7404b docs(tutorial): Attempt to clarify attributes
    • db97a2c docs(derive): Clarify value attributes are for PossibleValue
    • 37ba607 chore: Release
    • 3234c74 docs: Update changelog
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • build(deps): bump serde_json from 1.0.105 to 1.0.106

    build(deps): bump serde_json from 1.0.105 to 1.0.106

    Bumps serde_json from 1.0.105 to 1.0.106.

    Release notes

    Sourced from serde_json's releases.

    v1.0.106

    Commits
    • 45f10ec Release 1.0.106
    • f346308 Elaborate on documentation of Number::as_str
    • f16cad6 Add cfg banner to documentation of Number::as_str
    • fc8dd13 Touch up PR 1067
    • 028b643 Merge pull request #1067 from chanced/add-as_str-to-number
    • db75c22 Fix unintended u8 link inferred by intra doc link
    • 11b603c Resolve rustdoc::redundant_explicit_links lint
    • 95c5d6c Fix documentation typo from PR 1069
    • 5a39516 Reorder Value::as_number after is_number
    • 6a5fef9 Wrap as_number documentation to 80 columns
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • build(deps): bump clap_complete from 4.4.0 to 4.4.1

    build(deps): bump clap_complete from 4.4.0 to 4.4.1

    Bumps clap_complete from 4.4.0 to 4.4.1.

    Release notes

    Sourced from clap_complete's releases.

    v4.4.1

    [4.4.1] - 2023-08-28

    Features

    • Stabilize Command::styles
    Changelog

    Sourced from clap_complete's changelog.

    [4.4.1] - 2023-08-28

    Features

    • Stabilize Command::styles
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • build(deps): bump chrono from 0.4.29 to 0.4.30

    build(deps): bump chrono from 0.4.29 to 0.4.30

    Bumps chrono from 0.4.29 to 0.4.30.

    Release notes

    Sourced from chrono's releases.

    0.4.30

    In this release, we have decided to swap out the chrono::Duration type (which has been a re-export of time 0.1 Duration type) with our own definition, which exposes a strict superset of the time::Duration API. This helps avoid warnings about the CVE-2020-26235 and RUSTSEC-2020-0071 advisories for downstream users and allows us to improve the Duration API going forward.

    While this is technically a SemVer-breaking change, we expect the risk of downstream users experiencing actual incompatibility to be exceedingly limited (see our analysis of public code using a crater-like experiment), and not enough justification for the large ecosystem churn of a 0.5 release. If you have any feedback on these changes, please let us know in #1268.

    Additions

    • Add NaiveDate::leap_year (#1261)

    Documentation

    Relation between chrono and time 0.1

    Rust first had a time module added to std in its 0.7 release. It later moved to libextra, and then to a libtime library shipped alongside the standard library. In 2014 work on chrono started in order to provide a full-featured date and time library in Rust. Some improvements from chrono made it into the standard library; notably, chrono::Duration was included as std::time::Duration (rust#15934) in 2014.

    In preparation of Rust 1.0 at the end of 2014 libtime was moved out of the Rust distro and into the time crate to eventually be redesigned (rust#18832, rust#18858), like the num and rand crates. Of course chrono kept its dependency on this time crate. time started re-exporting std::time::Duration during this period. Later, the standard library was changed to have a more limited unsigned Duration type (rust#24920, RFC 1040), while the time crate kept the full functionality with time::Duration. time::Duration had been a part of chrono's public API.

    By 2016 time 0.1 lived under the rust-lang-deprecated organisation and was not actively maintained (time#136). chrono absorbed the platform functionality and Duration type of the time crate in chrono#478 (the work started in chrono#286). In order to preserve compatibility with downstream crates depending on time and chrono sharing a Duration type, chrono kept depending on time 0.1. chrono offered the option to opt out of the time dependency by disabling the oldtime feature (swapping it out for an effectively similar chrono type). In 2019, @​jhpratt took over maintenance on the time crate and released what amounts to a new crate as time 0.2.

    Security advisories

    In November of 2020 CVE-2020-26235 and RUSTSEC-2020-0071 were opened against the time crate. @​quininer had found that calls to localtime_r may be unsound (chrono#499). Eventually, almost a year later, this was also made into a security advisory against chrono as RUSTSEC-2020-0159, which had platform code similar to time.

    On Unix-like systems a process is given a timezone id or description via the TZ environment variable. We need this timezone data to calculate the current local time from a value that is in UTC, such as the time from the system clock. time 0.1 and chrono used the POSIX function localtime_r to do the conversion to local time, which reads the TZ variable.

    Rust assumes the environment to be writable and uses locks to access it from multiple threads. Some other programming languages and libraries use similar locking strategies, but these are typically not shared across languages. More importantly, POSIX declares modifying the environment in a multi-threaded process as unsafe, and getenv in libc can't be changed to take a lock because it returns a pointer to the data (see rust#27970 for more discussion).

    Since version 4.20 chrono no longer uses localtime_r, instead using Rust code to query the timezone (from the TZ variable or via iana-time-zone as a fallback) and work with data from the system timezone database directly. The code for this was forked from the tz-rs crate by @​x-hgg-x. As such, chrono now respects the Rust lock when reading the TZ environment variable. In general, code should avoid modifying the environment.

    ... (truncated)

    Commits
    • 101ca7e Bump version to 0.4.30
    • eee59e3 Rewrite history sections for clarity and consistency
    • 7387fe7 Add history of chrono and time 0.1 to main documentation
    • 8509da4 Apply Clippy suggestions for duration module
    • 9d7fafe Remove mention of oldtime from documentation
    • 27ea7e9 Rename oldtime module to duration
    • 8f5becd Drop time 0.1 as optional dependency
    • f4aefc7 Clarify Timelike::num_seconds_from_midnight is a simple mapping
    • 1903778 Add NaiveDate::leap_year
    • 84334df Update readme
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • build(deps): bump actions/checkout from 3 to 4

    build(deps): bump actions/checkout from 3 to 4

    Bumps actions/checkout from 3 to 4.

    Release notes

    Sourced from actions/checkout's releases.

    v4.0.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3...v4.0.0

    v3.6.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3.5.3...v3.6.0

    v3.5.3

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3...v3.5.3

    v3.5.2

    What's Changed

    Full Changelog: https://github.com/actions/checkout/compare/v3.5.1...v3.5.2

    v3.5.1

    What's Changed

    New Contributors

    ... (truncated)

    Changelog

    Sourced from actions/checkout's changelog.

    Changelog

    v4.0.0

    v3.6.0

    v3.5.3

    v3.5.2

    v3.5.1

    v3.5.0

    v3.4.0

    v3.3.0

    v3.2.0

    v3.1.0

    v3.0.2

    v3.0.1

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 1
  • build(deps): bump clap from 4.4.2 to 4.4.4

    build(deps): bump clap from 4.4.2 to 4.4.4

    Bumps clap from 4.4.2 to 4.4.4.

    Release notes

    Sourced from clap's releases.

    v4.4.4

    [4.4.4] - 2023-09-18

    Internal

    • Update terminal_size to 0.3

    v4.4.3

    [4.4.3] - 2023-09-12

    Documentation

    • (derive) Clarify use of attributes within the tutorial
    • Split sections in the builder and derive tutorials into separate modules
    Changelog

    Sourced from clap's changelog.

    [4.4.4] - 2023-09-18

    Internal

    • Update terminal_size to 0.3

    [4.4.3] - 2023-09-12

    Documentation

    • (derive) Clarify use of attributes within the tutorial
    • Split sections in the builder and derive tutorials into separate modules
    Commits
    • e6e5396 chore: Release
    • acbb60c docs: Update changelog
    • f09d521 Merge pull request #5129 from cgwalters/widen-terminal-size
    • 84f99ff chore(builder): Bump terminal_size to 0.3
    • 7f8df27 Merge pull request #5124 from devinherron/master
    • 4dff873 fix(doc): Fix typo in 03_04_subcommands.md
    • e9668b3 chore: Release
    • bc4986e docs: Update changelog
    • 3d53641 Merge pull request #5122 from epage/docs
    • 32586c7 docs(tutorial): Split into separate modules per section
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • build(deps): bump chrono from 0.4.29 to 0.4.31

    build(deps): bump chrono from 0.4.29 to 0.4.31

    Bumps chrono from 0.4.29 to 0.4.31.

    Release notes

    Sourced from chrono's releases.

    0.4.31

    Another maintenance release. It was not a planned effort to improve our support for UNIX timestamps, yet most PRs seem related to this.

    Deprecations

    • Deprecate timestamp_nanos in favor of the non-panicking timestamp_nanos_opt (#1275)

    Additions

    • Add DateTime::<Utc>::from_timestamp (#1279, thanks @​demurgos)
    • Add TimeZone::timestamp_micros (#1285, thanks @​emikitas)
    • Add DateTime<Tz>::timestamp_nanos_opt and NaiveDateTime::timestamp_nanos_opt (#1275)
    • Add UNIX_EPOCH constants (#1291)

    Fixes

    • Format day of month in RFC 2822 without padding (#1272)
    • Don't allow strange leap seconds which are not on a minute boundary initialization methods (#1283) This makes many methods a little more strict:
      • NaiveTime::from_hms_milli
      • NaiveTime::from_hms_milli_opt
      • NaiveTime::from_hms_micro
      • NaiveTime::from_hms_micro_opt
      • NaiveTime::from_hms_nano
      • NaiveTime::from_hms_nano_opt
      • NaiveTime::from_num_seconds_from_midnight
      • NaiveTime::from_num_seconds_from_midnight_opt
      • NaiveDate::and_hms_milli
      • NaiveDate::and_hms_milli_opt
      • NaiveDate::and_hms_micro
      • NaiveDate::and_hms_micro_opt
      • NaiveDate::and_hms_nano
      • NaiveDate::and_hms_nano_opt
      • NaiveDateTime::from_timestamp
      • NaiveDateTime::from_timestamp_opt
      • TimeZone::timestamp
      • TimeZone::timestamp_opt
    • Fix underflow in NaiveDateTime::timestamp_nanos_opt (#1294, thanks @​crepererum)

    Documentation

    • Add more documentation about the RFC 2822 obsolete date format (#1267)

    Internal

    • Remove internal __doctest feature and doc_comment dependency (#1276)
    • CI: Bump actions/checkout from 3 to 4 (#1280)
    • Optimize NaiveDate::add_days for small values (#1214)
    • Upgrade pure-rust-locales to 0.7.0 (#1288, thanks @​jeremija wo did good improvements on pure-rust-locales)

    Thanks to all contributors on behalf of the chrono team, @​djc and @​pitdicker!

    0.4.30

    In this release, we have decided to swap out the chrono::Duration type (which has been a re-export of time 0.1 Duration type) with our own definition, which exposes a strict superset of the time::Duration API. This helps avoid warnings about the [CVE-2020-26235] and [RUSTSEC-2020-0071] advisories for downstream users and allows us to improve the Duration API going forward.

    ... (truncated)

    Commits
    • e730c6a Bump version to 0.4.31
    • 2afdde8 fix: underflow during datetime->nanos conversion
    • 46ad2c2 Add UNIX_EPOCH constants
    • 1df8db3 Add TimeZone::timestamp_micros
    • 861d4e1 Make TimeZone::timestamp_millis_opt use
    • 3c4846a Upgrade pure-rust-locales to 0.7.0
    • 6665804 Deny leap second if secs != 59 in from_num_seconds_from_midnight_opt
    • 61b7ffb Deny leap second if secs != 59 in from_hms_nano_opt
    • 202af6c Don't generate leap seconds that are not 60 in NaiveTime's Arbitrary impl
    • 60283ab Don't create strange leap seconds in tests
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • build(deps): bump clap_complete from 4.4.0 to 4.4.2

    build(deps): bump clap_complete from 4.4.0 to 4.4.2

    Bumps clap_complete from 4.4.0 to 4.4.2.

    Release notes

    Sourced from clap_complete's releases.

    v4.4.2

    [4.4.2] - 2023-08-31

    Performance

    • Improve build times by removing once_cell dependency

    v4.4.1

    [4.4.1] - 2023-08-28

    Features

    • Stabilize Command::styles
    Changelog

    Sourced from clap_complete's changelog.

    [4.4.2] - 2023-08-31

    Performance

    • Improve build times by removing once_cell dependency

    [4.4.1] - 2023-08-28

    Features

    • Stabilize Command::styles
    Commits
    • 2045528 chore: Release
    • 55d2230 docs: Update changelog
    • 492ee03 Merge pull request #5140 from epage/dyn
    • 017c258 fix(complete): Include positionals in subcommands
    • 82c93ce test(complete): Verify dynamic subcommand positional completion
    • c298f6a chore: Release
    • 463d6c5 docs: Update changelog
    • 3ac4404 Merge pull request #5025 from SUPERCILEX/resolve-alias-conflicts
    • a76789e fix: Make long subcommand flag inference consistent
    • c2b8ec3 fix: Resolve conflicting name inference if from aliases
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • crates.io

    crates.io

    Hey @ajaxm, I’d really like to publish this project with the name as-is on crates.io as am! I see that you already own that crate, but it doesn’t contain any code and hasn’t been updated in four years, so I was wondering if you could be so kind as to transfer the crate’s ownership to me or delete the original crate. Thanks :)

    opened by ryanccn 0
  • build(deps): bump serde_json from 1.0.105 to 1.0.107

    build(deps): bump serde_json from 1.0.105 to 1.0.107

    Bumps serde_json from 1.0.105 to 1.0.107.

    Release notes

    Sourced from serde_json's releases.

    v1.0.107

    • impl IntoDeserializer for &RawValue (#1071)

    v1.0.106

    Commits
    • b6e113f Release 1.0.107
    • 00626a0 Merge pull request #1073 from dtolnay/rawvalue
    • b9d296f IntoDeserializer for &RawValue
    • 4ea34a2 Merge pull request #1072 from dtolnay/rawvalue
    • fe30766 Support deserializing from &RawValue
    • 2c22077 Merge pull request #1062 from osiewicz/remove_build_rs
    • 04f7758 fixup! chore: Remove no_btreemap_get_key_value and no_btreemap_remove_entry.
    • 83bdc5f Omit return keyword in remove_entry
    • 89a2741 Revert "Remove limb_width32 and limb_width64 features"
    • 45f10ec Release 1.0.106
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
Owner
Ryan Cao
High school student and open source developer
Ryan Cao
A library that creates a terminal-like window with feature-packed drawing of text and easy input handling. MIRROR.

BearLibTerminal provides a pseudoterminal window with a grid of character cells and a simple yet powerful API for flexible textual output and uncompli

Tommy Ettinger 43 Oct 31, 2022
Beautiful, minimal, opinionated CLI prompts inspired by the Clack NPM package

Effortlessly build beautiful command-line apps with Rust ?? ✨ Beautiful, minimal, opinionated CLI prompts inspired by the @clack/prompts npm package.

Alexander Fadeev 7 Jul 23, 2023
Punic is a remote caching CLI built for Apple's .xcframework

Punic is a remote caching CLI built for Carthage that exclusively supports Apple's .xcframeworks.

Shred Labs 26 Nov 22, 2022
A CLI for extracting libraries from Apple's dyld shared cache file

dyld-shared-cache-extractor As of macOS Big Sur, instead of shipping the system libraries with macOS, Apple ships a generated cache of all built in dy

Keith Smiley 238 Jan 4, 2023
A beautiful, tiny traceback and logging library supporting #![no_std] rust.

breadcrumbs Breadcrumbs is a beautiful, tiny traceback and logging library for Rust that offers seamless integration with #![no_std], multi-threading

Michael 18 Nov 21, 2023
CLI app to display list of trending anime, music charts or recommend anime to watch or song to listen to.

Description Anitrendz is a cli app that uses data from the anitiop api to list the top anime and songs or recommend a random anime to watch or song to

Jimmy 9 Jun 11, 2022
glicol cli: cross-platform music live coding in terminal

glicol-cli What's this? It's a command line interface that you can use for music live coding with Glicol. It watches a file changes and then update th

Glicol 70 Apr 14, 2023
A cli utility for playing music mixes for programming & focus from musicforprogramming.net

mfp: music for programming A command-line utility for playing music mixes for programming & focus (from musicforprogramming.net), unlocking the flow s

Rohit Gupta 10 Jul 12, 2023
:large_orange_diamond: Build beautiful terminal tables with automatic content wrapping

Comfy-table Comfy-table tries to provide utility for building beautiful tables, while being easy to use. Features: Dynamic arrangement of content to a

Arne Beer 525 Jan 8, 2023
More beautiful HTML reports for llvm-cov/cargo-llvm-cov

?? llvm-cov-pretty More beautiful HTML reports for llvm-cov (cargo-llvm-cov specifically). Dark theme support (switches automatically based on your br

Dominik Nakamura 13 Jun 26, 2023
A Rust command that prettifies the ugly `cargo test` output into a beautiful one.

Cargo Pretty Test ✨ A Rust command-line tool that prettifies the ugly cargo test output into a beautiful output. This crate can be also used as a libr

Jose Celano 105 Oct 10, 2023
Make beautiful colored code listings in LaTeX with the power of TreeSitter.

What is this? This is a CLI tool that consumes TreeSitter's output and transforms it into LaTeX code that will produce syntax-colored code listing. If

Tomáš Lebeda 11 Sep 4, 2023
🦀️atos for linux by rust - A partial replacement for Apple's atos tool for converting addresses within a binary file to symbols.

atosl-rs ??️ atos for linux by rust - A partial replacement for Apple's atos tool for converting addresses within a binary file to symbols. tested on

everettjf 60 Dec 29, 2022
Apple dynamic HEIF wallpapers on GNU/Linux.

timewall Apple dynamic HEIF wallpapers on GNU/Linux. Features: Support for original HEIF/HEIC dynamic wallpaper files used in MacOS. Support for all s

Bazyli Cyran 15 Dec 15, 2022
The auto-managed -sys crate for Apple platforms using bindgen directly from build environment

apple-sys Apple platforms have a rather monotonous programming environment compared to other platforms. On several development machines, we will depen

Jeong, YunWon 34 Apr 17, 2023
Implemented reverse-engineered signature algorithm to successfully register with Apple's caching server.

View as English 项目描述 本项目通过逆向得到苹果缓存服务器的签名算法,并可以成功注册缓存服务。算法分为两种运行模式。 运行模式 直接运行(x64): 效率较高,但只支持64位CPU。已测试可运行在Windows/Linux/macOS上。 模拟器运行: 兼容性极高,支持所有CPU架构

null 6 Oct 27, 2023
A lightweight but incredibly powerful and feature-rich BitTorrent tracker. Supports UDP + HTTP(S) and a private tracker mode.

Torrust Tracker Project Description Torrust Tracker is a lightweight but incredibly powerful and feature-rich BitTorrent tracker made using Rust. Feat

Torrust 162 Dec 31, 2022
🖥 A feature rich terminal UI file transfer and explorer with support for SCP/SFTP/FTP/S3

?? A feature rich terminal UI file transfer and explorer with support for SCP/SFTP/FTP/S3

Christian Visintin 574 Jan 5, 2023
Firefox used to have this feature a while back (from Firefox 11 to 46) and it is so good, that I feel it needs revival.

3D WebPage Inspector By: Seanpm2001, Et; Al. Top README.md Read this article in a different language Sorted by: A-Z Sorting options unavailable ( af A

Sean P. Myrick V19.1.7.2 3 Nov 10, 2022