An open API service indexing awesome lists of open source software.

https://github.com/montymi/sesh-cli

πŸš€ A CLI tool that uses AI to help developers organize thoughts and streamline workflows. πŸ”’ Secure and fun, it integrates smoothly into your setup, managing ideas and projects efficiently with Retrieval-Augmented Generation (RAG) and LLMs. πŸ’‘ Boost your productivity with this local AI assistant.
https://github.com/montymi/sesh-cli

ai brainstorming cli dev-tools llm productivity rag secure-data-handling workflow

Last synced: about 1 month ago
JSON representation

πŸš€ A CLI tool that uses AI to help developers organize thoughts and streamline workflows. πŸ”’ Secure and fun, it integrates smoothly into your setup, managing ideas and projects efficiently with Retrieval-Augmented Generation (RAG) and LLMs. πŸ’‘ Boost your productivity with this local AI assistant.

Awesome Lists containing this project

README

          

[![Creator][creatorLogo]][creatorProfile]
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![GPL License][license-shield]][license-url]

# πŸ“Ÿ sesh-cli

CLI release of a secure brainstorming assistant and productivity manager.

[![πŸš€ Explore Demo][demoLogo]][demoLogo-url]
[![πŸ› Report Bug][bugLogo]][bugLogo-url]
[![✨ Request Feature][featureLogo]][featureLogo-url]

Table of Contents



  1. About The Project



  2. Installation



  3. Usage



  4. Structure

  5. Tasks

  6. Contributing

  7. License

  8. Contact

  9. Acknowledgments


## About The Project

This CLI tool is designed to help developers organize thoughts and streamline workflows with the power of AIβ€”no fuss, just results. It combines security and fun, offering a lightweight brainstorming assistant that integrates smoothly into your setup. With Retrieval-Augmented Generation (RAG) and LLMs, you can easily manage ideas, projects, and sensitive data while staying productive. It’s a simple, secure way to boost your workflow with a local AI assistant, making development more efficient and enjoyable.

### Built With

[![Python][pythonLogo]][pythonLogo-url]
[![Ollama][ollamaLogo]][ollamaLogo-url]
[![OpenAI][openaiLogo]][openaiLogo-url]
[![LangChain][langchainLogo]][langchainLogo-url]

(back to top)

## Installation

### Prerequisites

