#atomic #cli #server #fetch #query #model #validate

app atomic-cli

CLI tool to create, store, query, validate and convert Atomic Data

22 releases (11 breaking)

new 0.23.4 Apr 7, 2021
0.23.2 Mar 30, 2021
0.18.0 Dec 26, 2020
0.17.1 Nov 23, 2020
Download history 46/week @ 2020-12-21 15/week @ 2020-12-28 34/week @ 2021-01-04 35/week @ 2021-01-11 22/week @ 2021-01-18 9/week @ 2021-01-25 2/week @ 2021-02-01 42/week @ 2021-02-08 76/week @ 2021-02-15 3/week @ 2021-03-01 18/week @ 2021-03-08 49/week @ 2021-03-22 45/week @ 2021-03-29 47/week @ 2021-04-05

103 downloads per month

MIT license

4.5K SLoC

atomic-cli (CLI)

crates.io [![Discord chat][https://img.shields.io/discord/723588174747533393.svg?logo=discord]][https://discord.gg/a72Rv2P] MIT licensed github

Status: Alpha. Prone to breaking changes. Changelog

A command-line application to create, read and interact with Atomic Data.

atomic-cli 0.23.2
Joep Meindertsma <joep@ontola.io>
Create, share, fetch and model Atomic Data!

    atomic-cli [SUBCOMMAND]

    -h, --help       Prints help information
    -V, --version    Prints version information

    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.
    tpf        Finds Atoms using Triple Pattern Fragments.

Visit https://atomicdata.dev for more info


Install Cargo to build from source.

Install using crates.io:

cargo install atomic-cli

Or build from this repo:

git clone git@github.com:joepio/atomic.git
cd atomic/cli
# Install atomic to path
cargo install --path ./


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. It will read the ~/.config/atomic/config.toml file, and create one using some prompts if it is not yet present.


  • 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.
  • set, remove, destroy and edit commands that send commits.
  • A new command for instantiating Atomic Classes


Atomic creates a ~/.config/atomic folder, which contains a mapping.amp and a store.ad3. This folder is also used by atomic-server.


The Mapping refers to your user specific set of shortname-URL combinations. This Mapping lives as a simple text file in ./user_mappping.amp.


What this should be able to do

This serves as a UX story that guides the development of this CLI.

# Add a mapping, and store the Atomic Class locally
$ atomic map person https://example.com/person

# Create a profile for yourself
$ atomic new person
# By default, atomic creates IFPS resources for your created data, which are publicly stored
Created at: ipfs:Qwhp2fh3o8hfo8w7fhwo77w38ohw3o78fhw3ho78w3o837ho8fwh8o7fh37ho
# Add a mapping for your newly created resource, so you can use that shortname instead of the long IPFS url.
bookmark (optional): shortname

# Instead of link to an Atomic Server where you can upload your stuff
# If you don't, your data exists locally and gets published to IPFS
$ atomic setup
# install ontologies and add their shortnames to bookmarks
$ atomic install https://atomicdata.dev/ontologies/meetings
# when no URL is given, use the Ontola repo's ontologies
$ atomic install meetings


~395K SLoC