Atomic Quickstart
Atomic VCS + Atomic Storage
From identity to hosted project in five steps
Create an Ed25519 identity, register with Atomic Storage, create an organization workspace, initialize a project, and push your first change.
Getting startedโ
1. Install the Atomic CLI
Install Atomic locally. If you are targeting Atomic Storage, use the CLI build that matches your deployed server version.
curl -sSf https://atomic.storage/install.sh | sh
atomic --version
For development builds, install from source:
git clone https://github.com/atomicdotdev/atomic.git
cd atomic
cargo install --path atomic-cli
2. Create and register your identity
Atomic uses Ed25519 identities for authentication and signing. For team work, use a developer identity tied to the organization's email domain. Registration creates your personal organization on the server and writes the server URL and default organization to your global Atomic config.
atomic identity new alice-acme --email alice@acme.com --set-default
atomic identity register https://atomic.storage
atomic org show
3. Create an organization, workspace, and project
Organizations contain members and teams. Workspaces group projects. Projects map to hosted Atomic repositories.
atomic org create acme --email dev@acme.com
atomic org switch acme
atomic workspace create platform --visibility private --org acme
atomic project create api --workspace platform --kind rust --org acme
Public/private access is enforced at both workspace and project boundaries:
| Workspace | Project | Non-member can read? |
|---|---|---|
| public | public | yes |
| public | private | no |
| private | public | no |
| private | private | no |
4. Add teammates and teams
Register teammates with organization-domain identities, add them to the organization by verified email, then organize them into teams. Team slugs are scoped to the organization subdomain, so
delta/engineering and atomic/engineering are different teams.
# Bob first registers an org-domain identity on his machine:
# atomic identity new bob-acme --email bob@acme.com --set-default
# atomic identity register https://atomic.storage
# Alice, using her acme admin identity, adds Bob by org-domain email:
atomic org member add bob@acme.com --role member --org acme
atomic team create engineering \
--description "Engineering team" \
--visibility visible \
--org acme
atomic team member add engineering bob@acme.com --role maintainer --org acme
atomic team member list engineering --org acme
5. Initialize a local repo and push
Link a local repository to the hosted project. project init creates the remote
project if needed and configures the repository remote URL.
mkdir api && cd api
atomic init --kind rust
echo 'fn main() { println!("hello atomic"); }' > src/main.rs
atomic add src/main.rs
atomic record -m "Initial record"
atomic project init api --workspace platform --kind rust --org acme
atomic push