API

Use PorchLM from your own code

An OpenAI-compatible endpoint. Point any OpenAI client at this server and it works — no API key, no account, no sign-up.

Base URL
https://guythatlives.net/v1

No authentication is required. If your client insists on an API key, send any non-empty string — it is accepted and ignored.

01 / Available models
PorchLM-F16-V10 241 MB · F16
PorchLM-F16-V11 241 MB · F16
PorchLM-F16-V3 115 MB · F16
PorchLM-F16-V9 241 MB · F16
PorchLM-F16-V8 241 MB · F16
PorchLM-F16-V7 115 MB · F16
PorchLM-F16-V6 115 MB · F16
PorchLM-F16-V5 134 MB · F16
PorchLM-F16-V4 22.7 MB · F16
PorchLM-F16-V2 115 MB · F16
PorchLM-F16-V1 16.0 MB · F16

The model id is the filename without .gguf. Fetch this list programmatically from GET /v1/models.

02 / Quick start
curl

The simplest possible call.

curl https://guythatlives.net/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "PorchLM-F16-V10",
    "messages": [{"role": "user", "content": "Hello"}]
  }'
Python — official OpenAI library

Install with pip install openai. Only the two highlighted lines differ from normal OpenAI usage.

from openai import OpenAI

client = OpenAI(
    base_url="https://guythatlives.net/v1",
    api_key="not-needed",          # any string works
)

response = client.chat.completions.create(
    model="PorchLM-F16-V10",
    messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)
JavaScript / TypeScript

Install with npm install openai.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://guythatlives.net/v1",
  apiKey: "not-needed",
});

const r = await client.chat.completions.create({
  model: "PorchLM-F16-V10",
  messages: [{ role: "user", content: "Hello" }],
});
console.log(r.choices[0].message.content);
Streaming

Set stream: true and read chunks as they arrive.

const stream = await client.chat.completions.create({
  model: "PorchLM-F16-V10",
  messages: [{ role: "user", content: "Tell me something" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content || "");
}
03 / Using it with other tools

Most software that supports "a custom OpenAI-compatible endpoint" will work. Set the base URL, put any text in the API key field, and pick a model id from the list above.

Continue, Cline, and similar editor extensions
{
  "models": [{
    "title": "PorchLM",
    "provider": "openai",
    "model": "PorchLM-F16-V10",
    "apiBase": "https://guythatlives.net/v1",
    "apiKey": "not-needed"
  }]
}
Environment variables

Many tools read these directly.

OPENAI_BASE_URL=https://guythatlives.net/v1
OPENAI_API_KEY=not-needed
04 / Endpoints
GET /v1/models List available models
GET /v1/models/{id} Details for one model
POST /v1/chat/completions Chat — streaming and non-streaming
POST /v1/completions Legacy text completion

Supported parameters: model, messages, stream, max_tokens, temperature, top_p, top_k, frequency_penalty. Anything else is accepted and ignored rather than rejected.

Not implemented: embeddings, function/tool calling, vision, audio, logprobs, and n > 1. Token counts in usage are estimates, not exact tokenizer counts.

05 / Before you build on this

This runs on a single machine in someone's house. It has no uptime guarantee, no rate limits today, and no support. It may be slow, restart without warning, or disappear entirely. Please don't build anything important on it.

The model has roughly 8 million parameters. Its output is frequently wrong and it knows almost nothing about the world. Treat it as a curiosity, not a capability.

There is no API key, which means there is no per-user isolation. Don't send anything private. Use is subject to the terms.

If the endpoint starts getting hammered, keys and rate limits will appear — the fair-use expectation is "a hobby project, treated gently."