Skip to content

About

πŸ› οΈ ASIMOV Command-Line Interface (CLI).

Topics

Resources

Contributing

Security policy

Stars

27 stars

Watchers

2 watching

Forks

Latest commit

Β 

History

398 Commits

Folders and files

Repository files navigation

ASIMOV Command-Line Interface (CLI)

License Compatibility Package on Crates.io Documentation

Tip

🚧 We are building in public. This is presently under heavy construction.

✨ Features

  • Cuts red tape: 100% free and unencumbered public domain software.

πŸ› οΈ Prerequisites

  • Rust 1.97.1+ (2024 edition)

⬇️ Installation

Installation from GitHub

Installation via Cargo Binstall

cargo binstall -y asimov-cli

Installation via Cargo

cargo install asimov-cli --locked

Installation using a Package Manager

Homebrew

Firstly, register this tap in your local Homebrew installation with:

brew tap asimov-platform/tap

Now you can install ASIMOV CLI with:

brew install asimov-cli
Scoop

First things first, you need to add our custom Scoop bucket:

scoop bucket add asimov-platform https://github.com/asimov-platform/scoop-bucket

Now, installing ASIMOV CLI is as easy as running:

scoop install asimov-platform/asimov-cli
Nix Flakes

Nix flakes is an experimental feature that has to be enabled before going any further:

mkdir -p ~/.config/nix && echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf

Now you can register the flake using:

nix registry add asimov-cli github:asimov-platform/nix-flake

And then install ASIMOV CLI with:

nix profile install asimov-cli#default --no-write-lock-file
Flatpak

First add the ASIMOV Platform Flatpak remote:

flatpak remote-add --if-not-exists --user asimov-cli --no-gpg-verify https://asimov-platform.github.io/flatpak

Then install ASIMOV CLI with:

flatpak install asimov-cli so.asimov.cli

Now you can run it like this:

flatpak run so.asimov.cli --help

You may want to create an alias for it:

alias asimov="flatpak run so.asimov.cli"

πŸ‘‰ Examples

Show help, including all available commands:

asimov help

Tip

Add one or more -v flags to increase the verbosity level.

Fetch Data

Fetch Data

# Fetch data from a URL, automatically choosing from installed modules
asimov fetch https://example.com/

# To fetch with a specific module use `-M` or `--module`
asimov fetch -M http https://example.com/

# Fetch multiple URLs
asimov fetch https://asimov.sh/ https://asimov.blog/
Import Data From a URL

Import Data From a URL

If you have the ASIMOV Bright Data module installed and configured, you should be able to fetch various social platform resources:

# Import data from a URL, automatically choosing from installed modules
asimov import https://x.com/asimov_platform

# Import using the specific module
asimov import -M brightdata https://x.com/asimov_platform
External Commands

External Commands

The CLI automatically discovers and runs external commands starting with asimov-. If you installed using a package manager you should have access to ASIMOV Module CLI for managing installed modules:

# If you have asimov-module-cli installed
asimov module [arguments]

asimov module install http

# Get help for external commands
asimov help module

πŸ“š Reference

Command-Line Interface

$ asimov

asimov module

$ asimov module --help
asimov module install
$ asimov module install --help

asimov proxy

$ asimov proxy --help
asimov proxy serve
$ asimov proxy serve --help
asimov proxy url
$ asimov proxy url --help
asimov proxy host
$ asimov proxy host --help
asimov proxy port
$ asimov proxy port --help
asimov proxy models
$ asimov proxy models --help
asimov proxy config
$ asimov proxy config --help
asimov proxy install
$ asimov proxy install --help

asimov source

$ asimov source --help
asimov source fetch
$ asimov source fetch --help
asimov source list
$ asimov source list --help
asimov source read
$ asimov source read --help
asimov source snap
$ asimov source snap --help

βš™οΈ Configuration

Telemetry

Telemetry

The ASIMOV CLI binaries published in GitHub releases come with opt-out telemetry. Builds from source, such as cargo install asimov-cli, don't send anything.

Opting Out

Any one of these disables telemetry:

# Permanently, for the current user:
asimov configure telemetry disable

# Per invocation or per shell, using an environment variable:
export ASIMOV_TELEMETRY=0   # or `false`

# By building the CLI yourself, without the `telemetry` feature:
cargo install asimov-cli --locked --no-default-features --features module,proxy,source

Disabling telemetry also discards any events that haven't been sent yet. To turn it back on, run asimov configure telemetry enable.

What is collected

Each command you run records when it started and finished. Each event contains:

  • A random installation ID (~/.asimov/.telemetry/id), as an identifier
  • The command that was run (e.g., source fetch), without its arguments
  • The names of the modules involved
  • The exit code and duration
  • The CLI version, operating system, and CPU architecture
  • Whether the CLI was invoked by a coding agent, and which one

URLs, arguments, file paths, command output, and error messages are never collected.

Events are stored locally in ~/.asimov/.telemetry/ and periodically sent to Statsig in the background.

The events are defined in the asimov-telemetry crate.

πŸ‘¨β€πŸ’» Development

git clone https://github.com/asimov-platform/asimov-cli.git

Share on X Share on Reddit Share on Hacker News Share on Facebook Share on LinkedIn

About

πŸ› οΈ ASIMOV Command-Line Interface (CLI).

Topics

Resources

Contributing

Security policy

Stars

27 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages