Ramble

Install and configure

Enable Ramble and optionally add server-side audio transcription.

1. Configure transaction interpretation

Ramble needs an OpenAI-compatible /chat/completions endpoint. This can be a hosted provider or a self-hosted service such as Ollama, LiteLLM, or llama.cpp.

VariableDefaultPurpose
ASSISTANT_LLM_ENDPOINThttps://api.openai.com/v1/chat/completionsFull chat completions URL.
ASSISTANT_LLM_MODELgpt-4o-miniModel sent with each request.
ASSISTANT_LLM_API_KEYNoneAPI key sent as a Bearer token. It may be empty for a local service without authentication.
ASSISTANT_LLM_CONTEXTNoneOptional instructions added to every request, such as a preferred language for descriptions.

Ramble is enabled when either ASSISTANT_LLM_ENDPOINT or ASSISTANT_LLM_API_KEY is set.

  • With OpenAI, setting only ASSISTANT_LLM_API_KEY uses the default endpoint and model.
  • With a self-hosted service, set ASSISTANT_LLM_ENDPOINT and usually ASSISTANT_LLM_MODEL. A key is optional if your service does not require one.

2. Configure audio transcription (optional)

You only need this service when clients upload audio to the Ramble API. Typing and device dictation work without it.

The service must provide an OpenAI-compatible /audio/transcriptions endpoint.

VariableDefaultPurpose
ASSISTANT_TRANSCRIPTION_ENDPOINThttps://api.openai.com/v1/audio/transcriptionsFull audio transcription URL.
ASSISTANT_TRANSCRIPTION_MODELgpt-4o-mini-transcribeTranscription model sent with each request.
ASSISTANT_TRANSCRIPTION_API_KEYNoneAPI key sent as a Bearer token.
ASSISTANT_TRANSCRIPTION_LANGUAGENoneOptional language hint, such as en or ro. This improves short recordings that are difficult to identify automatically.

The transcription service is enabled when either its endpoint or API key is set. Uploaded recordings are transcribed after the upload response; Pico retries pending transcription when saved rambles are loaded.

Docker Compose example

Add the variables under the existing Pico service:

services:
  firefly-pico:
    image: cioraneanu/firefly-pico:latest
    environment:
      - FIREFLY_URL=https://firefly.example.com

      - ASSISTANT_LLM_ENDPOINT=https://api.openai.com/v1/chat/completions
      - ASSISTANT_LLM_MODEL=gpt-4o-mini
      - ASSISTANT_LLM_API_KEY=your-api-key
      # - ASSISTANT_LLM_CONTEXT=Return descriptions in Romanian.

      # Optional: required only for uploaded audio
      - ASSISTANT_TRANSCRIPTION_ENDPOINT=https://api.openai.com/v1/audio/transcriptions
      - ASSISTANT_TRANSCRIPTION_MODEL=gpt-4o-mini-transcribe
      - ASSISTANT_TRANSCRIPTION_API_KEY=your-api-key
      # - ASSISTANT_TRANSCRIPTION_LANGUAGE=ro

Restart the Pico container after changing its environment.

3. Verify the setup

In Pico, open Settings → Assistant. The page shows the resolved endpoint and model for each service.

  1. Test the language model connection.
  2. If you configured audio transcription, test that connection too.
  3. Optionally add personal LLM context. It is combined with the server-wide ASSISTANT_LLM_CONTEXT.

When the language model test succeeds, open the new transaction screen and try a short message in Ramble.

Keep API keys in Pico's server environment. Do not place them in an iOS Shortcut or another client.
Copyright © 2026