{
    "archive_path": "archive/1790892380.785368",
    "base_url": "github.com/Vibra-Ingenn/Janus",
    "basename": "Janus",
    "bookmarked_date": "2026-10-01 22:06",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/github.com/Vibra-Ingenn/Janus",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=github.com",
        "headers_path": "headers.json",
        "htmltotext_path": "htmltotext.txt",
        "index_path": "index.html",
        "media_path": "media/",
        "mercury_path": "mercury/content.html",
        "pdf_path": "output.pdf",
        "readability_path": "readability/content.html",
        "screenshot_path": "screenshot.png",
        "singlefile_path": "singlefile.html",
        "warc_path": "warc/",
        "wget_path": "github.com/Vibra-Ingenn/Janus.html"
    },
    "domain": "github.com",
    "extension": "",
    "hash": "K7TPWXPZ2ZS07GV2PZRX",
    "history": {
        "archive_org": [],
        "dom": [],
        "favicon": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--output",
                    "favicon.ico",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://www.google.com/s2/favicons?domain=github.com"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-01T22:07:19.658409+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1790892380.785368",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-01T22:07:19.056570+00:00",
                "status": "succeeded"
            }
        ],
        "git": [],
        "headers": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--head",
                    "--max-time",
                    "120",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://github.com/Vibra-Ingenn/Janus"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-01T22:07:20.059176+00:00",
                "index_texts": null,
                "output": "headers.json",
                "pwd": "/data/archive/1790892380.785368",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-01T22:07:19.667300+00:00",
                "status": "succeeded"
            }
        ],
        "htmltotext": [],
        "media": [],
        "mercury": [
            {
                "cmd": [
                    "/app/node_modules/@postlight/parser/cli.js",
                    "https://github.com/Vibra-Ingenn/Janus"
                ],
                "cmd_version": "1.0.0",
                "end_ts": "2026-10-01T22:07:35.941350+00:00",
                "index_texts": null,
                "output": "mercury",
                "pwd": "/data/archive/1790892380.785368",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-01T22:07:30.390998+00:00",
                "status": "succeeded"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/app/node_modules/readability-extractor/readability-extractor",
                    "/tmp/tmps77ewoox",
                    "https://github.com/Vibra-Ingenn/Janus"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2026-10-01T22:07:30.381691+00:00",
                "index_texts": [
                    "Janus is a single Go binary that runs .gguf models on your machine (GPU or CPU) and exposes an OpenAI-compatible API. No Python, no Docker, no Ollama required.\nUse it your way: call it from the command line (curl, PowerShell, scripts), wire it into Cursor / Cline / any OpenAI client \u2014 same local models, whatever workflow fits you.\n\nWhat you get\n\nLocal inference \u2014 llama.cpp via Vulkan (AMD / Intel / NVIDIA) or CPU fallback\nOpenAI-compatible API \u2014 /v1/chat/completions, /v1/models\nHot-swap models \u2014 change .gguf without restarting\nThinking model support \u2014 <think> reasoning split into reasoning_content\nChat template auto-detection \u2014 uses the template from GGUF metadata\nZero dependencies \u2014 one .exe on Windows, no Python, no Docker\n\n\nRequirements\n\n\n\nPlatform\nWhat you need\n\n\n\n\nWindows (primary)\nWindows 10/11, Go 1.22+, Vulkan-capable GPU recommended\n\n\nLinux\nGo 1.22+, Vulkan or CPU\n\n\nmacOS\nGo 1.22+, CPU backend (Vulkan varies by hardware)\n\n\n\nDisk: plan for the model size (often 2\u20138 GB per model) plus ~50 MB for Janus + llama.dll.\n\nQuick start (Windows)\n1. Clone and build\ngit clone https://github.com/Vibra-Ingenn/Janus.git\ncd Janus\n.\\build.ps1\nbuild.ps1 downloads pre-built llama.cpp Vulkan DLLs and compiles dist\\janus.exe.\n2. Download a model\nPut a .gguf file in the models\\ folder. Use the included downloader:\ngo build -o dist\\modelget.exe .\\cmd\\modelget\n.\\dist\\modelget.exe -repo meta-llama/Llama-3.2-3B-Instruct -file Llama-3.2-3B-Instruct-Q8_0.gguf -out .\\models\\\nOr download any GGUF from Hugging Face.\n3. Configure\n\nEdit .env:\nINFERENCE_BACKEND=vulkan\nJANUS_MODEL_PATH=./models/Llama-3.2-3B-Instruct-Q8_0.gguf\nJANUS_MAX_TOKENS=4096\n\n\n\nVariable\nDefault\nMeaning\n\n\n\n\nINFERENCE_BACKEND\nvulkan\nvulkan, cpu, or openrouter\n\n\nJANUS_MODEL_PATH\n(required)\nPath to your .gguf file\n\n\nJANUS_GPU_LAYERS\n-1\n-1 = all layers on GPU, 0 = CPU only\n\n\nJANUS_VRAM_CEILING_MB\n9216\nVRAM budget hint (MiB)\n\n\nJANUS_MAX_TOKENS\n4096\nMax tokens per reply\n\n\nJANUS_LISTEN_ADDR\n127.0.0.1:8990\nBind address\n\n\n\n4. Run\n\nOpens http://127.0.0.1:8990 in your browser.\n5. Verify\ncurl http://127.0.0.1:8990/health\n\nQuick start (Linux / macOS)\ngit clone https://github.com/Vibra-Ingenn/Janus.git\ncd Janus\ngo mod tidy\ngo build -o dist/janus ./cmd/janus\ncp .env.example .env\n# edit .env \u2014 set JANUS_MODEL_PATH and INFERENCE_BACKEND=cpu if no Vulkan\n./dist/janus\nOn Linux you need libllama.so next to the binary or on LD_LIBRARY_PATH.\n\nOpenAI-compatible API\ncurl http://127.0.0.1:8990/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"local\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"Hello!\"}]\n  }'\nBase URL: http://127.0.0.1:8990/v1\nEndpoints\n\n\n\nMethod\nPath\nDescription\n\n\n\n\nGET\n/health\nLiveness check (?deep=true for details)\n\n\nGET\n/v1/models\nModel list\n\n\nPOST\n/v1/chat/completions\nChat (streaming supported)\n\n\nPOST\n/models/load\nHot-swap model\n\n\nGET\n/models/list\nAvailable .gguf files\n\n\nGET\n/engine/status\nVRAM and backend info\n\n\n\nStreaming\ncurl http://127.0.0.1:8990/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"local\",\"stream\":true,\"messages\":[{\"role\":\"user\",\"content\":\"Tell me a joke\"}]}'\n\nConnect to Cursor / Cline / other clients\nBase URL:  http://127.0.0.1:8990/v1\nAPI Key:   (leave blank)\n\n\nPitfalls (learned the hard way)\n\n\n\nProblem\nWhat's going on\nFix\n\n\n\n\n\"It built but my changes aren't there\"\nOn Windows, Go can't overwrite a running .exe.\nStop all janus.exe in Task Manager, then rebuild.\n\n\n\"Address already in use\"\nA leftover process holds port 8990.\nTask Manager \u2192 end all janus.exe.\n\n\nServer starts, chat fails\nJANUS_MODEL_PATH wrong or no .gguf in models/.\nSet the path in .env, put the file in models/.\n\n\n\"local engine failed to start\"\nMissing llama.dll or GPU driver issue.\nRun .\\build.ps1. Update GPU drivers, or set INFERENCE_BACKEND=cpu.\n\n\nWrong URL\nDefault is http://127.0.0.1:8990, not 8080.\nBookmark 8990.\n\n\nFirst reply takes forever\nModel loading into VRAM \u2014 normal.\nWait 10\u201360s; smaller quants (Q4) load faster.\n\n\n\n\nProject layout\ncmd/janus/          Main server (OpenAI-compatible API)\ncmd/modelget/       Hugging Face model downloader\ninternal/engine/    llama.cpp Vulkan/CPU backend\ninternal/bridge/    DLL loader and FFI bindings\ninternal/singleton/ Single-instance guard\nmodels/             Put .gguf files here (not committed)\ndist/               janus.exe + llama.dll after build\n\n\nDevelopment\nGet-Process -Name \"janus\" -ErrorAction SilentlyContinue | Stop-Process -Force\ngo test ./...\ngo build -o dist\\janus.exe .\\cmd\\janus\n.\\dist\\janus.exe\nOr just .\\run.ps1. For a full build including llama DLLs, use .\\build.ps1.\nContributions welcome \u2014 see CONTRIBUTING.md.\n\nLicense\nMIT \u2014 see LICENSE."
                ],
                "output": "readability",
                "pwd": "/data/archive/1790892380.785368",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-01T22:07:27.341193+00:00",
                "status": "succeeded"
            }
        ],
        "screenshot": [],
        "singlefile": [],
        "title": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://github.com/Vibra-Ingenn/Janus"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-01T22:07:27.333173+00:00",
                "index_texts": null,
                "output": "GitHub - Vibra-Ingenn/Janus: Janus is a API router for AI models written in Go and has a Vulkan Model runner \u00b7 GitHub",
                "pwd": "/data/archive/1790892380.785368",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-01T22:07:27.242216+00:00",
                "status": "succeeded"
            }
        ],
        "wget": [
            {
                "cmd": [
                    "wget",
                    "--no-verbose",
                    "--adjust-extension",
                    "--convert-links",
                    "--force-directories",
                    "--span-hosts",
                    "--no-parent",
                    "-e",
                    "robots=off",
                    "--reject=js,mjs,woff,woff2,ttf,otf,eot,mp4,m4v,mov,webm,ogv,mkv,avi,flv",
                    "--timeout=120",
                    "--restrict-file-names=windows",
                    "--page-requisites",
                    "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) wget/GNU Wget 1.21.3",
                    "--compression=auto",
                    "--timestamping",
                    "https://github.com/Vibra-Ingenn/Janus"
                ],
                "cmd_version": "GNU Wget 1.21.3",
                "end_ts": "2026-10-01T22:07:27.232155+00:00",
                "index_texts": null,
                "output": "github.com/Vibra-Ingenn/Janus.html",
                "pwd": "/data/archive/1790892380.785368",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-01T22:07:20.068691+00:00",
                "status": "succeeded"
            }
        ]
    },
    "icons": null,
    "is_archived": true,
    "is_static": false,
    "latest": {
        "archive_org": null,
        "dom": null,
        "favicon": "favicon.ico",
        "git": null,
        "media": null,
        "pdf": null,
        "screenshot": null,
        "singlefile": null,
        "title": "GitHub - Vibra-Ingenn/Janus: Janus is a API router for AI models written in Go and has a Vulkan Model runner \u00b7 GitHub",
        "warc": null,
        "wget": "github.com/Vibra-Ingenn/Janus.html"
    },
    "link_dir": "/data/archive/1790892380.785368",
    "newest_archive_date": "2026-10-01T22:07:30.390998+00:00",
    "num_failures": 0,
    "num_outputs": 6,
    "oldest_archive_date": "2026-10-01T22:07:19.056570+00:00",
    "path": "/Vibra-Ingenn/Janus",
    "schema": "Link",
    "scheme": "https",
    "snapshot_id": "214e5401-c334-4423-921f-ae3ebfba07ad",
    "sources": [
        "/data/sources/1790892380-import.txt"
    ],
    "tags": null,
    "tags_str": "",
    "timestamp": "1790892380.785368",
    "title": "GitHub - Vibra-Ingenn/Janus: Janus is a API router for AI models written in Go and has a Vulkan Model runner \u00b7 GitHub",
    "updated": "2026-10-01T22:07:19.056150+00:00",
    "updated_date": "2026-10-01 22:07",
    "url": "https://github.com/Vibra-Ingenn/Janus"
}