# Sol - a command line and interactive shell tool for Solid

**URL:** <https://forum.solidproject.org/t/sol-a-command-line-and-interactive-shell-tool-for-solid/1005>\
**Category:** Solid App Development FAQs\
**Created:** [January 6, 2019, 7:45pm UTC](https://forum.solidproject.org/t/sol-a-command-line-and-interactive-shell-tool-for-solid/1005 "2019-01-06T19:45:25Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![jeffz](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/jeffz/32/600_2.png) [@jeffz](https://forum.solidproject.org/u/jeffz)\
**Post date:** [January 6, 2019, 7:45pm UTC](https://forum.solidproject.org/t/sol-a-command-line-and-interactive-shell-tool-for-solid/1005/1 "2019-01-06T19:45:25Z")

</div>

I have created solid-shell-client, a console-based version of solid-auth-client supporting login, persistent sessions, and fetch for the console with the same API as solid-auth-client but based on solid-cli.

I have also created **[sol](https://github.com/jeff-zucker/solid-shell)**, a command-line and interactive shell illustrating some of the capabilities of the console client. [Edit : new link to the solid-shell release which is sol but separated from its original home inside solid-file-client]

From the command line, you can do things like this:

```
sol upload /public/mysite file1 file2 folderX/*

```

To use it in the interactive shell

```
sol shell

```

If sol is found to be useful, I’m thinking it should be more of a group project than solely belonging to me. Lots of things to be done - internationalization, asci-tables, plugin API for including other apps, etc. etc.

I would also very much value suggestions on names and locations. It’s all bundled with solid-file-client for now, but sol and solid-shell-client probably deserve distros of their own.

---

<div class="post-metadata">

**Author:** ![aveltens](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/aveltens/32/3987_2.png) [@aveltens](https://forum.solidproject.org/u/aveltens)\
**Post date:** [January 9, 2019, 6:54pm UTC](https://forum.solidproject.org/t/sol-a-command-line-and-interactive-shell-tool-for-solid/1005/2 "2019-01-09T18:54:57Z")

</div>

Nice tool, which is indeed useful.

One can easily run it with `npx` as well, to try it out without installing, e.g.:

`npx solid-file-client read /profile/card`

Just one thing: I am not really comfortable with storing my password in a json file. Another option would be nice.

---

<div class="post-metadata">

**Author:** ![aveltens](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/aveltens/32/3987_2.png) [@aveltens](https://forum.solidproject.org/u/aveltens)\
**Post date:** [January 9, 2019, 6:57pm UTC](https://forum.solidproject.org/t/sol-a-command-line-and-interactive-shell-tool-for-solid/1005/3 "2019-01-09T18:57:29Z")

</div>

> [@aveltens](#):
>
> I am not really comfortable with storing my password in a json file. Another option would be nice.

You could for example have a `sol login` command which queries the credentials from the user and then just stores the token to a file, but not the password.

---

<div class="post-metadata">

**Author:** ![jeffz](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/jeffz/32/600_2.png) [@jeffz](https://forum.solidproject.org/u/jeffz)\
**Post date:** [January 9, 2019, 7:08pm UTC](https://forum.solidproject.org/t/sol-a-command-line-and-interactive-shell-tool-for-solid/1005/4 "2019-01-09T19:08:52Z")

</div>

Good ideas, thanks! I am in the process of moving sol to its own repo and disentangling it from solid-file-client. And thanks for reminding me about the npx thing. I specifically put sol in as both bin and script in the package.json so it could work with npx but then forgot to document that. 🙂

---

<div class="post-metadata">

**Author:** ![jeffz](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/jeffz/32/600_2.png) [@jeffz](https://forum.solidproject.org/u/jeffz)\
**Post date:** [January 14, 2019, 7:37pm UTC](https://forum.solidproject.org/t/sol-a-command-line-and-interactive-shell-tool-for-solid/1005/5 "2019-01-14T19:37:26Z")

</div>

I’ve implemented your suggestion - if no password is specified, sol will prompt you for one and hide your typing with asterisks to block people from reading over your shoulder.

---

<div class="post-metadata">

**Author:** ![jeffz](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/jeffz/32/600_2.png) [@jeffz](https://forum.solidproject.org/u/jeffz)\
**Post date:** [January 14, 2019, 7:40pm UTC](https://forum.solidproject.org/t/sol-a-command-line-and-interactive-shell-tool-for-solid/1005/6 "2019-01-14T19:40:16Z")

</div>

@aveltens yes, thanks, the npx trick is now documented in the README. And the command is

```auto
   npx sol read /profile/card 

```

---

<div class="post-metadata">

**Author:** ![rodant](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/rodant/32/1980_2.png) [@rodant](https://forum.solidproject.org/u/rodant)\
**Post date:** [February 18, 2019, 4:28pm UTC](https://forum.solidproject.org/t/sol-a-command-line-and-interactive-shell-tool-for-solid/1005/7 "2019-02-18T16:28:28Z")

</div>

Hello,

I just wanted to try out the shell tool and I installed it globally. I did

`npm install -g sol`

and I got as response,

```
+ sol@0.3.0
updated 1 package in 0.368s.

```

But when I call sol, or npx sol it is not found. I’m using node 11.6.0 over nvm. I already installed separately the solid-auth.client and also solid-file-client.

Finally I tried installing locally with similar results, the sol shell script is somehow missing. Do you have any hints?

---

<div class="post-metadata">

**Author:** ![jeffz](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/jeffz/32/600_2.png) [@jeffz](https://forum.solidproject.org/u/jeffz)\
**Post date:** [February 18, 2019, 4:42pm UTC](https://forum.solidproject.org/t/sol-a-command-line-and-interactive-shell-tool-for-solid/1005/8 "2019-02-18T16:42:14Z")

</div>

Sorry for the confusion soll is the name of the command but to install it’s npm install solid - shell

---

<div class="post-metadata">

**Author:** ![rodant](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/rodant/32/1980_2.png) [@rodant](https://forum.solidproject.org/u/rodant)\
**Post date:** [February 18, 2019, 4:56pm UTC](https://forum.solidproject.org/t/sol-a-command-line-and-interactive-shell-tool-for-solid/1005/9 "2019-02-18T16:56:25Z")

</div>

Thanks, now I have it. Maybe the doc should be updated.
