{"slug": "from-a-thought-in-bed-to-open-source-one-week-of-development-diary", "title": "From \"a thought in bed\" to open source: one week of development diary", "summary": "A developer built DeepSeek Phone Harness, an open-source tool that lets users control a DeepSeek agent on their computer from a phone via HTTP and DSH RPC. The project, released under MIT, includes tool cards for step-by-step visibility, a remote terminal, file browsing, and task history, totaling about 4,000 lines with zero npm dependencies. The developer fixed a hanging issue caused by unanswered agent questions and emphasized the value of watching the agent work remotely.", "body_md": "No glamorous start — just a late-night thought. A week of building DeepSeek Phone Harness, from zero to release.\n\nIn bed that night, I realized I could have the agent on my computer run a task early. Get up and walk to the study? Too much trouble. Give up? Unsatisfying.\n\nIn that moment it hit me: **the agent's value is doing work for me, yet I'm chained to the computer.**\n\nNext morning I opened the editor and decided to solve it myself.\n\nThe core idea was simple: the phone sends HTTP, an agent process translates it into DSH RPC, and translates responses back.\n\nThat evening the first version worked: send a sentence from the phone, the agent on the computer executes, the result returns to the phone. **Ugly, but it moved.**\n\nOn day three, tasks started \"randomly hanging.\" I dug until late night and found: **the agent asks the user questions, questions don't go through the approval channel, and I wasn't listening to the question channel.** Tasks waited forever on a question nobody answered.\n\nWhen it was fixed, my commit message said three words: \"no more hangs.\"\n\nResults weren't enough — I wanted the phone to see **what the agent does, step by step.**\n\nSo tool cards were born: one card per tool call, with icon, status, the file path it touched, and expandable full arguments and results. The agent's reasoning also folds into a collapsible block.\n\nThat night I sat watching the agent work on my phone for a long time. **\"Watching it think and move\" versus \"waiting for a result\" are two completely different experiences.**\n\nAdded the terminal (remote commands), file browsing, task history (one-tap re-run), and session management (rename/delete/search).\n\nWrote the README, wrote the promo posts, pushed to GitHub. There was no ceremony — just `git push`\n\nand a long exhale.\n\n**~4000 lines, zero npm dependencies, one Node process + one HTML file.**\n\nIt runs stably: dispatch tasks on the commute, tweak config before bed, tap approvals mid-meeting. The phone became the agent's remote — **\"wherever you are, your agent is too\"** is no longer just a slogan.\n\nOpen source (MIT), three-minute setup:\n\n```\ngit clone https://github.com/2903077918-lgtm/DeepSeek-phone-harness\ncd DeepSeek-phone-harness && cp config.example.json config.json\nnode agent.mjs --mode=both\n```\n\nInstall Tailscale on the phone, access over 4G/5G.\n\n**If you were to build an open-source project \"for yourself,\" what pain point would you solve first?** Comment below — the next viral project might start here.", "url": "https://wpnews.pro/news/from-a-thought-in-bed-to-open-source-one-week-of-development-diary", "canonical_source": "https://dev.to/joey020907/from-a-thought-in-bed-to-open-source-one-week-of-development-diary-iee", "published_at": "2026-08-16 06:54:52+00:00", "updated_at": "2026-08-16 07:11:28.918378+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools"], "entities": ["DeepSeek", "GitHub", "Tailscale"], "alternates": {"html": "https://wpnews.pro/news/from-a-thought-in-bed-to-open-source-one-week-of-development-diary", "markdown": "https://wpnews.pro/news/from-a-thought-in-bed-to-open-source-one-week-of-development-diary.md", "text": "https://wpnews.pro/news/from-a-thought-in-bed-to-open-source-one-week-of-development-diary.txt", "jsonld": "https://wpnews.pro/news/from-a-thought-in-bed-to-open-source-one-week-of-development-diary.jsonld"}}