# `atomic-cli` [![crates.io](https://img.shields.io/crates/v/atomic-cli)](https://crates.io/crates/atomic-cli) [![Discord chat](https://img.shields.io/discord/723588174747533393.svg?logo=discord)](https://discord.gg/a72Rv2P) [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE) [![github](https://img.shields.io/github/stars/atomicdata-dev/atomic-server?style=social)](https://github.com/joepio/aget_basetomic) _Status: Beta. [Breaking changes](../CHANGELOG.md) are expected until 1.0._ **A command-line application to create, read and interact with Atomic Data.** Designed and tested to work with [atomic-server](https://crates.io/crates/atomic-server/). ``` atomic-cli 0.23.2 Joep Meindertsma Create, share, fetch and model Atomic Data! USAGE: atomic-cli [SUBCOMMAND] FLAGS: -h, --help Prints help information -V, --version Prints version information SUBCOMMANDS: destroy Permanently removes a Resource. edit Edit a single Atom from a Resource using your text editor. get Get a Resource or Value by using Atomic Paths. help Prints this message or the help of the given subcommand(s) list List all bookmarks new Create a Resource remove Remove a single Atom from a Resource. set Update a single Atom. Creates both the Resource if they don't exist. Overwrites existing. Visit https://atomicdata.dev for more info ``` ## Installation You can install `atomic-cli: in multiple ways: ### Using [Cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) ```sh cargo install atomic-cli ``` ### Build from source ```sh git clone git@github.com:atomicdata-dev/atomic-server.git cd atomic/cli # Install atomic to path cargo install --path ./ ``` ## Usage Run `atomic-cli command --help` for mor information about specific commands. The write commands (`set`, `remove`, `edit`, `destroy`) require some authentication config, which needs to match with the target [atomic-server](https://crates.io/crates/atomic-server). It will read the `~/.config/atomic/config.toml` file, and create one using some prompts if it is not yet present. ## Features - A `list` command for showing local bookmarks (mappings) - A `get` command for finding resources and parts of data using Atomic Paths with various serialization options (JSON, JSON-AD, JSON-LD, Turtle, N-Triples, Pretty). Also supports [path traversal](https://docs.atomicdata.dev/core/paths.html). - `set`, `remove`, `destroy` and `edit` commands that send commits. - A `new` command for instantiating [Atomic Classes](https://docs.atomicdata.dev/schema/classes.html) ## Config Atomic creates a `~/.config/atomic` folder, which contains a `mapping.amp` and a `db`. This folder is also used by `atomic-server`. ## Mapping The Mapping refers to your user specific set of shortname-URL combinations. This Mapping lives as a simple text file in `./user_mappping.amp`. ``` person=https://atomicdata.dev/classes/Person ```