1loop
Health Uyari
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 6 GitHub stars
Code Basarisiz
- rm -rf — Recursive force deletion command in ci.sh
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
A coding agent you run on your own machine, with the models you choose: desktop (Linux, Windows), headless server and Android, with signed self-updates.
Download · Install guide · Headless server · Donate
[!IMPORTANT]
1loop is free, and I make it for free. If it is useful to you, I would
really appreciate a donation on Ko-fi, even
$1. Thank you!
1loop is a coding agent you run on your own machine, with the models you
choose. It works in a project folder: it reads and edits files, runs commands,
browses the web and keeps a task list, while you watch and approve. The same
agent runs on the desktop (Linux and Windows), on a headless server,
and on an Android phone, and the phone can also drive the desktop or the
server from anywhere on your network.
- Your models. ChatGPT (sign in with your account), Claude Code, OpenRouter,
vLLM and any OpenAI-compatible API, several accounts at once. - A real workspace. Files, shell, terminals, a browser it can use, Git
changes, a task list and background tasks, in a side panel next to the chat. - You stay in control. Approve each action, let an Auto mode review risky
ones, or go YOLO. Your prompts are never lost, and switching models asks how
the new one should receive the conversation. - Everywhere. Pair your phone with a QR code, copy a project and its chats
between devices, and keep every install up to date from the release page.
Contents
- Install
- Getting started
- Using 1loop
- Updates
- Publishing an update
- Building from source
- Security and privacy
Install
Download the latest version from the release page.
The install guide has every step; in short:
| Platform | Download | Run |
|---|---|---|
| Linux (x86-64) | 1loop-VERSION-linux-amd64.tar.gz |
extract, then ./1loop |
| Windows 10 1809+ (x64) | 1loop-VERSION-windows-amd64.zip |
extract, then 1loop.exe |
| Android 8+ | 1loop-VERSION.apk |
open the APK on the phone |
| Server (Linux or Windows) | 1loop-server-VERSION-… |
see docs/SERVER.md |
[!WARNING]
Android may call 1loop harmful. 1loop is installed from outside the Play
Store, and it does things Google Play Protect associates with risky apps: it
downloads and runs a Debian environment, runs shell commands, and can control
the phone (Phone Use) when you allow it. Play Protect may warn you or block
the install. 1loop is open source: you can read every line of what it does
in this repository. To install it, choose Install anyway (or
More details → Install anyway). Only install an APK downloaded from the
release page above; its updates are signed and checked by the app.
Getting started
- Open a project. Start 1loop in a folder (
./1loop -workspace ~/my-project),
or add folders later from the sidebar. - Connect a model. Open Settings → Connections:
- ChatGPT: Continue with ChatGPT, then sign in in your browser
(1loop listens onlocalhost:1455during sign-in). - Claude Code: offered automatically when
claudeis installed; 1loop
drives it with your Claude subscription. - OpenRouter: paste a key, or start 1loop with
OPENROUTER_API_KEY. - vLLM or any OpenAI-compatible API: enter its
/v1address.
Load / refresh models fetches the catalog; tick the models to show.
- ChatGPT: Continue with ChatGPT, then sign in in your browser
- Ask. Type what you want and press Enter. The agent works in the folder;
its tool calls, diffs and task list appear as it goes. - Pair your phone (optional). Desktop: Settings → Phone remote → Pair a
phone shows a QR code. Phone: install the app, choose Remote desktop,
then Scan QR code.
Using 1loop
Approval modes
Choose in the composer:
- Approval required: every command and edit waits for you.
- Auto mode (ChatGPT; Claude Code uses its own auto mode): reads and
workspace edits run directly; destructive or outgoing commands (rm,git push,curl … | sh, …) always go to a reviewer model; everything else
runs in a sandbox that can only write in the project (Landlock on Linux). - YOLO mode: everything runs without asking and without a sandbox.
Commands run with your user's permissions: approving one lets it act on your
machine.
Tools and the side panel
The agent reads and edits files, runs shell commands (60 s by default, up to
10 minutes, or in the background with no limit), and keeps a task list.
The side panel holds its Tasks, Terminal tabs, a Browser it can use,
Git changes and Files: browse the project, preview code and images,
attach a file to your message, or add files to the project. On Linux the
agent can also use the whole desktop (Computer Use) after you grant screen
sharing.
Prompts, models and context
- Every conversation keeps its own draft: what you type survives a crash,
closing 1loop or switching chats, with Ctrl+Z / Ctrl+Y. - Changing provider, account or model mid-conversation asks how the new
model receives it: as it is, or summarized (by the previous model, which
still has it cached, or by the new one), with 1loop's recommendation. - Long conversations are compacted when they near the model's real context
window; details stay reachable through the agent'srecalltool.
The phone app
- Remote desktop / Remote server: drive a desktop or a server from the
phone, with approvals, screenshots and notifications. - Local phone: the agent runs on the phone itself, in a Debian environment,
and can use the phone (Phone Use, through Shizuku) when you allow it. - Share this phone: let the desktop or another phone use the phone's agent.
- Copy project: copy a project with its conversations between devices;
later copies only send what changed. - Share → 1loop from any app adds a file to the project or the next message.
Shortcuts
| Keys | Action |
|---|---|
| Enter | send (queued while the agent works) |
| Ctrl+Enter | steer the running task with this message |
| Shift+Enter | new line |
| Ctrl+Z / Ctrl+Y | undo / redo in the prompt |
| Ctrl+K | new chat |
| Ctrl+B | show or hide the sidebar |
| Ctrl+Shift+R | restart 1loop |
Updates
1loop reads the signed manifest atupdates/latest.json
on GitHub Pages. Desktop checks shortly after startup and every six hours
while running. Android checks when the app opens and schedules background
checks every six hours; Android may delay these to save battery.
- Desktop: a notification, an automatic proposal and Update available in the sidebar.
Settings → Updates → Update and restart replaces 1loop's files (the
previous ones stay beside them as.old) and restarts. - Android: an automatic proposal in the app and a notification when
notifications are allowed. Settings → Updates → Check now also checks
manually. The update button downloads the APK and opens Android's installer;
confirm the installation there. Your chats and settings stay. Android asks
once to allow 1loop to install its updates. - Server: a device connected to an outdated server shows Update server;
the server downloads its new version, replaces itself and restarts.
Each release's manifest is signed with the maintainer's release key, and every
download is checked against it before anything is installed.
Publishing an update
This is the maintainer's procedure. Publishing the signed manifest and files
on GitHub Pages makes a new version available to installed apps; it does not
silently install it on users' devices.
Check Pages once. In the repository's Settings → Pages, select
Deploy from a branch, branch gh-pages, folder / (root).
The site is https://tpm28.github.io/1loop/. This uses GitHub's Pages
deployment; no custom GitHub Actions CI workflow is required.Prepare the release. Increase
VERSION(for example,0.3.2to0.3.3) and writedocs/releases/0.3.3.mdwith the release notes.
Commit, review and merge the changes, then publish from the intended clean
source commit. Use the build requirements below and a GitHub account with
repository, release and Pages publishing access.Keep the existing signing keys. Use the same private manifest key that
matches the public key embedded in installed apps, and the same Android
APK signing keystore. Android rejects an update signed by another APK key.
Never commit either private key or an access token.Run the publisher from the repository root:
gh auth login # once, if not already authenticated GH_TOKEN="$(gh auth token)" \ RELEASE_KEY=/path/to/existing/release-key.pem \ bash release.shrelease.shrunsci.sh, builds and packages all five downloads, signs
the manifest, pushes the files togh-pages, and creates the matching
GitHub release. The results are also kept locally indist/VERSION/.
Do not reuse a version already published. Ifci.shhas just passed for
exactly the source and build outputs being published,SKIP_CI=1can
reuse those outputs; otherwise leave the checks enabled.Wait for Pages to deploy, then verify. Open the release page and
updates/latest.jsonabove. The manifest is a signed envelope, rather
than plain release notes; let an installed app verify it with
Settings → Updates → Check now. Confirm the offered version and try
the update. On Android, complete the system install confirmation yourself.
The published files live at updates/VERSION/; updates/latest.json selects
the release offered to apps. Creating only a GitHub release, or uploading an
APK without updating that signed manifest, does not publish an in-app update.
Do not edit the manifest by hand: its signature must match its contents.
Building from source
Requirements: Go 1.23+, a C compiler, and the OpenGL, X11 and Wayland
development libraries (libgl-dev, xorg-dev, libwayland-dev,libxkbcommon-dev) for the desktop.
make # bin/1loop (X11) and bin/1loop-wayland (native Wayland)
make server # bin/1loop-server, static, no CGO
make run # build, then open 1loop on the current folder
make dev # same, with the developer log (~/.cache/1loop/dev.log)
bash ci.sh # all checks and builds: Go, Linux, Android, Windows (Docker)
Always start bin/1loop: in a Wayland session it hands over tobin/1loop-wayland. ONELOOP_BACKEND=x11 forces X11.
- Android: JDK 21 and the Android SDK (
platforms;android-37.0,build-tools;37.0.0, NDK30.0.16248370for the native helpers), thencd android && ./gradlew assembleRelease. - Windows:
ci.shcross-buildsbin/windows/from Linux with MinGW in
Docker. Natively: MinGW-w64 GCC onPATH, thengo build -trimpath -ldflags="-s -w -H=windowsgui -extldflags=-static" -o bin/1loop.exe ./cmd/1loop. - Releases:
bash release.shbuilds everything, signs the update manifest
withrelease-key.pem(never committed), publishes the files on the release
page (thegh-pagesbranch) and creates the GitHub release. The version
comes from theVERSIONfile.
Security and privacy
- Conversations, projects and settings stay on your machine, in
~/.config/1loop/(the server:~/.config/1loop-server/). ChatGPT tokens
are stored there with mode0600. - The phone and the desktop talk over HTTPS with a certificate pinned by its
fingerprint at pairing; pairing tokens are stored as hashes. - Reads and edits stay inside the project, including symbolic links. The
shell runs with your permissions; Auto mode's sandbox limits its writes. - Project copies leave out
.envfiles, private keys, credentials and
generated caches, but they are not a secret scanner: review a copy before
confirming it.
Integration references: OpenCode's OAuth flow,
vLLM,
OpenRouter.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi