Metadata-Version: 2.4
Name: sequence-llm
Version: 0.2.0
Summary: A sequence-based LLM orchestration framework
Author: Ananay
License-Expression: AGPL-3.0-or-later
Project-URL: Homepage, https://github.com/Ananay28425/Sequence-LLM
Project-URL: Repository, https://github.com/Ananay28425/Sequence-LLM
Project-URL: Issues, https://github.com/Ananay28425/Sequence-LLM/issues
Keywords: llm,orchestration,sequence,cli,llama,llama-cpp,local-llm
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Environment :: Console
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyyaml>=6.0
Requires-Dist: httpx>=0.24.0
Requires-Dist: typer[all]>=0.7.0
Requires-Dist: rich>=13.0.0
Requires-Dist: psutil>=5.9.0
Requires-Dist: openai>=1.0.0
Requires-Dist: python-dotenv>=1.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: black>=23.0; extra == "dev"
Requires-Dist: flake8>=6.0; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Requires-Dist: isort>=5.12; extra == "dev"
Dynamic: license-file

# Sequence-LLM

Sequence-LLM is a terminal-first CLI for running local LLMs through `llama-server` (llama.cpp) with profile-based model switching and automatic server lifecycle management.

It is designed for developers who run multiple local models and want a simple, reproducible workflow without writing shell scripts.

Cross-platform: Windows, Linux, macOS.

## Why Sequence-LLM

Running local models often involves:

- Manually starting and stopping servers
- Remembering model paths and ports
- Managing multiple configurations
- Writing ad-hoc scripts to switch models

Sequence-LLM solves this by providing:

- Named model profiles
- Automatic start and shutdown of servers
- Interactive chat interface
- Consistent configuration across machines

## Features

- Interactive CLI built with Typer and Rich
- Profile-based model switching (`/brain`, `/coder`, etc.)
- Automatic shutdown of previous server before starting a new one
- Health checking with readiness polling
- Cross-platform process management using subprocess and psutil
- OS-aware configuration directory creation
- Conversation history management
- Status panel showing active model and server info

## Installation

### Requirements

- Python 3.9+
- `llama-server` binary from llama.cpp

Install from PyPI:

```bash
pip install sequence-llm
```

## Quick Start

Run the CLI:

```bash
pip install sequence-llm
seq-llm
```

On first launch, a configuration file is created automatically.

Config locations:

- Windows: `%APPDATA%\sequence-llm\config.yaml`
- Linux: `~/.config/sequence-llm/config.yaml`
- macOS: `~/Library/Application Support/sequence-llm/config.yaml`

## Configuration Example

```yaml
llama_server: "/path/to/llama-server"

defaults:
  threads: 6
  threads_batch: 8
  batch_size: 512

profiles:
  brain:
    name: "Brain Model"
    model_path: "/path/to/model.gguf"
    system_prompt: "/path/to/system.txt"
    port: 8081
    ctx_size: 16384
    temperature: 0.7

  coder:
    name: "Coder Model"
    model_path: "/path/to/coder.gguf"
    system_prompt: "/path/to/coder.txt"
    port: 8082
    ctx_size: 32768
    temperature: 0.3
```

## CLI Usage

```
/status   → show active model and server status
/brain    → switch to brain profile
/coder    → switch to coder profile
/clear    → clear conversation history
/quit     → stop server and exit
```

Typing any text sends a message to the active model.

## Example Workflow

1. Start CLI
2. Automatically load default model
3. Switch between models using commands
4. Chat interactively without restarting processes manually

## Architecture

Core components:

- CLI: interactive interface and command routing
- Server Manager: lifecycle control of llama-server
- API Client: communication with local inference server
- Config System: YAML-based profiles and defaults

## Development

Clone repository:

```bash
git clone https://github.com/Ananay28425/Sequence-LLM.git
cd Sequence-LLM
pip install -e .
```

Run tests:

```bash
pytest -v
```

## License

AGPL-3.0 License. See LICENSE file for details.

## Contributing

Pull requests and issues are welcome.

GitHub: https://github.com/Ananay28425/Sequence-LLM

---

Sequence-LLM provides a lightweight and predictable way to manage local LLM workflows from the terminal.

---

**Sequence-LLM** - Orchestrate LLM sequences with ease.
