Skip to content

πŸš€ 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.

License

Notifications You must be signed in to change notification settings

montymi/sesh-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Creator Contributors Forks Stargazers Issues GPL License

πŸ“Ÿ sesh-cli

CLI release of a secure brainstorming assistant and productivity manager.

πŸš€ Explore Demo πŸ› Report Bug ✨ Request Feature

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 Ollama OpenAI LangChain

(back to top)

Installation

Prerequisites

For running the models locally, ensure you have ollama installed and running on your device. An error message reminding you to open ollama will appear if you forget. Ensure you have git, python (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:

git --version && python --version && pip --version

Download and navigate into the repository:

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:

python -m venv venv
source venv/bin/activate

On Windows:

python -m venv venv
venv/Scripts/activate

Next install the dependencies for the project defined in requirements.txt. On all OS run:

pip install -r requirements.txt

(back to top)

Usage

Getting Started

Navigate into the main folder for the source code:

cd src

Run the CLI using the following command:

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 for a full list of issues and proposed features.

(back to top)

Contributing

  1. Fork the Project
  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

(back to top)

License

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


Contact

Michael Montanaro

LinkedIn GitHub


Acknowledgments

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

(back to top)

About

πŸš€ 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.

Topics

Resources

License

Stars

Watchers

Forks

Languages