Metadata-Version: 2.1
Name: hal-cli
Version: 0.1.0
Summary: HAL manages your machine learning research environment in AWS
Home-page: https://github.com/harrisonpim/hal
License: UNKNOWN
Keywords: machine-learning, aws
Author: Harrison Pim
Author-email: harrison.stroma@gmail.com
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Classifier: License :: OSI Approved :: MIT License
Requires-Dist: pandas==0.23.4
Requires-Dist: halo==0.0.26
Requires-Dist: paramiko==2.6.0
Requires-Dist: boto3==1.9.198
Requires-Dist: typer==0.2.1
Requires-Dist: mkdocs-material==5.2.0 ; extra == "doc"
Requires-Dist: pytest==5.4.2 ; extra == "test"
Requires-Dist: black==19.10b0 ; extra == "test"
Requires-Dist: flake8==3.8.1 ; extra == "test"
Provides-Extra: doc
Provides-Extra: test

# HAL 🤖

🚧 HAL IS STILL UNDER CONSTRUCTION - PLEASE DON'T MAKE ANY SUDDEN MOVES 🚧

**HAL manages your machine learning research environment in AWS**

Using HAL, you can dynamically provision your perfect machine in AWS - small instances for tinkering with code all the way up to massive GPU instances for training deep learning models. Instance creation and termination is fast, so mode switching is relatively painless, and the costs are kept low by automatically calculating spot instance bids.

When they're created, instances attach themselves to your own persistent, floating EBS volume (defined in terraform), where you can store data, notebooks, git repos, etc.

Users can access instances via ssh, or through a tunnelled jupyterlab session.

HAL is loosely based on fast.ai's [fastEC2](https://github.com/fastai/fastec2).

## Installation 🚨 NOT YET lol 🚨

I'm almost at the point where you can run

```
pip install hal-cli
```

## Usage

### Create a new instance

```
hal start p2.xlarge
```

replacing `p2.xlarge` with the instance you want.

See the full list of instance types in your region [here](https://aws.amazon.com/ec2/spot/pricing/).

### Describe your running instances

```
hal describe
```

### Move files between your local machine and the remote instance

```
hal put \
  --local-path /path/to/file/to/send \
  --remote-path /path/on/instance
```

```
hal put \
  --local-path /path/to/save/at \
  --remote-path /path/on/instance
```

### Shut down your instance

```
hal stop
```

