{"id":50194541,"url":"https://github.com/altaidevorg/isanagent","last_synced_at":"2026-05-25T16:30:56.246Z","repository":{"id":354134543,"uuid":"1222297562","full_name":"altaidevorg/isanagent","owner":"altaidevorg","description":"Like Openclaw, but for ML engineering. Your always-on and autonomous ML engineer that works 24/7 to conduct research, generate datasets, train models, learn and evolve. Works on Colab, local GPU or over SSH. Zero infra needed","archived":false,"fork":false,"pushed_at":"2026-05-13T11:13:32.000Z","size":5277,"stargazers_count":12,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-13T12:33:54.386Z","etag":null,"topics":["agents","always-on","isanagent","ml-engineer","ml-intern","openclaw"],"latest_commit_sha":null,"homepage":"https://altai.dev","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/altaidevorg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-27T08:21:47.000Z","updated_at":"2026-05-13T11:05:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/altaidevorg/isanagent","commit_stats":null,"previous_names":["altaidevorg/isanagent"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/altaidevorg/isanagent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altaidevorg%2Fisanagent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altaidevorg%2Fisanagent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altaidevorg%2Fisanagent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altaidevorg%2Fisanagent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/altaidevorg","download_url":"https://codeload.github.com/altaidevorg/isanagent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altaidevorg%2Fisanagent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33483722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-25T14:31:05.219Z","status":"ssl_error","status_checked_at":"2026-05-25T14:31:02.878Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["agents","always-on","isanagent","ml-engineer","ml-intern","openclaw"],"created_at":"2026-05-25T16:30:55.552Z","updated_at":"2026-05-25T16:30:56.240Z","avatar_url":"https://github.com/altaidevorg.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# isanagent\n\n**An always-on, agentic ML engineer for your workspace** — built by [ALTAI](https://altai.dev). isanagent doesn’t just answer prompts: it **pushes work toward something shippable** — research, code, runs, checks, and handoffs you can actually use.\n\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](./LICENSE)\n\n---\n\n## Why people reach for it\n\nYou have a fuzzy goal (“fine-tune a model for this task”, “Research about new methods and apply them to my model”,  “speed up this model for inference”, “stand up a tiny LM in Flax”, “generate a preference dataset”, “figure out why this kernel is slow” ). isanagent behaves more like a **senior research engineer who owns the outcome** than a chat window: it reads the repo, hits the web and papers when your intuition is stale, runs code in a **controlled execution harness** (local Python, Jupyter, SSH, Colab MCP — depending on how you configure it), and **iterates with evidence** instead of guessing.\n\n**Talk is cheap. So is code that never ran.** The point is deliverables: notebooks, trained or tuned models, working scripts, cleaned-up docs — and an honest story of what worked, what didn’t, and what to try next.\n\n**Zero infra needed.** isanagent can make use of Colab for free!\n\n---\n\n## What it’s good at\n\n| You want… | isanagent can… |\n|------------|----------------|\n| **End-to-end ML / JAX / PyTorch workflows** | Draft, run, measure, refactor — including long jobs via background execution and job polling so the agent doesn’t go silent for an hour. |\n| **Fresh facts** | `web_search` / `web_fetch` and `arxiv_search` / `arxiv_fetch` so you’re not relying on a frozen snapshot of the world. |\n| **Heavy notebooks \u0026 plots** | Jupyter-aware playbooks: large outputs land as **artifacts** you can open and reason about instead of drowning the chat. |\n| **Parallel or staged research** | Subagents for forked investigation, with history you can audit. |\n| **Structured habits** | Bundled **skills** (after `onboard`): execution research, long-running jobs, scientific Python debugging, synthetic datasets with [**Afterimage**](https://github.com/altaidevorg/afterimage), cron-style automation, skill authoring, and more — loaded on demand so context stays lean. |\n| **Where you already work** | **Terminal** for a focused dev loop, **HTTP API + optional embedded UI** for browser chat, plus **Slack** and **email** when you wire them in. |\n| **Multi-provider, hot-swappable models** | Configure multiple LLM providers (Gemini, OpenAI, Anthropic, DeepSeek, OpenRouter) in `config.toml` and switch between them at runtime with `/model`. Your last choice is remembered across restarts. |\n\n---\n\n## See it in the wild (real Colab runs)\n\nThese notebooks were produced **with isanagent**: you give the direction; it drives implementation, explains tradeoffs, and cites what it read — including **your exact prompt** at the top where asked.\n\n### NanoLLM in Flax — tiny LM, full tutorial walkthrough\n\nA compact language-model implementation in **Flax**, written as a **step-by-step tutorial** through the code — not a stub. The notebook **introduces itself at the top** and quotes the author’s prompt verbatim, as requested.\n\n**[Open in Colab →](https://colab.research.google.com/drive/1ULFIwpen558pk_Eb-4PtJB6gS9ot4yWG?usp=sharing)**\n\n### TurboQuant in JAX + Pallas — optimize, measure, explain\n\n**TurboQuant** implemented in JAX with a **Pallas** kernel: about **3× faster encoding**, decoding unchanged — and an explanation of **why decoding didn’t speed up**, with pointers into **relevant XLA reading**. Several optimization attempts on the Pallas side, with sources called out. Same pattern: rich walkthrough, iterations you can follow, and the **exact user prompt** preserved at the top with a short self-introduction.\n\n**[Open in Colab →](https://colab.research.google.com/drive/13M4Q7HfczdoqQL2P3HAhPZPF4ZKc-5lf?usp=sharing)**\n\nIf that’s the kind of “finish the thing and show your work” energy you want in **your** repo or notebook stack, you’re in the right place.\n\n---\n\n## Get started\n\n**Fast path:** download a prebuilt binary from **[Releases](https://github.com/altaidevorg/isanagent/releases)** (Linux, **macOS** Apple silicon, and Windows), run it, and complete the first-run wizard. The embedded browser UI is baked into the binary.\n\n### Prebuilt binary (recommended)\n\n**One-liner (latest [`main-latest`](https://github.com/altaidevorg/isanagent/releases/tag/main-latest))** — same assets as on the release page; downloads the binary next to you, then runs it (same first-run / onboard behavior as below):\n\n```bash\n# Linux (x86_64)\ncurl -fsSL https://github.com/altaidevorg/isanagent/releases/download/main-latest/isanagent-linux-x86_64 -o isanagent \u0026\u0026 chmod +x isanagent \u0026\u0026 ./isanagent\n```\n\n```bash\n# macOS (Apple silicon)\ncurl -fsSL https://github.com/altaidevorg/isanagent/releases/download/main-latest/isanagent-macos-aarch64 -o isanagent \u0026\u0026 chmod +x isanagent \u0026\u0026 ./isanagent\n```\n\n```powershell\n# Windows (x86_64, PowerShell)\nInvoke-WebRequest https://github.com/altaidevorg/isanagent/releases/download/main-latest/isanagent-windows-x86_64.exe -OutFile isanagent.exe; .\\isanagent.exe\n```\n\n1. Or open **[Releases](https://github.com/altaidevorg/isanagent/releases)** and download the asset for your platform from **Latest main build** (tag [`main-latest`](https://github.com/altaidevorg/isanagent/releases/tag/main-latest)): `isanagent-linux-x86_64`, `isanagent-macos-aarch64`, or `isanagent-windows-x86_64.exe`.\n2. On Linux or macOS, mark it executable (example): `chmod +x isanagent-linux-x86_64` or `chmod +x isanagent-macos-aarch64`.\n3. Run the binary from a terminal (examples): `./isanagent-linux-x86_64` (Linux) or `./isanagent-macos-aarch64` (macOS); on Windows, run `isanagent-windows-x86_64.exe` from Explorer or `.\\isanagent-windows-x86_64.exe` in PowerShell.\n\nIf you use the **default workspace** (`~/.isanagent` on Unix, or the equivalent on Windows) and that folder does not exist yet, **the first run starts the interactive onboard wizard** (provider, API key env var, model, and workspace layout), then continues into the agent in the same session. For a custom workspace path, run `isanagent onboard` (add `--interactive` for the full wizard) or `isanagent --workspace /path/to/workspace` once the directory and `config.toml` exist.\n\nSet API credentials the wizard recommends (for example `GEMINI_API_KEY` or your provider's variable). Turn on **`[api] enabled = true`** and **`serve_ui = true`** in `config.toml` when you want the browser UI on `http://127.0.0.1:\u003cport\u003e/`. For channels, memory, harness options, and sandbox rules, see [`AGENTS.md`](./AGENTS.md).\n\n### Multi-provider setup\n\nConfigure multiple providers in `config.toml` and switch between them at runtime:\n\n```toml\n[providers.gemini-2-5-flash]\nprovider_name = \"gemini\"\nmodel_name = \"gemini-2.5-flash\"\napi_key = \"AIza...\"\n\n[providers.gpt-4o]\nprovider_name = \"openai\"\nmodel_name = \"gpt-4o\"\n# Uses $OPENAI_API_KEY automatically\n\n[providers.claude-sonnet]\nprovider_name = \"anthropic\"\nmodel_name = \"claude-sonnet-4-6\"\n```\n\nUse `/model` in the TUI to open the interactive model selector, or `/model gemini-2-5-flash` to switch directly. Your choice is remembered across restarts.\n\n### Build from source (optional)\n\nFrom a clone of this repo, **`ui/dist` is already present**, so a normal Rust build is enough unless you edited `ui/`:\n\n```bash\ncargo build --release\n./target/release/isanagent\n```\n\nTo scaffold a workspace at a specific path without the default first-run flow:\n\n```bash\ncargo run --release -- onboard --workspace my_agent\n# then:\ncargo run --release -- --workspace my_agent\n```\n\nYou only need `cd ui \u0026\u0026 npm ci \u0026\u0026 npm run build` if you are changing the frontend.\n\n---\n\n## Contributing\n\nFrom the repo root:\n\n```bash\ncargo fmt\ncargo clippy --release -p isanagent --all-targets\ncargo test --release -p isanagent\n```\n\nOn Windows, prefer **`--release`** for builds and tests if debug linking hits PDB issues.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faltaidevorg%2Fisanagent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faltaidevorg%2Fisanagent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faltaidevorg%2Fisanagent/lists"}