{"id":21832584,"url":"https://github.com/ivynya/illm","last_synced_at":"2026-05-09T15:38:50.378Z","repository":{"id":214394203,"uuid":"735131131","full_name":"ivynya/illm","owner":"ivynya","description":"internet llm - access your ollama (or any other local llm) instance from across the internet","archived":false,"fork":false,"pushed_at":"2024-06-25T18:36:32.000Z","size":88,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-26T09:24:19.672Z","etag":null,"topics":["llm-serving","ollama","ollama-interface"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivynya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-23T19:18:38.000Z","updated_at":"2025-01-05T01:12:18.000Z","dependencies_parsed_at":"2023-12-27T22:31:49.591Z","dependency_job_id":"4775024e-14f4-4d0f-bd4a-8cc51b9f3ee8","html_url":"https://github.com/ivynya/illm","commit_stats":null,"previous_names":["ivynya/illm"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivynya%2Fillm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivynya%2Fillm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivynya%2Fillm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivynya%2Fillm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivynya","download_url":"https://codeload.github.com/ivynya/illm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244806878,"owners_count":20513527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["llm-serving","ollama","ollama-interface"],"created_at":"2024-11-27T19:21:27.277Z","updated_at":"2026-05-09T15:38:45.331Z","avatar_url":"https://github.com/ivynya.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# illm\n\nInternet LLM (illm) lets you access your locally run LLM from any computer with a web browser and internet connection, even if you aren't on the same network.\n\nIt does this by running a server on a cloud instance that acts as a forwarder between your local machine and the internet. The server is responsible for authenticating clients and forwarding requests to your local machine, and forwarding responses back to the client.\n\nThis repository's reference implementation is designed to work with [ollama](https://ollama.ai) as the provider and [ivynya/aura](https://github.com/ivynya/aura) as the user interface.\n\n\u003e ⚠️ This project should mostly be treated as a proof of concept. You may run into stability issues, especially if you share your LLM provider with many people at once.\n\n## Architecture\n\n1. You host an `illm/server` instance on a cloud provider and expose it to the internet on a domain (e.g. `illm.example.com`).\n2. You run `illm/client` on your local machine and configure it to your server. The client connects to the server at `/aura/provider`, identifying itself as an LLM provider.\n3. You connect to `/aura/client` using an illm client like [Aura](https://github.com/ivynya/aura) and authenticate to the server. Now, requests will be pipelined from the client to the server to the provider and back.\n4. Requests from clients are sent as JSON with an `action` and other parameters. See `/internal/types.go`. Requests are tagged by the server with a unique ID (Tag) corresponding to each client connection, then sent to the provider. The provider is responsible for processing the request and sending back a Request object with the same Tag. The server then sends the response back to the client with a matching Tag.\n\nBecause the server hosts websocket endpoints, connections can be made from anywhere without reverse proxying.\n\n## Usage\n\nThis repository contains a reference implementation of an illm provider (in `/client`). It needs ollama installed on your local machine running at localhost:11434 and will make API requests outside of the docker container to that URL. It is designed to work with the reference implementation of the user client, [Aura](https://github.com/ivynya/aura).\n\nExample docker compose file for running the server on your cloud instance:\n\n```yaml\nversion: \"3.8\"\n\nservices:\n  illm:\n    image: ghcr.io/ivynya/illm/server:latest\n    ports:\n      - 8080:3000\n    restart: unless-stopped\n    environment:\n      - USERNAME=admin\n      - PASSWORD=password\n```\n\nExample docker compose file for running the client on your local machine:\n\n```yaml\nversion: \"3.8\"\n\nservices:\n  illm:\n    image: ghcr.io/ivynya/illm/client:latest\n    restart: unless-stopped\n    environment:\n      - AUTH=\u003ca base64 encoded username:password\u003e\n      - IDENTIFIER=your-computer-name\n      - ILLM_SCHEME=\u003cws|wss\u003e\n      - ILLM_HOST=illm.example.com\n      - ILLM_PATH=/aura/provider\n      - OLLAMA_URL=http://host.docker.internal:11434\n```\n\nRun the server first, then the client. The client should log that it is connected. Then, if you don't want to write your own user interface, set up [Aura](https://github.com/ivynya/aura) as described in the README. Make sure to pull models before using the user interface because the client will not auto-pull them for you, it will just error.\n\n## Development\n\nThis repository uses a modified subset of [langchaingo](https://github.com/tmc/langchaingo)'s ollama implementation in the reference client. It was modified to return additional data during generation, since the original returns text only (without extra info like tokens, duration, and context). It was also modified to accept chat context as a parameter.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivynya%2Fillm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivynya%2Fillm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivynya%2Fillm/lists"}