For running the models locally, ensure you have [ollama][ollamaLogo-url] installed and running on your device. An error message reminding you to open ollama will appear if you forget.
Ensure you have [git](https://git-scm.com/), [python][pythonLogo-url] (and presumably pip too). Best bet, download the official release for your platform (Operating System) from the provided homepages and their download section. On Windows, your best bet is to use the resulting Git Bash application that will become available after installing git.

Comfirm prerequisites by running the following command:
```bash
git --version && python --version && pip --version
```

Download and navigate into the repository:
```bash
git clone https://github.com/montymi/sesh-cli/ && cd sesh-cli
```

### Setup

It is highly recommended to run this in an isolated installation with virtual environments.

On Unix, Linux, BSD, macOS, and Cygwin:
```bash
python -m venv venv
source venv/bin/activate
```
On Windows:
```bash
python -m venv venv
venv/Scripts/activate
```

Next install the dependencies for the project defined in `requirements.txt`. On all OS run:
```bash
pip install -r requirements.txt
```

(back to top)

## Usage

### Getting Started

Navigate into the main folder for the source code:
```bash
cd src
```

Run the CLI using the following command:
```bash
python main.py
```

The script will:
- Display a list of all locally installed models within Ollama.
- Prompt you to select a model to use.

After selecting a model, a list of saved conversations will appear and you can:
- Resume a previous conversation for the selected model.
- Test conversation responses across different models.
- Start with a fresh conversation

### Advanced

The actual *guide* part is still a work in progress for the advanced features, but will be released soon.

#### Vector Database Management

- Seamlessly manage vector databases to enhance Retrieval-Augmented Generation (RAG) efficiency.
- Leverage optimized indexing for fast and accurate retrieval of relevant information.
- Add, update, and remove data vectors for adaptive knowledge storage.

#### Switching to OpenAI API

- Effortlessly switch between locally installed models and the OpenAI API.
- Configure API keys and settings directly through the CLI for quick integration.
- Utilize OpenAI's advanced models for complex problem-solving and contextual tasks.

#### Model Habit Management

- Customize model behavior by defining "habits" for interaction styles, response formats, or tone preferences.
- Save and load habit configurations to ensure consistency across sessions.

#### Notes Creation and Management

- Create, edit, and organize notes within isolated research bubbles.
- Tag notes for quick reference and improved discoverability.

#### Plugin Development and Integration

- Build custom plugins to extend functionality and meet specific workflow needs.
- Add plugins dynamically without interrupting active sessions.
- Use the CLI to manage, enable, or disable plugins for seamless customization.

(back to top)

## Structure

```
.gitignore
config.ini
config.ini.example
docs/
β”œβ”€β”€ designs/
β”‚ β”œβ”€β”€ models.wsd
β”‚ └── tiers.wsd
library/
β”œβ”€β”€ habits.json
β”œβ”€β”€ resources/
β”‚ β”œβ”€β”€ conversations/
β”‚ β”œβ”€β”€ journal/
β”‚ β”œβ”€β”€ plugins/
β”‚ └── vectors/
README.md
requirements.txt
sesh.log
src/
β”œβ”€β”€ controllers/
β”‚ β”œβ”€β”€ appcontroller.py
β”‚ β”œβ”€β”€ clerkcontroller.py
β”‚ β”œβ”€β”€ libcontroller.py
β”‚ β”œβ”€β”€ servicecontroller.py
β”‚ └── usercontroller.py
β”œβ”€β”€ main.py
β”œβ”€β”€ models/
β”‚ β”œβ”€β”€ __init__.py
β”‚ β”œβ”€β”€ app.py
β”‚ β”œβ”€β”€ clerk.py
β”‚ β”œβ”€β”€ commands.py
β”‚ β”œβ”€β”€ DBLibrarian.py
β”‚ β”œβ”€β”€ habits.py
β”‚ β”œβ”€β”€ importers/
β”‚ β”‚ β”œβ”€β”€ __init__.py
β”‚ β”‚ β”œβ”€β”€ CSVImporter.py
β”‚ β”‚ β”œβ”€β”€ DirectoryImporter.py
β”‚ β”‚ β”œβ”€β”€ DocxImporter.py
β”‚ β”‚ β”œβ”€β”€ ImageImporter.py
β”‚ β”‚ β”œβ”€β”€ importer.py
β”‚ β”‚ β”œβ”€β”€ PDFImporter.py
β”‚ β”‚ β”œβ”€β”€ PythonImporter.py
β”‚ β”‚ β”œβ”€β”€ RecursiveDirectoryImporter.py
β”‚ β”‚ β”œβ”€β”€ TextImporter.py
β”‚ β”‚ └── URLImporter.py
β”‚ β”œβ”€β”€ journal.py
β”‚ β”œβ”€β”€ librarian.py
β”‚ β”œβ”€β”€ managers.py
β”‚ └── user.py
└── views/
└── cli.py
sandbox/
β”œβ”€β”€ __init__.py
β”œβ”€β”€ chain.py
β”œβ”€β”€ chat-app.py
β”œβ”€β”€ clerk.py
β”œβ”€β”€ colored-input.py
β”œβ”€β”€ dict.py
β”œβ”€β”€ input.py
β”œβ”€β”€ log.txt
β”œβ”€β”€ testing.py
β”œβ”€β”€ translator.py
└── tts.py
```

(back to top)

## Tasks

- [ ] Fix reference error for `resources/`
- [ ] Add CI/CD testing for deployment to `main`
- [ ] package and post to PIP

See the [open issues](https://github.com/montymi/sesh-cli/issues) for a full list of issues and proposed features.

(back to top)

## Contributing

1. [Fork the Project](https://docs.github.com/en/get-started/quickstart/fork-a-repo)
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. [Open a Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)

(back to top)

## License

Distributed under the GPL-3.0 License. See `LICENSE.txt` for more information.


## Contact

Michael Montanaro

[![LinkedIn][linkedin-shield]][linkedin-url]
[![GitHub][github-shield]][github-url]


## Acknowledgments

Use this space to list any resources used or that may be helpful in understanding the project

* [Choose an Open Source License](https://choosealicense.com)
* [GitHub Emoji Cheat Sheet](https://www.webpagefx.com/tools/emoji-cheat-sheet)
* [Malven's Flexbox Cheatsheet](https://flexbox.malven.co/)
* [Malven's Grid Cheatsheet](https://grid.malven.co/)
* [GitHub Pages](https://pages.github.com)
* [Font Awesome](https://fontawesome.com)

(back to top)

[openaiLogo]: https://img.shields.io/badge/Whisper-black?style=for-the-badge&logo=openai&logoColor=natural
[openaiLogo-url]: https://openai.com/
[langchainLogo-url]: https://langchain.com/
[langchainLogo]: https://img.shields.io/badge/LangChain-black?style=for-the-badge&logo=langchain&logoColor=natural
[ollamaLogo]: https://img.shields.io/badge/Ollama-black?style=for-the-badge&logo=ollama
[ollamaLogo-url]: https://ollama.com/
[demoLogo]: https://img.shields.io/badge/πŸš€%20Explore%20Demo-grey?style=for-the-badge
[demoLogo-url]: https://github.com/montymi/sesh-cli
[bugLogo]: https://img.shields.io/badge/πŸ›%20Report%20Bug-grey?style=for-the-badge
[bugLogo-url]: https://github.com/montymi/sesh-cli/issues
[featureLogo]: https://img.shields.io/badge/✨%20Request%20Feature-grey?style=for-the-badge
[featureLogo-url]: https://github.com/montymi/sesh-cli/issues
[pythonLogo]: https://img.shields.io/badge/Python-black?style=for-the-badge&logo=python&logoColor=natural
[pythonLogo-url]: https://python.org/
[markdownLogo]: https://img.shields.io/badge/Markdown-black?style=for-the-badge&logo=markdown&logoColor=natural
[markdownLogo-url]: https://daringfireball.net/projects/markdown/
[htmlLogo]: https://img.shields.io/badge/HTML5-black?style=for-the-badge&logo=html5&logoColor=natural
[htmlLogo-url]: https://html.spec.whatwg.org/
[creatorLogo]: https://img.shields.io/badge/-Created%20by%20montymi-maroon.svg?style=for-the-badge
[creatorProfile]: https://montymi.com/
[contributors-shield]: https://img.shields.io/github/contributors/montymi/sesh-cli?style=for-the-badge
[contributors-url]: https://github.com/montymi/sesh-cli/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/montymi/sesh-cli?style=for-the-badge
[forks-url]: https://github.com/montymi/sesh-cli/network/members
[stars-shield]: https://img.shields.io/github/stars/montymi/sesh-cli?style=for-the-badge
[stars-url]: https://github.com/montymi/sesh-cli/stargazers
[issues-shield]: https://img.shields.io/github/issues/montymi/sesh-cli?style=for-the-badge
[issues-url]: https://github.com/montymi/sesh-cli/issues
[license-shield]: https://img.shields.io/github/license/montymi/sesh-cli?style=for-the-badge
[license-url]: https://github.com/montymi/sesh-cli/blob/main/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin
[linkedin-url]: https://linkedin.com/in/michael-montanaro
[github-shield]: https://img.shields.io/badge/-GitHub-black.svg?style=for-the-badge&logo=github
[github-url]: https://github.com/montymi
[Next.js]: https://img.shields.io/badge/next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white
[Next-url]: https://nextjs.org/
[React.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB
[React-url]: https://reactjs.org/
[Vue.js]: https://img.shields.io/badge/Vue.js-35495E?style=for-the-badge&logo=vuedotjs&logoColor=4FC08D
[Vue-url]: https://vuejs.org/
[Angular.io]: https://img.shields.io/badge/Angular-DD0031?style=for-the-badge&logo=angular&logoColor=white
[Angular-url]: https://angular.io/
[Svelte.dev]: https://img.shields.io/badge/Svelte-4A4A55?style=for-the-badge&logo=svelte&logoColor=FF3E00
[Svelte-url]: https://svelte.dev/
[Laravel.com]: https://img.shields.io/badge/Laravel-FF2D20?style=for-the-badge&logo=laravel&logoColor=white
[Laravel-url]: https://laravel.com
[Bootstrap.com]: https://img.shields.io/badge/Bootstrap-563D7C?style=for-the-badge&logo=bootstrap&logoColor=white
[Bootstrap-url]: https://getbootstrap.com
[JQuery.com]: https://img.shields.io/badge/jQuery-0769AD?style=for-the-badge&logo=jquery&logoColor=white
[JQuery-url]: https://jquery.com