{"id":302,"date":"2026-08-04T11:47:06","date_gmt":"2026-08-04T03:47:06","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/08\/04\/2026-08-03\/"},"modified":"2026-08-04T11:47:06","modified_gmt":"2026-08-04T03:47:06","slug":"2026-08-03","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/08\/04\/2026-08-03\/","title":{"rendered":"PH\u70ed\u699c | 2026-08-03"},"content":{"rendered":"<p><!DOCTYPE html><br \/>\n<html lang=\"zh-CN\"><br \/>\n<head><br \/>\n    <meta charset=\"UTF-8\"><br \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><br \/>\n    <title>Product Hunt \u6bcf\u65e5\u70ed\u699c 2026-08-03<\/title><\/p>\n<style>\n        \/* --- \u5168\u5c40\u91cd\u7f6e\u4e0e\u5b57\u4f53 --- *\/\n        :root {\n            --ph-orange: #FF6154;\n            --text-main: #21293C;\n            --text-secondary: #4B587C;\n            --bg-ai: #F7F7F9;\n            --border-color: #E6E6E6;\n        }<\/p>\n<p>        body {\n            font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n            color: var(--text-main);\n            background-color: #ffffff;\n            line-height: 1.6;\n            margin: 0;\n            padding: 20px;\n        }<\/p>\n<p>        .container {\n            max-width: 800px;\n            margin: 0 auto;\n        }<\/p>\n<p>        \/* --- \u5361\u7247\u6837\u5f0f --- *\/\n        .app-card {\n            border-bottom: 1px solid var(--border-color);\n            padding-bottom: 40px;\n            margin-bottom: 40px;\n        }<\/p>\n<p>        \/* --- 1. \u5934\u90e8\u533a\u57df --- *\/\n        .app-header {\n            display: flex;\n            align-items: flex-start;\n            gap: 16px;\n            margin-bottom: 20px;\n        }<\/p>\n<p>        .rank {\n            font-size: 24px;\n            font-weight: 300;\n            color: #999;\n            min-width: 30px;\n            padding-top: 4px;\n        }<\/p>\n<p>        .title-group {\n            flex: 1;\n        }<\/p>\n<p>        .app-title {\n            font-size: 24px;\n            font-weight: 800;\n            margin: 0 0 4px 0;\n            color: var(--text-main);\n            text-decoration: none;\n            display: inline-block;\n        }<\/p>\n<p>        .app-title:hover {\n            color: var(--ph-orange);\n            text-decoration: underline;\n        }<\/p>\n<p>        .vote-btn {\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 8px 12px;\n            background: #fff;\n            min-width: 60px;\n            box-shadow: 0 1px 2px rgba(0,0,0,0.05);\n        }<\/p>\n<p>        .vote-arrow {\n            color: var(--ph-orange);\n            font-size: 14px;\n            margin-bottom: -2px;\n        }<\/p>\n<p>        .vote-count {\n            font-weight: 600;\n            font-size: 14px;\n        }<\/p>\n<p>        \/* --- 2. \u5347\u7ea7\u7248\u5a92\u4f53\u753b\u5eca (\u5173\u952e\u4fee\u6539) --- *\/\n        .media-gallery {\n            display: flex;\n            gap: 16px;\n            overflow-x: auto; \/* \u5141\u8bb8\u6a2a\u5411\u6eda\u52a8 *\/\n            padding-bottom: 16px; \/* \u7559\u51fa\u6eda\u52a8\u7a7a\u95f4 *\/\n            scroll-snap-type: x mandatory; \/* \u6eda\u52a8\u5438\u9644\u6548\u679c *\/\n            -webkit-overflow-scrolling: touch; \/* iOS \u5e73\u6ed1\u6eda\u52a8 *\/\n            margin-bottom: 20px;<\/p>\n<p>            \/* \u9690\u85cf\u9ed8\u8ba4\u6eda\u52a8\u6761\u4f46\u4fdd\u7559\u529f\u80fd (Firefox) *\/\n            scrollbar-width: thin;\n            scrollbar-color: #ddd transparent;\n        }<\/p>\n<p>        \/* Webkit \u6eda\u52a8\u6761\u6837\u5f0f\u4f18\u5316 *\/\n        .media-gallery::-webkit-scrollbar {\n            height: 6px;\n        }\n        .media-gallery::-webkit-scrollbar-track {\n            background: transparent;\n        }\n        .media-gallery::-webkit-scrollbar-thumb {\n            background-color: #eee;\n            border-radius: 10px;\n        }<\/p>\n<p>        .media-item-wrapper {\n            flex: 0 0 auto; \/* \u9632\u6b62\u88ab\u538b\u7f29 *\/\n            width: 80%;     \/* \u79fb\u52a8\u7aef\u9ed8\u8ba4\u9732\u51fa\u4e00\u70b9\u4e0b\u4e00\u5f20\uff0c\u63d0\u793a\u53ef\u6ed1\u52a8 *\/\n            max-width: 500px; \/* \u684c\u9762\u7aef\u6700\u5927\u5bbd\u5ea6 *\/\n            aspect-ratio: 16\/9; \/* \u7edf\u4e00\u6bd4\u4f8b *\/<\/p>\n<p>            position: relative;\n            border-radius: 12px;\n            overflow: hidden;\n            border: 1px solid rgba(0,0,0,0.08);\n            background-color: #f5f5f5;\n            scroll-snap-align: center; \/* \u6eda\u52a8\u505c\u6b62\u65f6\u5c45\u4e2d *\/\n        }<\/p>\n<p>        .media-content {\n            width: 100%;\n            height: 100%;\n            object-fit: cover; \/* \u586b\u5145\u5bb9\u5668 *\/\n            display: block;\n            cursor: pointer;\n        }<\/p>\n<p>        \/* \u89c6\u9891\u6807\u7b7e\u7279\u6b8a\u5904\u7406 *\/\n        video.media-content {\n            background-color: #000;\n            cursor: pointer;\n        }<\/p>\n<p>        \/* \u5982\u679c\u53ea\u67091\u4e2a\u5a92\u4f53\uff0c\u4e0d\u8981\u6eda\u52a8\uff0c\u4e14\u5bbd\u5ea6\u81ea\u9002\u5e94 *\/\n        .media-gallery.single-item .media-item-wrapper {\n            width: 100%;\n            max-width: 100%;\n        }<\/p>\n<p>        \/* --- 3. \u63cf\u8ff0\u4e0e\u6807\u7b7e --- *\/\n        .one-liner {\n            font-size: 18px;\n            color: var(--text-secondary);\n            margin-bottom: 12px;\n            font-weight: 500;\n        }<\/p>\n<p>        .tags-container {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 8px;\n            margin-bottom: 24px;\n        }<\/p>\n<p>        .tag {\n            font-size: 12px;\n            color: var(--text-secondary);\n            background-color: #F2F2F2;\n            padding: 4px 10px;\n            border-radius: 20px;\n            font-weight: 600;\n            text-transform: uppercase;\n        }<\/p>\n<p>        \/* --- 4. AI \u6458\u8981\u533a --- *\/\n        .ai-section {\n            background-color: var(--bg-ai);\n            border-radius: 12px;\n            padding: 20px;\n            margin-bottom: 20px;\n            border-left: 4px solid var(--ph-orange);\n        }<\/p>\n<p>        .ai-title {\n            font-size: 14px;\n            font-weight: 700;\n            color: var(--text-main);\n            margin: 0 0 12px 0;\n            display: flex;\n            align-items: center;\n            gap: 6px;\n        }<\/p>\n<p>        .ai-content {\n            font-size: 15px;\n            color: #333;\n            margin-bottom: 0;\n            line-height: 1.7;\n        }<\/p>\n<p>        \/* --- 5. \u8bc4\u8bba\u533a --- *\/\n        .reviews-section {\n            margin-top: 10px;\n        }<\/p>\n<p>        .review-item {\n            display: flex;\n            gap: 10px;\n            margin-bottom: 12px;\n            font-size: 14px;\n        }<\/p>\n<p>        .review-avatar {\n            font-size: 18px;\n            margin-top: 2px;\n            min-width: 24px;\n        }<\/p>\n<p>        .review-bubble {\n            background: #fff;\n            border: 1px solid var(--border-color);\n            padding: 8px 12px;\n            border-radius: 0 12px 12px 12px;\n            color: var(--text-secondary);\n            line-height: 1.5;\n        }<\/p>\n<p>        .review-author {\n            font-weight: 700;\n            color: var(--text-main);\n            margin-right: 4px;\n            font-style: normal;\n        }<\/p>\n<p>        .comments-section {\n            margin-top: 30px;\n            border-top: 1px solid var(--border-color);\n            padding-top: 20px;\n        }<\/p>\n<p>        .comments-toggle {\n            background-color: #f8f9fa;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 12px 20px;\n            cursor: pointer;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            width: 100%;\n            font-size: 14px;\n            font-weight: 600;\n            color: var(--text-main);\n            transition: all 0.3s ease;\n        }<\/p>\n<p>        .comments-toggle:hover {\n            background-color: #e9ecef;\n        }<\/p>\n<p>        .comments-toggle .toggle-arrow {\n            font-size: 18px;\n            transition: transform 0.3s ease;\n        }<\/p>\n<p>        .comments-toggle.open .toggle-arrow {\n            transform: rotate(180deg);\n        }<\/p>\n<p>        .comments-container {\n            max-height: 0;\n            overflow: hidden;\n            transition: max-height 0.5s ease;\n            margin-top: 15px;\n        }<\/p>\n<p>        .comments-container.open {\n            max-height: 800px;\n            overflow: auto;\n        }<\/p>\n<p>        .comment-item {\n            background-color: #fff;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 16px;\n            margin-bottom: 12px;\n            font-size: 14px;\n        }<\/p>\n<p>        .comment-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: flex-start;\n            margin-bottom: 8px;\n        }<\/p>\n<p>        .comment-author {\n            font-weight: 600;\n            color: var(--text-main);\n            margin-right: 8px;\n        }<\/p>\n<p>        .comment-content {\n            color: var(--text-secondary);\n            line-height: 1.5;\n            margin-bottom: 10px;\n            word-break: break-word;\n            word-wrap: break-word;\n            overflow-wrap: anywhere;\n            white-space: normal;\n        }<\/p>\n<p>        .comment-content p {\n            margin: 0;\n            word-break: break-word;\n            word-wrap: break-word;\n            overflow-wrap: anywhere;\n            white-space: normal;\n        }<\/p>\n<p>        \/* \u4f18\u5316\u8868\u60c5\u7b26\u53f7\u663e\u793a *\/\n       .emoji {\n            display: inline;\n            max-width: 15px;\n            overflow-wrap: normal;\n        }<\/p>\n<p>        .comment-actions {\n            display: flex;\n            align-items: center;\n            gap: 16px;\n            font-size: 12px;\n            color: var(--text-secondary);\n        }<\/p>\n<p>        .comment-vote {\n            display: flex;\n            align-items: center;\n            gap: 4px;\n            cursor: pointer;\n        }<\/p>\n<p>        .comment-replies {\n            margin-top: 12px;\n            margin-left: 20px;\n            padding-left: 12px;\n            border-left: 2px solid var(--border-color);\n        }<\/p>\n<p>        .reply-item {\n            background-color: #f8f9fa;\n            border: 1px solid var(--border-color);\n            border-radius: 6px;\n            padding: 12px;\n            margin-bottom: 8px;\n            font-size: 13px;\n        }<\/p>\n<p>        .reply-content {\n            color: var(--text-secondary);\n            line-height: 1.4;\n            margin-bottom: 6px;\n        }<\/p>\n<p>        \/* --- \u54cd\u5e94\u5f0f\u5fae\u8c03 --- *\/\n        @media (min-width: 600px) {\n            .media-item-wrapper {\n                width: 60%; \/* \u684c\u9762\u7aef\u7a0d\u5fae\u7a84\u4e00\u70b9\uff0c\u5c55\u793a\u66f4\u591a\u5f20 *\/\n                scroll-snap-align: start; \/* \u684c\u9762\u7aef\u9760\u5de6\u5bf9\u9f50 *\/\n            }\n        }<\/p>\n<p>        \/* \u79fb\u52a8\u8bbe\u5907\u54cd\u5e94\u5f0f\u4f18\u5316 *\/\n        @media (max-width: 599px) {\n            \/* \u6a21\u6001\u6846\u4f18\u5316 *\/\n            .modal-content {\n                max-width: 95%;\n                max-height: 85vh;\n                margin: 10vh auto;\n            }<\/p>\n<p>            .close {\n                top: 10px;\n                right: 20px;\n                font-size: 30px;\n                \/* \u589e\u5927\u70b9\u51fb\u533a\u57df *\/\n                padding: 15px;\n            }<\/p>\n<p>            \/* \u89c6\u9891\u64ad\u653e\u56fe\u6807\u4f18\u5316 *\/\n            .play-icon {\n                width: 60px;\n                height: 60px;\n                font-size: 18px;\n            }<\/p>\n<p>            \/* \u786e\u4fdd\u5a92\u4f53\u5185\u5bb9\u5728\u5c0f\u5c4f\u5e55\u4e0a\u6b63\u786e\u663e\u793a *\/\n            .media-content {\n                object-fit: cover;\n            }\n        }<\/p>\n<p>        \/* --- \u56fe\u7247\u653e\u5927\u6a21\u6001\u6846\u6837\u5f0f --- *\/\n        .modal {\n            display: none;\n            position: fixed;\n            z-index: 1000;\n            left: 0;\n            top: 0;\n            width: 100%;\n            height: 100%;\n            background-color: rgba(0, 0, 0, 0.9);\n            overflow: auto;\n            transition: opacity 0.3s ease;\n        }<\/p>\n<p>        .modal-content {\n            display: block;\n            max-width: 90%;\n            max-height: 90vh;\n            margin: 5vh auto;\n            object-fit: contain;\n            animation: zoom 0.3s;\n        }<\/p>\n<p>        @keyframes zoom {\n            from {transform: scale(0.8); opacity: 0;}\n            to {transform: scale(1); opacity: 1;}\n        }<\/p>\n<p>        .close {\n            position: absolute;\n            top: 20px;\n            right: 35px;\n            color: #fff;\n            font-size: 40px;\n            font-weight: bold;\n            transition: 0.3s;\n            cursor: pointer;\n            \/* \u6dfb\u52a0\u89e6\u63a7\u4f18\u5316 *\/\n            padding: 10px;\n            line-height: 1;\n            user-select: none;\n            -webkit-user-select: none;\n        }<\/p>\n<p>        .close:hover,\n        .close:focus {\n            color: #bbb;\n            text-decoration: none;\n        }<\/p>\n<p>        \/* \u89c6\u9891\u70b9\u51fb\u63d0\u793a\u6837\u5f0f *\/\n        .video-overlay {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            background-color: rgba(0, 0, 0, 0.2);\n            opacity: 0;\n            transition: opacity 0.3s ease;\n            \/* \u89e6\u63a7\u4f18\u5316 *\/\n            touch-action: manipulation;\n            cursor: pointer;\n        }<\/p>\n<p>        .media-item-wrapper:hover .video-overlay {\n            opacity: 1;\n        }<\/p>\n<p>        \/* \u4e3a\u89e6\u6478\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u6548\u679c *\/\n        .media-item-wrapper:active .video-overlay {\n            opacity: 0.8;\n        }<\/p>\n<p>        .play-icon {\n            width: 80px;\n            height: 80px;\n            background-color: rgba(255, 255, 255, 0.9);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            color: var(--ph-orange);\n            font-size: 24px;\n            font-weight: bold;\n            \/* \u89e6\u63a7\u4f18\u5316 *\/\n            user-select: none;\n            -webkit-user-select: none;\n        }<\/p>\n<p>        \/* --- \u54cd\u5e94\u5f0f\u5fae\u8c03 --- *\/\n        @media (min-width: 600px) {\n            .media-item-wrapper {\n                width: 60%; \/* \u684c\u9762\u7aef\u7a0d\u5fae\u7a84\u4e00\u70b9\uff0c\u5c55\u793a\u66f4\u591a\u5f20 *\/\n                scroll-snap-align: start; \/* \u684c\u9762\u7aef\u9760\u5de6\u5bf9\u9f50 *\/\n            }\n        }<\/p>\n<p>        \/* \u79fb\u52a8\u8bbe\u5907\u54cd\u5e94\u5f0f\u4f18\u5316 *\/\n        @media (max-width: 599px) {\n            \/* \u6a21\u6001\u6846\u4f18\u5316 *\/\n            .modal-content {\n                max-width: 95%;\n                max-height: 85vh;\n                margin: 10vh auto;\n            }<\/p>\n<p>            .close {\n                top: 10px;\n                right: 20px;\n                font-size: 30px;\n                \/* \u589e\u5927\u70b9\u51fb\u533a\u57df *\/\n                padding: 15px;\n            }<\/p>\n<p>            \/* \u89c6\u9891\u64ad\u653e\u56fe\u6807\u4f18\u5316 *\/\n            .play-icon {\n                width: 60px;\n                height: 60px;\n                font-size: 18px;\n            }<\/p>\n<p>            \/* \u786e\u4fdd\u5a92\u4f53\u5185\u5bb9\u5728\u5c0f\u5c4f\u5e55\u4e0a\u6b63\u786e\u663e\u793a *\/\n            .media-content {\n                object-fit: cover;\n            }\n        }\n    <\/style>\n<p><\/head><br \/>\n<body><\/p>\n<div class=\"container\">\n<h1 style=\"text-align:center; margin-bottom:40px; font-weight:900;\">PH\u70ed\u699c | 2026-08-03<\/h1>\n<p>    <!-- \u5c55\u793aapp\u5361\u7247 --><\/p>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#1<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/VKQBZ233EK3JBM\" class=\"app-title\">AgentSky<\/a><\/p>\n<div class=\"one-liner\">Any harness, any LLM \u2014 cloud-hosted agents on demand.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">392<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>AgentSky \u662f\u4e00\u4e2a\u6258\u7ba1\u7684\u667a\u80fd\u4f53\u5e73\u53f0\uff0c\u8ba9\u4f60\u901a\u8fc7\u4e00\u952e\u70b9\u51fb\u6216CLI\uff0c\u5728\u4e91\u7aef\u6c99\u7bb1\u4e2d\u542f\u52a8Claude Code\u3001Codex\u7b49\u957f\u65f6\u8fd0\u884cAI\u4ee3\u7406\uff0c\u5e76\u7edf\u4e00\u63a5\u5165WhatsApp\u3001Slack\u3001Web\u7b49\u6e20\u9053\uff0c\u89e3\u51b3\u81ea\u5efa\u4ee3\u7406\u57fa\u7840\u8bbe\u65bd\u590d\u6742\u3001\u96be\u4ee5\u8de8\u6e20\u9053\u6301\u7eed\u8fd0\u884c\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6dd00586-2463-4cd6-8e7c-07854bb731de.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/00e63dda-ca67-4e28-b504-07f2a92fb863.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4f8a912d-cb52-499d-8c7f-b083426ae06f.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c213e148-f92c-499e-8dd8-05635dac86fe.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8dc8ad3b-8e28-4a7a-99e0-5f35e4175f6f.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b534f5fc-606f-4bb3-83a8-e7e3535a9a5d.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/037dc7d9-fb20-4842-8a15-13eb15566de1.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=ned-LxxyUG4\"><source src=\"https:\/\/www.youtube.com\/watch?v=ned-LxxyUG4\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">SaaS<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u4ee3\u7406\u6258\u7ba1<\/span><br \/>\n            <span class=\"tag\">MaaS(\u667a\u80fd\u4f53\u5373\u670d\u52a1)<\/span><br \/>\n            <span class=\"tag\">\u4e91\u7aef\u6c99\u7bb1<\/span><br \/>\n            <span class=\"tag\">\u591a\u6a21\u578b\u63a5\u5165<\/span><br \/>\n            <span class=\"tag\">\u591a\u6e20\u9053\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u957f\u65f6\u4efb\u52a1<\/span><br \/>\n            <span class=\"tag\">\u65e0\u670d\u52a1\u5668\u8ba1\u8d39<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u57fa\u7840\u8bbe\u65bd\u5373\u670d\u52a1<\/span><br \/>\n            <span class=\"tag\">\u5bf9\u8bdd\u5f0fAI<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u4ec5\u6309\u8fd0\u884c\u65f6\u957f\u8ba1\u8d39\u201d\u548c\u8de8\u6e20\u9053\u5171\u4eab\u4e0a\u4e0b\u6587\u7684\u529f\u80fd\uff0c\u8ba4\u4e3a\u8fd9\u662f\u5b9e\u7528\u521b\u65b0\u3002\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u4e8e\uff1a\u6b7b\u5bc2\u4ee3\u7406\u4e0e\u7a7a\u95f2\u4ee3\u7406\u7684\u533a\u5206\uff08\u5065\u5eb7\u68c0\u67e5\u673a\u5236\uff09\u3001\u72b6\u6001\u5feb\u7167\u6062\u590d\u65f6\u5916\u90e8\u526f\u4f5c\u7528\uff08\u5982\u5df2\u53d1\u9001\u6d88\u606f\uff09\u7684\u91cd\u653e\u98ce\u9669\u3001\u4ee5\u53ca\u591a\u7528\u6237\u5e76\u53d1\u65f6\u6c99\u7bb1\u7684\u5b89\u5168\u4e0e\u5f39\u6027\u6269\u5c55\u80fd\u529b\u3002\u4e5f\u6709\u7528\u6237\u5efa\u8bae\u8865\u5145\u66f4\u591a\u771f\u5b9e\u6848\u4f8b\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                AgentSky\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u5b83\u6ca1\u6709\u8bd5\u56fe\u518d\u9020\u4e00\u4e2a\u66f4\u806a\u660e\u7684\u201c\u5927\u8111\u201d\uff0c\u800c\u662f\u9009\u62e9\u53bb\u505a\u201c\u795e\u7ecf\u7cfb\u7edf\u201d\u548c\u201c\u751f\u547d\u7ef4\u6301\u7cfb\u7edf\u201d\u2014\u2014\u8fd9\u6070\u597d\u662f\u5f53\u524dAI\u4ee3\u7406\u4eceDemo\u8d70\u5411\u751f\u4ea7\u73af\u5883\u65f6\u6700\u80ae\u810f\u3001\u6700\u8d39\u529b\u4e0d\u8ba8\u597d\u7684\u73af\u8282\u3002\u5b83\u628a\u5f02\u6784Harness\uff08Claude Code\u3001Codex\u7b49\uff09\u3001\u591a\u6a21\u578b\u5207\u6362\u3001\u72b6\u6001\u6301\u4e45\u5316\u3001\u8de8\u6e20\u9053\u6d88\u606f\u8def\u7531\u6253\u5305\u6210\u4e00\u79cd\u201c\u57fa\u7840\u8bbe\u65bd\u201d\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u62bc\u6ce8\u4e00\u4e2a\u8d8b\u52bf\uff1a\u672a\u6765\u7684AI\u7ade\u4e89\u4e0d\u5728\u6a21\u578b\u5c42\uff0c\u800c\u5728\u7f16\u6392\u4e0e\u53ef\u9760\u6027\u5c42\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u53cd\u9988\u770b\uff0c\u5b83\u786e\u5b9e\u6233\u4e2d\u4e86\u5f00\u53d1\u8005\u7684\u75db\u70b9\uff0c\u5c24\u5176\u662f\u201c\u6682\u505c\/\u6062\u590d\u201d\u8ba1\u8d39\u6a21\u5f0f\u548c\u8de8IM\u7684\u8fde\u7eed\u5bf9\u8bdd\uff0c\u8fd9\u6bd4\u5355\u7eaf\u5356API Key\u66f4\u5177\u5438\u5f15\u529b\u3002\u7136\u800c\uff0c\u8bc4\u8bba\u533a\u4e2d\u521b\u59cb\u4eba\u5766\u8bda\u627f\u8ba4\u201c\u72b6\u6001\u6062\u590d\u662f\u5c3d\u529b\u800c\u4e3a\uff0c\u65e0\u6cd5\u907f\u514d\u7ade\u6001\u6761\u4ef6\u201d\uff0c\u8fd9\u66b4\u9732\u4e86\u4ea7\u54c1\u76ee\u524d\u7684\u5e95\u7ebf\uff1a\u5b83\u89e3\u51b3\u7684\u662f95%\u7684\u5e38\u89c4\u573a\u666f\uff0c\u4f46\u5bf9\u91d1\u878d\u3001\u533b\u7597\u7b49\u9700\u8981\u5f3a\u4e8b\u52a1\u4fdd\u8bc1\u7684\u573a\u666f\u7f3a\u4e4f\u8bf4\u670d\u529b\u3002\u6b64\u5916\uff0c\u8de8\u6e20\u9053\u7684\u201c\u540c\u4e00\u8bb0\u5fc6\u201d\u867d\u7136\u9177\u70ab\uff0c\u5374\u4e5f\u653e\u5927\u4e86\u5e42\u7b49\u6027\u95ee\u9898\u2014\u2014\u5982\u679c\u5feb\u7167\u6062\u590d\u5230\u53d1\u9001\u6d88\u606f\u4e4b\u524d\uff0c\u7528\u6237\u53ef\u80fd\u6536\u5230\u91cd\u590d\u7684WhatsApp\u901a\u77e5\u3002\u8fd9\u662f\u4e00\u4e2a\u4ecb\u4e8e\u201c\u57fa\u7840\u8bbe\u65bd\u201d\u548c\u201c\u5e94\u7528\u5c42\u201d\u4e4b\u95f4\u7684\u7070\u8272\u5730\u5e26\uff0cAgentSky\u8bd5\u56fe\u5c06\u5176\u5c01\u88c5\uff0c\u4f46\u6700\u7ec8\u8d23\u4efb\u53ef\u80fd\u8fd8\u662f\u4f1a\u843d\u5230\u5f00\u53d1\u8005\u5934\u4e0a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cAgentSky\u5728\u201c\u8ba9\u4ee3\u7406\u6d3b\u4e0b\u6765\u201d\u8fd9\u4e2a\u7ef4\u5ea6\u4e0a\u63d0\u4f9b\u4e86\u6709\u4ef7\u503c\u4e14\u5b9a\u4ef7\u5408\u7406\u7684\u670d\u52a1\uff0c10K+\u4f1a\u8bdd\u7684\u5b9e\u6218\u6570\u636e\u4e5f\u4e3a\u5176\u589e\u52a0\u4e86\u53ef\u4fe1\u5ea6\u3002\u4f46\u5b83\u76ee\u524d\u7684\u62a4\u57ce\u6cb3\u5e76\u975e\u6280\u672f\u58c1\u5792\uff0c\u800c\u662f\u5bf9\u5f00\u53d1\u8005\u4f53\u9a8c\u7684\u6574\u5408\u6df1\u5ea6\u3002\u968f\u7740AWS\u7b49\u5de8\u5934\u63a8\u51fa\u7c7b\u4f3c\u7ec4\u4ef6\uff0c\u8fd9\u79cd\u72ec\u7acb\u4e2d\u95f4\u5c42\u7684\u751f\u5b58\u7a7a\u95f4\u5c06\u53d6\u51b3\u4e8e\u5b83\u80fd\u5426\u5728\u4e8b\u52a1\u6027\u3001\u53ef\u89c2\u6d4b\u6027\u4e0a\u5efa\u7acb\u771f\u6b63\u7684\u6807\u51c6\uff0c\u800c\u4e0d\u662f\u4ec5\u4ec5\u505a\u4e00\u4e2a\u201c\u4e07\u80fd\u9002\u914d\u5668\u201d\u3002\u5728\u6a21\u578b\u5feb\u901f\u8fed\u4ee3\u7684\u5f53\u4e0b\uff0c\u8fd9\u79cd\u201c\u5356\u94f2\u5b50\u201d\u7684\u903b\u8f91\u662f\u7a33\u59a5\u7684\uff0c\u4f46\u94f2\u5b50\u9700\u8981\u8db3\u591f\u575a\u786c\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">AgentSky<\/span>\n                <\/div>\n<div class=\"comment-content\">Managed agent as a service: launch a long-horizon AI agent in one click \u2014 Claude Code, Codex, Hermes, or OpenClaw \u2014 with full history, managed recovery, and access through WhatsApp, iMessage, Telegram, Slack, web, API developers, and CLI.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt! \ud83d\udc4b<\/p>\n<\/p>\n<p>I built AgentSky because production-ready AI agents require far more infrastructure than most people expect. The idea came from building <a href=\"https:\/\/tycoon.us\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">tycoon.us<\/a>, where we ran into the same challenges: testing multiple harness\/LLM combinations (let alone harness version updates \ud83d\ude31), fast &amp; secure sandboxes, surviving restarts, and connecting them to every channel users expect.<\/p>\n<\/p>\n<p>AgentSky does that plumbing for you. Pick a harness \u2014 Claude Code, Codex, Hermes, or OpenClaw \u2014 pick a model, and launch in one click, or a CLI command. Your agent runs always-on in its own cloud sandbox with full history, artifacts persistence, state snapshots, backup and restore.<\/p>\n<\/p>\n<p>It&#8217;s reachable wherever your users already are \u2014 WhatsApp, iMessage, Telegram, Slack, web, CLI, or our developer API&#8217;s. Same protocol, same memory, every harness, every channel.<\/p>\n<\/p>\n<p>Already battle-tested in production, AgentSky powers <a href=\"https:\/\/tycoon.us\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">tycoon.us<\/a>, where it has handled over 10K+ agent sessions.<\/p>\n<\/p>\n<p>Parking an agent is free \u2014 you only pay when it&#8217;s actively working.<\/p>\n<\/p>\n<p>Would love your feedback, especially on which runtimes and channels you&#8217;d want next!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>12<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@darren_y_lu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@darren_y_lu<\/a>&nbsp;I have a feeling this is going to resonate with a lot of builders. <\/p>\n<\/p>\n<p>What caught my attention is that AgentSky isn&#8217;t trying to build another agent\u2014it&#8217;s building the infrastructure that lets agents actually survive in production. That&#8217;s a much less glamorous problem, but probably the one that determines whether an AI product scales or falls apart after the demo.<\/p>\n<\/p>\n<p>I also like the flexibility of mixing different harnesses, models, and communication channels. It keeps developers from betting everything on a single ecosystem, which feels like a smart long-term decision in how quickly this space is evolving.<\/p>\n<\/p>\n<p>The fact that you&#8217;ve already battle-tested it with 10K+ sessions on tycoon.us also gives the product a lot more credibility than infrastructure built only in theory.<\/p>\n<p>Here&#8217;s what I&#8217;m most curious about: after running thousands of real agent sessions, what has been the biggest bottleneck? Is it the models themselves, the surrounding infrastructure, or simply getting users to trust an agent enough to let it work independently? I&#8217;m looking forward to seeing how AgentSky evolves from here. \ud83d\udc4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@darren_y_lu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@darren_y_lu<\/a>&nbsp;keeping the same memory across WhatsApp, Slack, and the CLI sounds useful<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@darren_y_lu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@darren_y_lu<\/a>&nbsp;Congrats on the launch Darren! Any tool that strives to reach people where they are is a win, thank you &#8220;WhatsApp, iMessage, Telegram, Slack, web, CLI&#8221;<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Suspend and resume is the interesting part, and I think it has a blind spot worth designing for now rather than later.<\/p>\n<\/p>\n<p>If parking is free and I only pay while the agent is working, then an agent that has quietly stopped working costs me nothing. Which is lovely, right up until a dead agent and a cheap month look identical on the invoice. For long horizon work the bill has historically been the thing that told people something had gone wrong, and this pricing removes that signal on purpose.<\/p>\n<\/p>\n<p>From outside, a suspended agent, a finished agent, and one that crashed and never resumed all present the same way. No activity, no cost, nothing in the channel. So what tells the operator which of the three they have? What I would want is for a long horizon agent to declare an expected cadence when it launches, so the platform can say this one should have woken by now and has not, instead of leaving silence to mean whatever the reader assumes it means.<\/p>\n<\/p>\n<p>Second one, and it falls out of snapshots combined with messaging channels. If you snapshot state and restore it, what happens when the snapshot was taken partway through an external side effect? An agent restored to a point just before it sent a WhatsApp message cannot tell whether that message went. Redoing it and skipping it are both wrong, and only one of those is visible to the person on the other end, who receives it twice.<\/p>\n<\/p>\n<p>Do side effects get recorded outside the snapshot, so a resumed agent knows what already left the building?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>6<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dalemooney\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dalemooney<\/a>&nbsp;Great questions!<\/p>\n<p>1. Dead vs idle. Crashed agents fail health check, while idle agents mean that it is healthy but no request incoming to handle. Btw, we have built-in health check for agents.<br \/>2. Our state restoring is best effort based, it cannot prevent race condition, but it would at least make the agent remember partially (usually the latest conversation). <\/p>\n<p>What you brought up is very meaningful and sophisticated. I also believe that each product may have different opinions on these behaviors.  <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the pay-only-when-working model, that&#8217;s a smart pricing call. <br \/>Curious how you&#8217;re handling security across sandboxes when agents are running always-on like that?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@abod_rehman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abod_rehman<\/a>&nbsp;Great question! The agents are not always on in AgentSky, they suspend\/resume base on work load. The sandboxes are based on MicroVM so that it is secure by standard and also fast to boot. Is there any particular security concern your product may care about? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is exactly the kind of infra headache people underestimate until they hit it. <br \/>How long did it take you to get restart working reliably across different harnesses?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@boyuan_deng1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@boyuan_deng1<\/a>&nbsp;We dealt with these challenges for months, going back and forth on infrastructure. Eventually we realized this is a problem that deserves its own platform\u2014not something every product team should have to solve from scratch. Do you think this would save your time if you were to build agent product? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>congratulations!<strong> <\/strong>can agents communicate with users across multiple channels simultaneously? for example, could an agent start on Slack and continue the same conversation on WhatsApp?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@daniel_harris11\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@daniel_harris11<\/a>&nbsp;<br \/>&gt; could an agent start on Slack and continue the same conversation on WhatsApp?<\/p>\n<p>Yes, that is what we do. Internally AgentSky agent handle all channels uniformly. This is the magic that it can maintain continuous context among channels. This is a feature we needed at our own agent product before, so that we built it. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I like that AgentSky puts different models and agent tools in one place. It could save a lot of time when testing ideas, especially for people who don\u2019t want to set up everything themselves. I\u2019d still like to see more real examples before using it for a bigger project.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@letitia00\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@letitia00<\/a>&nbsp;Thanks! Yes, quickly experimenting across different harness\/LLM combinations was one of our pain points in the past, that is why we think others may need this too. We have hosted more than 10k agent sessions already in real products. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats Darren! The channels part is what sells it for me. I correct my coding agent from the phone mid-run all the time, and that flow is usually held together with duct tape. Curious: when a WhatsApp message lands while the agent is mid-task, does it interrupt the run or queue until the current step finishes?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@artem_t\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artem_t<\/a>&nbsp;Thank you! For now, we support 2 modes, please check out <a href=\"https:\/\/agentsky.dev\/docs\/api\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/agentsky.dev\/docs\/api<\/a><\/p>\n<ol>\n<li>\n<p>you may request interrupt + another input message (interrupt first, then handle the new message)<\/p>\n<\/li>\n<li>\n<p>you may just send another input message which will be queued <\/p>\n<\/li>\n<\/ol>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations on the launch!<br \/>I like the idea and after reading comments i like that context is shared between agents and channels as well as you don&#8217;t pay if the agent is not used. I would like to try it next dayse with with some of my tasks.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@nkrasko\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nkrasko<\/a>&nbsp;Thanks! Please feel free to join our discord (from landing page) and let me know if you need support <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Saying state restore is best effort and cannot prevent a race condition is rare on a launch day. You mentioned wanting idempotent agent replies in your own layer. Where do you think that line sits between the infra and the product on top, Darren?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@lucasjpols\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lucasjpols<\/a>&nbsp;Appreciate the feedback! An analogy I would use is DB backup\/restore, there would be no guarantee on a perfect restore with absolute no loss of rows. For most product user cases, I do feel this is sufficient, considering that agent crash should not be a high frequent event. We are still trying to put more common product concerns into our infra layer, while still let developers to keep their own part. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Reaching a long running agent from WhatsApp or iMessage instead of yet another dashboard feels like how normal people would actually use this. Congrats Darren, the 10,000 plus sessions on <a href=\"http:\/\/tycoon.us\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">tycoon.us<\/a> before launching is reassuring too. What does recovery look like when an agent goes sideways, can I roll back to any earlier snapshot?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@doganakbulut\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@doganakbulut<\/a>&nbsp;Yes, that is what we do for developers automatically, if crash happens, restoring from snapshot will happen immediately. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Can AgentSky automatically scale when multiple users start interacting with the same agent? how do you handle sudden spikes in agent sessions?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@dylan_russell\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dylan_russell<\/a>&nbsp;<\/p>\n<blockquote>\n<p>Can AgentSky automatically scale when multiple users start interacting with the same agent?<\/p>\n<\/blockquote>\n<p>multiple users get their own sessions with same agent (same MDs, same skills, same capabilities)<\/p>\n<blockquote>\n<p>how do you handle sudden spikes in agent sessions?<\/p>\n<\/blockquote>\n<p>Under the hood, we have an elastic sandbox infra which can handle new agent sandbox requests on demand.<\/p>\n<p><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>If you had to recommend one harness for someone building their first long-running agent, which one would you suggest, and why? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@samra_habib1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@samra_habib1<\/a>&nbsp;I would suggest Hermes for maximum compatibility of open weight models and no vendor lock-in. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>congrats!<strong> <\/strong>can developers choose different LLM models for the same harness? how quickly can you switch models without changing the agent configuration?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@carter_garcia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@carter_garcia<\/a>&nbsp;Thanks!<\/p>\n<blockquote>\n<p>can developers choose different LLM models for the same harness?<\/p>\n<\/blockquote>\n<p>Yes, for compatible ones.<\/p>\n<\/p>\n<blockquote>\n<p>how quickly can you switch models without changing the agent configuration<\/p>\n<\/blockquote>\n<p>Switching models is considered changing agent configuration. It takes about ~5 sec to deploy the new change. <\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I like that agents stay available across WhatsApp, Slack, and the web. Meeting users where they already work makes a lot of sense.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@daniel_henry4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@daniel_henry4<\/a>&nbsp;Yes, we spent a lot of time figuring out channels. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>what runtime or channel are you most excited to add next? are you prioritizing integrations based on community requests or technical demand?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@colton_drake\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@colton_drake<\/a>&nbsp;I think we&#8217;re aligned with the trend toward open-weight frontier models, where we&#8217;re seeing growing demand. Over time, we&#8217;d like to support as many stable harnesses and models as possible.<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! <strong><br \/><\/strong>What does the developer API expose compared with the CLI? can teams programmatically create, pause, resume and manage agents?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@easton_carter\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@easton_carter<\/a>&nbsp;Thanks! Our developer API is basically feature parity to CLI. We gave both options just for convenience, sometimes CLI is a bit more favorable for quick test\/demo. For developers, they can use either our REST API or CLI to automate the AgentSky fleet management. Quick start <a href=\"https:\/\/agentsky.dev\/docs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/agentsky.dev\/docs<\/a><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>how does AgentSky handle failed or partially completed tasks? can an agent resume from its previous state instead of starting over?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@luz_bidelspach\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@luz_bidelspach<\/a>&nbsp;AgentSky does recover into latest state from crash. We do not &#8220;starting over&#8221; any tasks when agent recovers from context backup. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>congrats!<strong> <\/strong>can one agent use different models depending on the task it is performing? for example could it use a cheaper model for simple tasks and a stronger one for complex reasoning?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@olivia_bennett7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@olivia_bennett7<\/a>&nbsp;Thanks! AgentSky does not support harness\/model routing, but it is indeed on our roadmap. Do you have any suggestions on what routing framework we should look into? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The biggest challenge I see with multi-channel agents is maintaining context. If someone asks a technical question in a community forum today and follows up with the same issue in a private chat tomorrow, how does the agent know it\u2019s the same user and the same problem?<\/p>\n<p>Is the conversation history unified at the agent level, or does each platform maintain its own separate memory?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@new_user___140202597473f65134ed0cb\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@new_user___140202597473f65134ed0cb<\/a>&nbsp;Great question. In AgentSky, conversation history is unified at agent instance level, so yeah it is agent level, not per channel. We designed the system so that a single agent can talk to multiple channels at the same time. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The multi-channel consistency is the part I want to understand better. If a user starts a thread on Telegram and then messages from Slack the next day, does the agent see a single unified conversation or two separate sessions? For developer communities I manage, people switch channels constantly and that is usually where context breaks happen.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@hazy0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hazy0<\/a>&nbsp;Great question. In AgentSky, a single agent session can be shared on multiple channels, but it will only reply to the channel where request was sent. And the session context are all shared for same agent session. We designed specifically for cross-channel smooth experience. Do you think this behavior is the common denominator for most products?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>how does pricing work when an agent is parked but still maintaining its state? is there any cost for storage, snapshots or backups while it is inactive?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@rivendell_chorro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rivendell_chorro<\/a>&nbsp;We use a ultra low cost solution for parked agent state. So there will be hot restore and cold restore based on the agent activeness. There will be cost for storage in general, as long as the agent had created artifacts that is in ours system. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch!<strong> \ud83d\udc4f<br \/><\/strong>How does AgentSky handle failed or partially completed tasks? can an agent resume from its previous state instead of starting over?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@fletcher_oliver\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fletcher_oliver<\/a>&nbsp;Thanks! We snapshot context sessions while agent is running. If an agent crashed, it will resume from previous snapshot, not starting over.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The cross-platform memory is the part I\u2019m most curious about. If a user starts debugging a problem through Discord, then continues the conversation through email or a support portal later, does the agent maintain the same context and history, or does each channel create an isolated session?<\/p>\n<p>For developer communities, users rarely stay on one platform, so I\u2019m wondering how agents handle context continuity when conversations move across different channels.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@new_user___176202668afdbb135b4f71f\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@new_user___176202668afdbb135b4f71f<\/a>&nbsp;<br \/>&gt; If a user starts debugging a problem through Discord, then continues the conversation through email or a support portal later,<\/p>\n<p>The conversation will be continuous for AgentSky agents. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#2<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/YYAIX2KMA2K36Z\" class=\"app-title\">Ctruh Studio<\/a><\/p>\n<div class=\"one-liner\">Create interactive 3D and XR experiences without coding<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">360<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Ctruh Studio\u662f\u4e00\u4e2aAI\u9a71\u52a8\u7684\u65e0\u4ee3\u7801\u5e73\u53f0\uff0c\u8ba9\u7528\u6237\u76f4\u63a5\u5728\u6d4f\u89c8\u5668\u4e2d\u521b\u5efa\u3001\u5b9a\u5236\u5e76\u53d1\u5e03\u4ea4\u4e92\u5f0f3D\u548cXR\u8d2d\u7269\u4f53\u9a8c\uff0c\u5c06\u5e73\u9762\u4ea7\u54c1\u9875\u8f6c\u5316\u4e3a\u53ef\u65cb\u8f6c\u3001\u914d\u7f6e\u548cAR\u8bd5\u7528\u7684\u6c89\u6d78\u5f0f\u573a\u666f\uff0c\u65e0\u9700\u7f16\u7a0b\u6216\u5b89\u88c5\u63d2\u4ef6\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ba339b16-7e7e-47fe-8c68-abe4ab70ad41.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b7f888e1-a2bc-494e-8eba-33100ea43f5b.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2d294a12-a96a-485a-9601-f4802232653b.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3ce87905-7ead-4aff-a4ef-cee6b14072dd.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b3b37976-6a86-4390-b66f-0add10fb865d.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/0e4578d6-3a11-4c93-a594-73c28e36bf26.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/fbcdi0tUVBo\"><source src=\"https:\/\/youtu.be\/fbcdi0tUVBo\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Augmented Reality<\/span><br \/>\n            <span class=\"tag\">No-Code<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u65e0\u4ee3\u78013D\u521b\u4f5c<\/span><br \/>\n            <span class=\"tag\">AI\u8d44\u4ea7\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u589e\u5f3a\u73b0\u5b9e(AR)<\/span><br \/>\n            <span class=\"tag\">\u6c89\u6d78\u5f0f\u7535\u5546<\/span><br \/>\n            <span class=\"tag\">3D\u4ea7\u54c1\u5c55\u793a<\/span><br \/>\n            <span class=\"tag\">\u865a\u62df\u5546\u5e97<\/span><br \/>\n            <span class=\"tag\">\u7f51\u9875XR<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f63D\u6e32\u67d3<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u914d\u7f6e\u5668<\/span><br \/>\n            <span class=\"tag\">\u865a\u62df\u8bd5\u7a7f<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53efAI\u751f\u6210\u6709\u673a\u5f62\u72b6\uff08\u5982\u690d\u7269\uff09\u7684\u80fd\u529b\uff0c\u4ee5\u53ca\u6750\u8d28\u7f16\u8f91\u5668\u5bf9\u9676\u5668\u91c9\u9762\u8d28\u611f\u7684\u8fd8\u539f\u5ea6\u3002\u6838\u5fc3\u75db\u70b9\u96c6\u4e2d\u5728\u6279\u91cf\u7f16\u8f91\u53d8\u4f53\uff08\u5f53\u524d\u4ec5\u652f\u6301\u9010\u4e00\u64cd\u4f5c\uff0c\u5b98\u65b9\u79f0\u5df2\u5217\u5165\u8def\u7ebf\u56fe\uff09\u548c\u79fb\u52a8\u7aef\u6027\u80fd\u4f18\u5316\u4e0a\uff0c\u5b98\u65b9\u56de\u5e94\u79f0\u5df2\u5b9e\u73b0\u8bbe\u5907\u81ea\u9002\u5e94\u53ca8K-16K\u9ad8\u6548\u6d41\u9001\u3002\u65b0\u624b\u7528\u6237\u53cd\u9988\u4e0a\u624b\u5feb\uff0c\u51e0\u5206\u949f\u5185\u5373\u53ef\u521b\u5efa\u8bd5\u7a7f\u4f53\u9a8c\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Ctruh Studio\u7684\u5b9a\u4f4d\u7cbe\u51c6\u5730\u5207\u5165\u4e86\u201c3D\u7535\u5546\u6700\u540e\u4e00\u516c\u91cc\u201d\u7684\u75db\u70b9\u2014\u2014\u8d44\u4ea7\u751f\u4ea7\u4e0e\u5de5\u5177\u94fe\u65ad\u88c2\u3002\u5176\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5e76\u975e\u6d4f\u89c8\u5668\u7aef3D\u5f15\u64ce\uff08WebGL\/WebXR\u5df2\u662f\u6210\u719f\u6280\u672f\uff09\uff0c\u800c\u662f\u201cVersaAI\u201d\u5c06\u6587\u672c\/\u56fe\u7247\u751f\u6210\u53ef\u751f\u4ea7\u7ea73D\u8d44\u4ea7\u7684\u80fd\u529b\uff0c\u8fd9\u76f4\u63a5\u62b9\u5e73\u4e86\u5546\u5bb6\u4ece2D\u7167\u7247\u52303D\u5c55\u793a\u4e4b\u95f4\u6700\u9ad8\u7684\u8f6c\u6362\u95e8\u69db\uff0c\u76f8\u5f53\u4e8e\u4e3a\u7535\u5546\u5e73\u53f0\u9884\u88c5\u4e86\u4e00\u4e2a\u201c\u5185\u5bb9\u751f\u6210\u5668\u201d\u3002\u4ece\u7528\u6237\u53cd\u9988\u770b\uff0c\u6750\u8d28\u8868\u73b0\uff08\u7c97\u7cd9\u5ea6\/\u53cd\u5c04\u7387\uff09\u548c\u6709\u673a\u6a21\u578b\u751f\u6210\u5df2\u88ab\u9a8c\u8bc1\u4e3a\u6709\u6548\u5356\u70b9\uff0c\u8fd9\u6bd4\u7a7a\u8c08\u201c\u6c89\u6d78\u5f0f\u4f53\u9a8c\u201d\u66f4\u6709\u8bf4\u670d\u529b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5fc5\u987b\u6307\u51fa\uff0c\u8bc4\u8bba\u533a\u7684\u201c\u53eb\u597d\u201d\u5b58\u5728\u660e\u663e\u7684\u521b\u59cb\u4eba\u53ca\u56e2\u961f\u81ea\u7b54\u6216\u5b98\u65b9\u4e92\u52a8\u75d5\u8ff9\uff08\u5982\u591a\u6761\u8bc4\u8bba\u7684\u6df1\u5ea6\u56de\u590d\u548c\u5185\u90e8\u89c6\u89d2\u53d1\u8a00\uff09\uff0c\u5176\u771f\u5b9e\u7b2c\u4e09\u65b9\u53e3\u7891\u4ecd\u9700\u89c2\u5bdf\u3002\u4ea7\u54c1\u5207\u5165\u7684\u7535\u5546\u8bbe\u8ba1\u573a\u666f\uff08\u5982\u5bb6\u5177\u4f53\u9a8c\uff09\u867d\u7136\u9ad8\u9891\uff0c\u4f46\u540c\u65f6\u4e5f\u9762\u4e34Shopify AR Quick Look\u7b49\u5e73\u53f0\u539f\u751f\u529f\u80fd\u7684\u7ade\u4e89\u3002\u65e0\u4ee3\u7801\u964d\u4f4e\u4e86\u4f7f\u7528\u95e8\u69db\uff0c\u4f46\u5728\u4f01\u4e1a\u7ea7\u573a\u666f\u4e2d\uff0c\u4e0e\u73b0\u6709CMS\/ERP\u7684\u96c6\u6210\u3001SKU\u6279\u91cf\u7ba1\u7406\uff08\u7528\u6237\u5df2\u53cd\u9988\u6279\u91cf\u7f16\u8f91\u7f3a\u4f4d\uff09\u4ee5\u53ca\u540e\u7eed\u8d44\u4ea7\u7248\u6743\u95ee\u9898\uff0c\u624d\u662f\u51b3\u5b9a\u5176\u80fd\u5426\u4ece\u201c\u4f53\u9a8c\u73a9\u5177\u201d\u5347\u7ea7\u4e3a\u201c\u5546\u4e1a\u57fa\u7840\u8bbe\u65bd\u201d\u7684\u5173\u952e\u3002\u82e5\u6279\u91cf\u7f16\u8f91\u548c\u6a21\u677f\u751f\u6001\u80fd\u6309\u671f\u5151\u73b0\uff0c\u5176\u4e00\u4f53\u5316\u4ef7\u503c\u5c06\u51f8\u663e\uff1b\u5426\u5219\uff0c\u5bb9\u6613\u88ab\u5355\u4e00\u73af\u8282\u7684\u5782\u76f4SaaS\u5de5\u5177\u8695\u98df\u5e02\u573a\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Ctruh Studio<\/span>\n                <\/div>\n<div class=\"comment-content\">Ctruh Studio is an AI-powered no-code platform that lets anyone create, customise and publish interactive 3D experiences for websites. Generate 3D assets with AI, build immersive product showcases, virtual stores, configurators and AR experiences directly in your browser.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt \ud83d\udc4b Sharun here, Director of GTM at Ctruh, posting on behalf of our founder &amp; CEO Vinay (he&#8217;ll be here through the day too).<\/p>\n<p>The problem: online shopping is still stuck in 2D.<br \/>\nPeople spend real money on products they&#8217;ve only seen as flat photos, so they hesitate, buy the wrong thing, and send it back.<\/p>\n<p>The fix, letting shoppers see, configure, and try before buying, has always meant hiring developers, stitching five vendors together, and waiting weeks. Most brands want immersive experiences. Almost none can justify the cost.<\/p>\n<p>Studio by Ctruh is our answer: an all-in-one, browser-native platform for building immersive 3D, XR &amp; AI shopping experiences, with no code, no plugins, no downloads.<\/p>\n<p>It turns flat product pages into experiences customers can explore, configure, and try on, all from a single link:<\/p>\n<p>&#8211; VersaAI turns text or an image into a production-ready 3D model in minutes<br \/>\n&#8211; 3D visualizers let shoppers rotate, zoom, and inspect from every angle<br \/>\n&#8211; Virtual try-on &amp; AR place products in a customer&#8217;s space, or on themselves<br \/>\n&#8211; Configurators switch colors, materials, and variants<br \/>\n&#8211; Virtual storefronts build immersive shopping environments, no code<\/p>\n<p>Why Ctruh over the tools that already exist? Three reasons:<\/p>\n<p>&#8211; Genuinely all-in-one: one asset library, one CMS, not five glued-together vendors<br \/>\n&#8211; Browser-native engine: instant load, nothing to download, works on any device<br \/>\n&#8211; AI-native, not AI-added: VersaAI removes the biggest bottleneck by generating the 3D assets for you<\/p>\n<p>Weeks of specialist work become minutes for one person.<\/p>\n<p>We&#8217;d love your honest feedback: if you sell online, what&#8217;s actually stopped you from trying 3D or AR until now \u2014 cost, tooling, asset creation, or something else? We built Studio to remove exactly those blockers.<\/p>\n<p>Try it free with launch credits \ud83d\ude80 Vinay, the team, and I are all here \u2014 ask us anything!<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>31<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sharun_kanan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sharun_kanan<\/a>&nbsp;honestly, today feels surreal.<\/p>\n<p>Most of us joined because we believed the browser could do what apps and headsets were promising, without the friction. Watching 3.6 years of engine work turn into something anyone can open from a single link never gets old.<\/p>\n<p>What I&#8217;d tell the PH community: don&#8217;t take our word for it, click into one of the live experiences and try rotating, configuring, trying on. The &#8220;wait, this is running in my browser?&#8221; moment is the whole product.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>18<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sharun_kanan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sharun_kanan<\/a>&nbsp;Congratulations on the launch, this is an excellent product. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sharun_kanan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sharun_kanan<\/a>&nbsp;For someone selling online today: if you could wave a magic wand and fix <em>one<\/em> part of the shopper\u2019s journey, what would it be and how would you measure if Studio actually moved that metric for you?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I didn&#8217;t expect the AI asset generator to handle organic shapes this well. My plant models actually look like plants.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>21<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@madison_marley\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madison_marley<\/a>&nbsp;&#8220;My plant models actually look like plants&#8221; might be my favorite sentence of the whole launch \ud83d\ude04 Organic shapes are genuinely one of the hardest things for AI 3D to get right, hard-surface stuff like a box or a bottle is forgiving, but anything with irregular, natural geometry usually falls apart. So hearing plants hold up means a lot.<\/p>\n<p>If you keep pushing it, I&#8217;d love to know where it starts to struggle, the trickier the organic shape, the more useful your feedback. And genuinely, thank you for trying the thing most likely to break and telling us it didn&#8217;t. \ud83c\udf31<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>10<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Vinay here, founder &amp; CEO of Ctruh <\/p>\n<p>I started this company because I kept watching brilliant products get sold through flat photos that did them no justice. We&#8217;ve spent years on a hard technical bet: that immersive 3D and AR shouldn&#8217;t require a game engine, a specialist team, or weeks of work. It should be as simple as sharing a link.<\/p>\n<p>Studio is the clearest expression yet of that belief. Seeing it in the hands of the community today genuinely means a lot to our whole team.<\/p>\n<p>I&#8217;ll be here throughout the day, and I&#8217;d love to hear what you think, especially the hard questions. Thank you for spending a moment with what we&#8217;ve built.  <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>20<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>What stood out to me was the material editor. I run a ceramics shop and getting realistic glaze textures on 3D models used to require outside software. Now I adjust roughness and reflectivity directly in the platform and the results are close enough to real photos that customers stopped asking for extra images.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>19<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@puja_sharma13\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@puja_sharma13<\/a>&nbsp;Puja, this genuinely made our morning. &#8220;Customers stopped asking for extra images&#8221; is the exact outcome we hoped the material editor would unlock, that&#8217;s the whole point of getting roughness and reflectivity right in-platform instead of round-tripping through other software.<\/p>\n<p>Ceramics is honestly one of the harder cases too, glaze has that subtle depth and sheen that&#8217;s tough to fake, so hearing it holds up against real photos means a lot.<\/p>\n<p>If you ever hit a texture or finish that doesn&#8217;t translate well, I&#8217;d love to hear about it, edge cases like yours are exactly what push the material engine forward. And thank you for sharing something this specific; it helps other makers here picture what&#8217;s actually possible.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>11<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Excited to finally launch this after months of building and refining it with the team.<\/p>\n<p>One thing we kept hearing from brands was that they wanted 3D and AR experiences, but the workflow was too fragmented: asset creation, optimization, hosting, web integration, and customization all lived in different tools.<\/p>\n<p>Ctruh Studio was built to simplify that entire process in one browser-native platform. The goal is to make immersive commerce practical, not just possible.<\/p>\n<p>Would genuinely love feedback from the Product Hunt community on what workflows we should improve next.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>19<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@anand_ghugare\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anand_ghugare<\/a>&nbsp;Well said, Anand. The fragmentation point is the whole reason this exists, brands weren&#8217;t missing the ambition for 3D and AR, they were missing a way to do it without gluing five tools together. &#8220;Practical, not just possible&#8221; is exactly the bar.<\/p>\n<p>And I&#8217;ll echo your ask to everyone reading: we genuinely want to know which workflows to sharpen next. If you try Studio today, tell us where it flowed and where it snagged, whether that&#8217;s asset creation, customization, or getting an experience live on your site. That&#8217;s the feedback shaping our next few releases.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>13<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>No-code is the right call here. I&#8217;ve spent weekends fighting with Blender just to get a basic product spin working. Being able to build that same thing in a browser changes my whole workflow.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>18<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ayesha_mughal1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ayesha_mughal1<\/a>&nbsp;&#8220;Weekends fighting with Blender for a basic product spin&#8221; is the exact pain we built this to kill \ud83d\ude04 Blender is incredibly powerful, but you shouldn&#8217;t need to learn a full 3D suite just to let a shopper rotate a product. That gap is the whole reason Studio exists.<\/p>\n<p>Honestly, the best test is to recreate that spin, the one you used to lose weekends to, and see how long it takes here. Drop in a product (or generate the model from a photo with VersaAI), and you&#8217;ve got a rotatable 3D viewer in minutes, no Blender required. Free launch credits to try it.<\/p>\n<p>Would genuinely love to hear how it compares to your old workflow once you&#8217;ve built one. That head-to-head is the feedback that means the most to us.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>14<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>What caught my eye is the AR piece. I run a small furniture shop and letting customers preview pieces in their own room could cut returns significantly.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>18<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sheikh_umair1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sheikh_umair1<\/a>&nbsp;You&#8217;ve nailed exactly why we built the AR piece, Sebastian. Furniture is honestly the textbook case: big-ticket, space-dependent, and &#8220;it looked bigger online&#8221; is one of the top reasons things get sent back. Letting someone place a sofa in their actual living room before buying is the difference between hoping and knowing.<\/p>\n<p>Would genuinely love for you to try it with one of your own pieces, drop in a product (or use VersaAI to generate the 3D model from a photo), then view it in AR in your own space. Takes a few minutes and there are free launch credits. <\/p>\n<p>If you do, I&#8217;d love to hear how it holds up with real furniture, scale accuracy especially. That&#8217;s the feedback that helps us most, and it sounds like your shop is the perfect real-world test.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>11<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Honestly, still processing that this is live! I joined this team back when Ctruh Studio was barely a prototype, just an idea on a whiteboard and way too many late nights. I remember us saying \u201cyou should be able to go from an idea to a 3D scene without opening a single tool you don\u2019t already know\u201d and half the room wasn\u2019t even sure that was actually buildable. Today it just\u2026works. No app, no headset, no waiting on team of specialists. Just a link on a browser. That\u2019s the part that still doesn\u2019t feel real to me.<br \/>\nGo check it out. We\u2019d genuinely love to hear what you think.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>18<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ivy_bisht\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ivy_bisht<\/a>&nbsp;This one got me a little, not gonna lie. That whiteboard line (&#8220;go from an idea to a 3D scene without opening a single tool you don&#8217;t already know&#8221;) was the whole bet, and half the room being unsure it was buildable is exactly why today feels the way it does.<\/p>\n<p>To everyone reading: this is the kind of thing that doesn&#8217;t come across in a screenshot. Go open one of the live experiences, rotate something, try it on, and see the &#8220;wait, this is just running in my browser?&#8221; moment for yourself. We genuinely want to know what you think.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>15<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Anyone found a good workflow for batch editing multiple product variants at once? Doing them one by one is slow.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>18<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ado_audu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ado_audu<\/a>&nbsp;You&#8217;ve pinpointed exactly what&#8217;s next on our list, Michael. Right now batch editing across variants is one-by-one, which, you&#8217;re right, gets slow the moment you&#8217;re working at any real scale. It&#8217;s genuinely a gap today.<\/p>\n<p>The good news: bulk\/batch variant editing is already on our roadmap for our next release, precisely because this friction kept coming up. So you&#8217;re not missing a hidden setting, it&#8217;s actively being built.<\/p>\n<p>Would help us a lot if you&#8217;d tell me more about your case, how many variants you&#8217;re typically working across, and what you&#8217;re changing (materials, colors, dimensions)? That detail directly shapes how we design it. And if you&#8217;re open to it, happy to ping you when it ships so you can put it through its paces.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>11<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The product is fabulous! Any brand looking to create 3D assets, or launch a virtual storefront or offer Virtual Try-ons, Ctruh Studio makes it extremely easy to do that.<\/p>\n<\/p>\n<p>Even a non-techie like me was able to create a try-on in a matter for few minutes. If you have not already, try it out and have your mind blown!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>18<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jagrit_gupta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jagrit_gupta<\/a>&nbsp;Thanks Jagrit! The &#8220;non-techie made a try-on in a few minutes&#8221; part is honestly the bar we care about most, if it only works for 3D specialists, we&#8217;ve failed. Really glad it clicked for you.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>14<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>One thing kept coming up in almost every conversation: <strong>We love immersive experiences, but they&#8217;re just too difficult to build.<\/strong><\/p>\n<p>That became our starting point.<\/p>\n<p>So we built <a href=\"https:\/\/www.producthunt.com\/products\/ctruh-studio\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"ctruh-studio\" target=\"_blank\" rel=\"noopener\">@Ctruh Studio<\/a>: a platform that lets anyone create and publish interactive 3D experiences for the web without the usual complexity.<\/p>\n<p>We&#8217;re just getting started, and I&#8217;d genuinely love your feedback.<\/p>\n<p>If you get a chance to try it, let us know what you&#8217;d build first. Every comment helps us make the product better. \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>18<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>It&#8217;s amazing to see something we&#8217;ve spent years building finally out in the world.<\/p>\n<p>From the very beginning, our goal was simple: make immersive commerce easy to create and even easier to experience without downloads, plugins, or unnecessary complexity.<\/p>\n<p>If you&#8217;re visiting us on Product Hunt today, spend a few minutes exploring the live demos. The best way to understand the product is to experience it yourself. We&#8217;d love your feedback and support!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>17<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;m curious how it handles file size optimization for mobile users. Rich 3D experiences often load slowly on phones. If you&#8217;ve solved that, it&#8217;s a real edge over competitors.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>17<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@billy_boy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@billy_boy<\/a>&nbsp;Great question, and it&#8217;s the one that separates a demo from something a brand will actually ship. A rich experience that takes 8 seconds on 4G loses to the flat photo it replaced.<\/p>\n<p>Straight answer: the experiences are device-agnostic and load beautifully on any device with a browser, budget Android, laptop, kiosk, or headset. And it&#8217;s not a stripped-down version on phones, shoppers get the same high-fidelity 8K-16K visuals everywhere; the engine just streams and renders it efficiently so it stays fast and smooth whatever they&#8217;re on. That&#8217;s the whole point of building it browser-native.<\/p>\n<p>Would genuinely love your eyes on it, you clearly know what &#8220;good&#8221; looks like here, and that&#8217;s the feedback that sharpens it fastest.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>12<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Watching Ctruh Studio go from an idea to a product that is now live on Product Hunt has been an incredible journey. Having worked alongside the team, I&#8217;ve seen the countless hours spent solving complex challenges to make 3D and XR creation simple, accessible, and browser-native.<\/p>\n<p>What excites me most is that we&#8217;re not just launching another tool. We&#8217;re enabling creators, brands, and businesses to build immersive experiences without needing specialized technical expertise. Proud to be part of a team that&#8217;s pushing the boundaries of what&#8217;s possible in digital experiences. Congratulations to everyone who made this happen. \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>17<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@janet_david\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@janet_david<\/a>&nbsp;Thank you, Janet, &#8220;not just another tool&#8221; is exactly the bar we held ourselves to. Grateful to have built this alongside you.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>10<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Most stores probably have the photos already. 3D stuff, not so much. So yeah, making it from the photos makes the whole thing less annoying to even try. Congrats on the launch!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>16<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@etiennegarcia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@etiennegarcia<\/a>&nbsp;You&#8217;ve put your finger on the exact thing, thank you. The 3D itself was never really the barrier; it was &#8220;go commission or build 3D assets before you can even start.&#8221; That&#8217;s what killed it for most stores. Starting from the photos you already have removes the reason to not try.<\/p>\n<p>Best way to feel it: grab a product photo you&#8217;ve already got and drop it in, VersaAI turns it into a 3D model in a couple of minutes, no starting from scratch. Free launch credits if you want to test it on your own catalog.<\/p>\n<p>Would genuinely love to hear how it does with your real product shots, that&#8217;s the feedback that matters most to us. And congrats-back on spotting the actual point \ud83d\ude04<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>4<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The spec I&#8217;d put on the page is mesh weight, not render quality. A configurator that takes 8 seconds on mobile 4G converts worse than the flat photo it replaced, so the number that matters is poly count and texture size after your optimizer runs, not what VersaAI generates before it. If you&#8217;re already holding a per-product budget, say it loudly. That&#8217;s the line that decides whether a brand ships this or shelves it after the pilot.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>16<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@asadmalik901\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@asadmalik901<\/a>&nbsp;This is the most useful comment on the page, and you&#8217;re completely right. Render quality is table stakes now; delivered mesh weight after optimization is the number that actually decides whether a brand ships or shelves it. A gorgeous asset that takes 8 seconds on 4G loses to the flat photo every time.<\/p>\n<p>For what it&#8217;s worth, that&#8217;s exactly why the pipeline auto-optimizes what VersaAI generates rather than serving raw, decimation, texture compression, and LODs before anything hits a shopper&#8217;s device. The generated poly count matters far less than what actually streams.<\/p>\n<p>But you&#8217;ve called out something real: we talk about that on the engineering side and don&#8217;t say it loudly enough on the marketing side. The per-product performance budget is exactly the line a serious brand cares about, and we should be leading with it. Genuinely grateful, this is the kind of feedback that changes how we position the whole thing.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>13<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Watching <strong>Ctruh Studio<\/strong> go from an idea to a product that&#8217;s now live on <strong>Product Hunt<\/strong> has been an incredible journey.<\/p>\n<p>It&#8217;s amazing to see years of hard work finally out in the world. The goal has always been simple: make immersive 3D, XR and AI experiences easy to create and experience right in the browser, without downloads or unnecessary complexity.<\/p>\n<p>Proud to be part of a team that&#8217;s making immersive technology more accessible for creators, brands, and businesses.<\/p>\n<p>If you&#8217;re visiting us on Product Hunt today, take a few minutes to explore the live demos. We&#8217;d love your feedback and support! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>14<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Big congrats to the whole team<\/p>\n<p>Really love how you are making immersive shopping far easier for everyone<\/p>\n<p>Wishing you a huge launch day and plenty of momentum<\/p>\n<p>What has been the biggest surprise from early users so far<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>13<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@suryansh_tiwari2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@suryansh_tiwari2<\/a>&nbsp;Thank you, Suryansh, means a lot coming from a fellow maker \ud83d\ude4f<\/p>\n<p>Honest answer on the biggest surprise: how fast non-technical users have jumped in. We built this to remove the specialist barrier, but I half-expected people to still approach it cautiously. Instead, someone earlier today (runs a ceramics shop) told us the material editor got her glaze textures close enough to real photos that her customers stopped asking for extra images. Another was surprised the AI handled organic shapes, &#8220;my plant models actually look like plants.&#8221; Those aren&#8217;t the easy cases, so seeing regular users push it there on day one has been the happy surprise.<\/p>\n<p>The other one: how much people care about the &#8220;start from photos you already have&#8221; part. We thought the wow was the 3D; turns out the relief is not having to create assets from scratch.<\/p>\n<p>How&#8217;s it going on your side, EverTutor&#8217;s a great space to be building in. Rooting for you too!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Just tried it out, and I was genuinely impressed! I converted almost every item I&#8217;ve bought online just by clicking a photo, and it turned them into 3D models so quickly. The experience was incredibly smooth. I could zoom in really close, rotate the models from every angle, and explore every little detail.<\/p>\n<p>Whenever I wanted to make a change or try something different, the AI chatbot was there to help. The AR feature was just as impressive. I could place each item on my desk and instantly see how it would look in my space.<\/p>\n<p>I honestly can&#8217;t wait to see where this product goes from here. Huge credit to the CTRUH team for building something this exciting!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>12<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The platform feels simple to use, even without much technical knowledge, and the 3D, AR, and AI features save a lot of time. There is still some room for improvement, but the overall experience has been smooth and genuinely useful for presenting products in a more engaging way.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>12<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Really impressed with the experience so far. The no-code 3D workflow is smooth, the editor feels polished, and it&#8217;s great to see a product making immersive content creation more accessible. Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><strong>Ctruh is building the infrastructure for the immersive web.<\/strong><\/p>\n<p>We make it easier for businesses to create and deploy interactive 3D, AR, and XR experiences \u2014 from virtual try-ons and 3D product configurators to virtual showrooms and immersive walkthroughs.<\/p>\n<p>With browser-native 3D technology and AI-powered creation tools, Ctruh is making immersive experiences more accessible, scalable, and easier to experience without apps or complicated hardware.<\/p>\n<p><strong>We\u2019re helping brands turn products into experiences.<\/strong><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Ctruh Studio makes creating interactive 3D product experiences incredibly simple with AI. I am impressed by how seamlessly it transforms product visuals into immersive experiences, it&#8217;s a powerful no-code platform that helps brands stand out and drive engagement.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Ctruh is genuinely solving a real e-commerce pain point by letting shoppers see products in 3D\/AR before buying and doing it without forcing brands into clunky app downloads or dev-heavy integrations, team has built something people actually want, not just a flashy demo.<\/p>\n<p>I personally like there Versa AI outputs<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The 2D to 3D AI blew my mind. I went from a 2D image to a full fledged XR experience in just a couple of minutes. Superb!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>What stood out to me is how accessible this makes 3D and XR for people without a technical background. Using AI to generate a model from a prompt and previewing it directly in the browser feels like a genuinely useful workflow, especially for smaller brands wanting to showcase products in a more interactive way.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>10<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/products\/ctruh-studio\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"ctruh-studio\" target=\"_blank\" rel=\"noopener\">@Ctruh Studio<\/a> is an impressive platform that enables brands to create interactive 3D, AR, virtual storefronts, and immersive product experiences with ease. I\u2019m proud to have contributed my time and effort to building this product at Ctruh, and it\u2019s exciting to see how it is helping brands showcase their products in a more engaging and innovative. Its powerful all in one browser based workflow is a game changer for brands looking to deliver immersive customer experiences.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>10<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Ctruh Studio is great to make product pages immersive with the AI models that can generate 3D assets from images and also create multiple variations using the tools available in the Studio, being able to make AI content as well on the same platform where all the product assets lie makes it very easy to use.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>10<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Ctruh Studio looks like an exciting platform at the intersection of <strong>3D, AI, and XR<\/strong>. Making immersive experience creation more accessible could unlock huge possibilities for brands, creators, and businesses. Excited to see how <strong>Ctruh Studio<\/strong> evolves.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>10<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;ve integrated a few <strong>3D, AI, and XR<\/strong> experiences built with <strong>Ctruh Studio<\/strong> into my website, and the impact has been impressive. Visitors are actually exploring the experiences instead of just scrolling past, which has noticeably increased engagement and time on site. That extra interaction has translated into better conversions and ultimately more sales. It&#8217;s refreshing to see a platform that makes it so easy to create immersive experiences that deliver real business value. Excited to see where Ctruh Studio goes next! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>10<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#3<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/JGYVC4OPVU532G\" class=\"app-title\">Airtop for Google Ads Automation<\/a><\/p>\n<div class=\"one-liner\">Build campaigns, optimize spend, and create reports.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">270<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Airtop \u5c06Google Ads\u7684\u8d26\u6237\u7ba1\u7406\u3001\u5173\u952e\u8bcd\u7814\u7a76\u3001\u9884\u7b97\u4f18\u5316\u548c\u62a5\u544a\u751f\u6210\u6d53\u7f29\u4e3a\u4e00\u6bb5\u81ea\u7136\u8bed\u8a00\u5bf9\u8bdd\uff0c\u8ba9\u4e0d\u61c2PPC\u7684\u5c0f\u56e2\u961f\u548c\u72ec\u7acb\u8425\u9500\u8005\u4e5f\u80fd\u50cf\u6709\u4e13\u5bb6\u987e\u95ee\u4e00\u6837\u64cd\u4f5c\u5e7f\u544a\uff0c\u65e0\u9700\u518d\u9762\u5bf9\u590d\u6742\u754c\u9762\u548c\u6d6a\u8d39\u9884\u7b97\u7684\u98ce\u9669\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d3978811-4997-4cf9-8396-a1c30b153f70.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/88d8091b-df3e-4314-b53c-c70975baad24.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/044bf640-0982-41a3-b07e-b7a25c63d694.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/cd563050-4270-4d53-8c18-98bbca74a987.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/57cb99bb-73a2-435b-8969-6adc19e37595.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/qdBQJKyhHr0\"><source src=\"https:\/\/youtu.be\/qdBQJKyhHr0\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Marketing<\/span><br \/>\n            <span class=\"tag\">Advertising<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5e7f\u544a\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">Google Ads\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">PPC\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u5bf9\u8bdd\u5f0f\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u5e7f\u544a\u9884\u7b97\u5ba1\u8ba1<\/span><br \/>\n            <span class=\"tag\">CRM\u6570\u636e\u8054\u52a8<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u62a5\u8868<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u5173\u952e\u8bcd\u7814\u7a76<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u7ea7Web\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">SEM\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u5176\u201c\u5bf9\u8bdd\u5f0f\u7ba1\u7406\u201d\u548c\u201cAI\u975e\u70ab\u6280\u201d\u7684\u5b9e\u7528\u4ef7\u503c\u3002\u6838\u5fc3\u8ffd\u95ee\u96c6\u4e2d\u5728\u4e09\u5904\uff1a\u4e00\u662f\u9884\u7b97\u8c03\u6574\u7684\u51b3\u7b56\u900f\u660e\u5ea6\u548c\u53ef\u5ba1\u8ba1\u6027\uff1b\u4e8c\u662f\u8f6c\u5316\u4e8b\u4ef6\uff08\u5c24\u5176\u662f\u8fdc\u671f\u9000\u6b3e\/\u53d6\u6d88\uff09\u5982\u4f55\u9006\u5411\u53cd\u9988\u7ed9\u4f18\u5316\u6a21\u578b\uff1b\u4e09\u662f\u9488\u5bf9\u5c0f\u9884\u7b97\u8d26\u6237\u7684\u9002\u7528\u6027\u53ca\u7f51\u9875\u5e03\u5c40\u53d8\u52a8\u65f6\u7684\u201c\u81ea\u6108\u201d\u80fd\u529b\u3002\u521b\u59cb\u4eba\u56de\u590d\u5766\u8bda\uff0c\u627f\u8ba4\u201c\u9000\u6b3e\u95ed\u73af\u201d\u662f\u4e0b\u4e00\u6b65\u65b9\u5411\uff0c\u8d62\u5f97\u4e86\u4fe1\u4efb\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Airtop\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u6ca1\u6709\u8bd5\u56fe\u518d\u9020\u4e00\u4e2a\u201c\u66f4\u806a\u660e\u7684\u7ade\u4ef7\u7b97\u6cd5\u201d\uff0c\u800c\u662f\u7cbe\u51c6\u5207\u5165\u4e86PPC\u884c\u4e1a\u6743\u529b\u7ed3\u6784\u4e2d\u6700\u8106\u5f31\u7684\u4e00\u73af\u2014\u2014**\u4e13\u4e1a\u77e5\u8bc6\u7684\u9ed1\u7bb1\u4e0e\u4fe1\u4efb\u7684\u5d29\u584c**\u3002\u5b83\u5356\u7684\u4e0d\u662fAI\uff0c\u662f\u201c\u628a\u9ed1\u7bb1\u7ffb\u8bd1\u6210\u4eba\u8bdd\u201d\u7684\u80fd\u529b\u3002\u5f53\u5c0f\u5546\u6237\u88abGoogle Ads\u7684\u590d\u6742\u754c\u9762\u548c\u65e0\u6548\u70b9\u51fb\u70e7\u6389\u9884\u7b97\u65f6\uff0cAirtop\u7528\u5bf9\u8bdd\u5f0f\u4ea4\u4e92\u548c\u201c\u5148\u5ba1\u6279\u540e\u6267\u884c\u201d\u7684\u6388\u6743\u673a\u5236\uff0c\u91cd\u6784\u4e86\u201c\u4e13\u5bb6-\u96c7\u4e3b\u201d\u4e4b\u95f4\u7684\u4ee3\u7406\u5173\u7cfb\uff0c\u628a\u63a7\u5236\u6743\u4ea4\u8fd8\u7ed9\u7528\u6237\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5e76\u975e\u8bed\u4e49\u5316\u7f51\u9875\u4ea4\u4e92\uff0c\u800c\u662f**\u57fa\u4e8eCRM\u6570\u636e\u7684\u201c\u9ad8\u4ef7\u503c\u4e8b\u4ef6\u201d\u56de\u4f20**\u3002\u8ba9\u4f18\u5316\u76ee\u6807\u4ece\u201c\u6ce8\u518c\u201d\u5347\u7ea7\u4e3a\u201c\u6fc0\u6d3b\/\u4ed8\u8d39\u201d\uff0c\u8fd9\u6293\u4f4f\u4e86\u5e7f\u544a\u6d6a\u8d39\u7684\u6838\u5fc3\u6839\u6e90\u3002\u4f46\u6b63\u5982\u8bc4\u8bba\u8005\u4e00\u9488\u89c1\u8840\u6307\u51fa\u7684\uff0c\u5176\u4ef7\u503c\u95ed\u73af\u4ecd\u6709\u7f3a\u53e3\uff1a\u8f6c\u5316\u4e00\u65e6\u89e6\u53d1\u5373\u7b97\u201c\u5b8c\u6210\u201d\uff0c\u8fdc\u671f\u7684\u53d6\u6d88\u6216\u9000\u6b3e\u65e0\u6cd5\u9006\u5411\u4fee\u6b63\u51fa\u4ef7\u6a21\u578b\uff08Google\u7684\u8f6c\u5316\u8c03\u6574\u7a97\u53e3\u4ec555\u5929\uff09\u3002\u8fd9\u610f\u5473\u7740\u5b83\u4f18\u5316\u7684\u662f\u201c\u5373\u65f6\u884c\u4e3a\u201d\uff0c\u800c\u975e\u201c\u957f\u671f\u5ba2\u6237\u7ec8\u8eab\u4ef7\u503c\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u56e0\u6b64\uff0cAirtop\u76ee\u524d\u7684\u5b9a\u4f4d\u66f4\u50cf\u662f\u4e00\u4f4d\u9ad8\u6548\u7684\u201c\u6218\u672f\u6267\u884c\u5b98\u201d\uff0c\u800c\u975e\u201c\u6218\u7565\u5206\u6790\u5e08\u201d\u3002\u5b83\u80fd\u8ba9\u9884\u7b97\u82b1\u5f97\u66f4\u7cbe\u51c6\uff0c\u4f46\u65e0\u6cd5\u89e3\u51b3\u4e1a\u52a1\u6a21\u578b\u672c\u8eab\u7684\u7f3a\u9677\u3002\u5bf9Airtop\u800c\u8a00\uff0c\u4e0b\u4e00\u6b65\u82e5\u4e0d\u80fd\u6253\u901a\u4e0eCRM\u7684\u53cc\u5411\u5b9e\u65f6\u6570\u636e\u6d41\uff0c\u4ee5\u5e94\u5bf9\u9000\u6b3e\u548c\u81ea\u7136\u6d41\u5931\u5e26\u6765\u7684\u6a21\u578b\u6c61\u67d3\uff0c\u5176\u5ba3\u79f0\u7684\u201c\u667a\u80fd\u4f18\u5316\u201d\u5728\u957f\u5468\u671f\u3001\u9ad8\u5ba2\u5355\u4ef7\u7684\u4e1a\u52a1\u4e2d\u4ecd\u4f1a\u906d\u9047\u4fe1\u4efb\u6311\u6218\u2014\u2014\u8fd9\u6070\u6070\u662f\u5b83\u6700\u521d\u60f3\u8981\u6d88\u706d\u7684\u90a3\u4e2a\u95ee\u9898\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Airtop for Google Ads Automation<\/span>\n                <\/div>\n<div class=\"comment-content\">Airtop builds, monitors, and optimizes your Google Ads campaigns from a conversation. Keyword research, campaign creation, waste audits, and performance reporting \u2014 no expertise required.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Running Google Ads is difficult. The interface is confusing, proper optimization requires special expertise, and it is very easy to waste thousands of dollars on campaigns that result in junk clicks instead of real conversions. Unless you\u2019re a PPC expert, the cards are stacked against you.<\/p>\n<\/p>\n<p>We wanted to make Google Ads less frustrating for small teams and solo marketers. So we built native Google Ads automation directly into Airtop. Connect your Google Ads account, and Airtop will:<\/p>\n<p>\ud83d\udc49Research keywords<br \/>\ud83d\udc49Build themed campaigns based on best practices<\/p>\n<p>\ud83d\udc49Audit and optimize spend<\/p>\n<p>\ud83d\udc49Create automatic scheduled reports<\/p>\n<p>\ud83d\udc49Send updates directly to Slack, email, and more<\/p>\n<\/p>\n<p>Airtop works like a PPC consultant would. It understands context, connects to your CRM, and makes changes directly in Google Ads once you approve them. Any change that can affect spend requires your explicit approval first.&nbsp;<\/p>\n<\/p>\n<p>We\u2019ve been running Google Ads with Airtop since May, and it\u2019s suggested many optimizations that we otherwise would have missed. We also don\u2019t have to spend hours buried in the Google Ads interface anymore. We\u2019re excited to share this tool with you!<\/p>\n<\/p>\n<p>You can try Airtop\u2019s Google Ads integration out here: <a href=\"http:\/\/airtop.ai\/google-ads\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">airtop.ai\/google-ads<\/a>.<\/p>\n<p>Use promo code <strong>GAPH29 <\/strong>for a free month of Airtop\u2019s Starter plan.<\/p>\n<p>We\u2019re here all day. Ask us anything!<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>8<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@amir_ashkenazi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@amir_ashkenazi<\/a>&nbsp;I&#8217;ve hired agencies for exactly this and the reporting layer is where trust usually breaks, since the numbers never match what I see in the platform. When Airtop moves budget on its own, how much visibility do I get into why, not just that it happened? Wondering whether an operator can actually audit those decisions.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@amir_ashkenazi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@amir_ashkenazi<\/a>&nbsp;For someone who\u2019s burned budget before on junk clicks, what\u2019s the <em>first<\/em> thing Airtop would do differently in my account; and how quickly would I see that change after connecting?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This feels like a practical use of AI rather than AI for the sake of AI. Turning Google Ads management into a conversation could save marketers hours every week, especially when launching or optimizing campaigns. Excited to see how it performs with real-world accounts. Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>5<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@1mirul\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@1mirul<\/a>&nbsp;Thanks so much! We&#8217;ve gotten a lot of positive feedback on the integration so far. And personally, it&#8217;s saved me a lot of time not having to e.g., come up with 15 headline variations per ad. I don&#8217;t even have to copy and paste them from Claude anymore \ud83d\ude00<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I run a small e-commerce shop and Google Ads has always felt like a black box to me. I set a budget, watch it disappear and hope something works. What I like here is the &#8220;no expertise required&#8221; angle, that&#8217;s usually marketing fluff but if it genuinely walks a beginner through campaign structure, that&#8217;s the real barrier for people like me.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@thomas_jack4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thomas_jack4<\/a>&nbsp;Appreciate that, and you&#8217;ve actually named why it feels like a black box. Two things are usually going wrong under the hood: the account has no real campaign structure, and conversions aren&#8217;t being tracked properly. So Google is optimizing toward nothing in particular and the budget just quietly leaks.<\/p>\n<\/p>\n<p>The &#8220;no expertise required&#8221; part is aimed straight at that. It walks you through what actually counts as a conversion and makes sure Google can see it, then groups your keywords into tight themes so each ad and landing page is relevant instead of generic (relevance is literally the thing that lowers what you pay per click). It won&#8217;t turn you into an expert overnight, but it means you stop guessing and start seeing why the budget goes where it goes.<\/p>\n<\/p>\n<p>If you want, tell me what you&#8217;re selling and I&#8217;m happy to point you at where to start. That first bit of structure is usually what turns it from a black box into something you can actually steer.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the crm connection is the interesting bit tbh. an optimizer is only ever as good as the event you point it at, and signups or checkout starts will happily train the bidding to buy more of the clicks that refund later. does a cancellation weeks down the line flow back and devalue the click that caused it, or is a conversion final once it fires?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alex_watson2110\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alex_watson2110<\/a>&nbsp;Great question, and it&#8217;s the exact distinction that matters. You&#8217;re right that an optimizer only inherits the quality of the event you point it at, and signups will happily train bidding to buy more refund-prone clicks.<\/p>\n<\/p>\n<p>What the CRM connection buys you today is moving that event up the funnel: instead of firing on the raw signup, you fire on the CRM-qualified event keyed to the gclid (activated, SQL, paid, whatever your real value moment is). So you&#8217;re not rewarding the click that signs up and bounces in the first place, which is where most of the waste comes from.<\/p>\n<\/p>\n<p>To answer the actual question though: today a conversion is effectively final once it fires. A cancellation weeks later doesn&#8217;t yet flow back and devalue the click that caused it. Closing that loop with Google&#8217;s conversion adjustments (retract \/ restate against the gclid, inside their ~55 day window) is exactly where we&#8217;re headed next. Genuinely curious how you&#8217;ve seen teams handle the churn-outside-the-window problem, since that&#8217;s the part that never fully closes.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats <a href=\"https:\/\/www.producthunt.com\/@amir_ashkenazi\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"amir_ashkenazi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@amir_ashkenazi<\/a>  and team. The hard part is often not understanding the task but actually interacting with websites and completing the steps. How Airtop handles websites that change their layouts frequently?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@hamza_afzal_butt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hamza_afzal_butt<\/a>&nbsp;Thanks, appreciate it.<\/p>\n<\/p>\n<p>You&#8217;ve hit the exact thing that separates a demo from something that runs in production. Most tools interact with a page structurally, through CSS selectors and XPaths, so the moment a site renames a class or reshuffles its DOM, the path breaks even though the actual content hasn&#8217;t changed.<\/p>\n<\/p>\n<p>Airtop works off the page semantically instead, resolving what you asked for by meaning rather than a hardcoded path. And we&#8217;ve built self-healing on top: when a page changes enough to trip the agent, it detects the break and repairs itself, no rewrite from you. <\/p>\n<\/p>\n<p>That maintenance tax is usually the real cost of web automation, so it&#8217;s the part we set out to eliminate.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations on the launch! I run Google Ads on a small budget, so reporting and spend checks are what actually eat the time. Does the agent work through the Google Ads interface or through the API, and how does it hold up when Google changes the layout? I would also like to know whether this is worth using below a certain monthly spend, or whether it is built for larger accounts.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@alieksia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alieksia<\/a>&nbsp;Thanks! And you&#8217;re pointing at the right pain: on a small budget it&#8217;s the time spent checking, not the spend itself, that hurts.<\/p>\n<\/p>\n<p>On your questions:<\/p>\n<p><strong>Interface or API:<\/strong> the API. For Google Ads it connects through the official Google Ads API, not by clicking around the visual interface. You authorize it once against your account, and the agent pulls spend, performance, and search terms straight from the source.<\/p>\n<\/p>\n<p><strong>Spend size:<\/strong> the value here is time, not account size. Pulling reporting and running spend checks takes about the same effort whether you&#8217;re spending $500 or $5k a month, so it pays back based on how often you check, not how big the budget is. Definitely not built only for large accounts.<\/p>\n<\/p>\n<p>If reporting and spend monitoring are the main things eating your time, that&#8217;s squarely the use case. <\/p>\n<p>Happy to walk through what a daily or weekly digest would look like for your setup.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Late to this one but the auth part is the decision I keep thinking about. Most web agents stop at the public web, and the useful data is almost always behind a login. Question from the content side: when a site changes its layout, does the agent work it out again by itself, or does the instruction need a rewrite? Our scrapers break every few weeks and that is the real cost, not the setup.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@saied_alimoradi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@saied_alimoradi<\/a>&nbsp;Glad you went straight to this, it&#8217;s the exact problem the architecture is built around.<\/p>\n<p>Your scrapers break because they target the page structurally: CSS selectors and XPaths. Rename a class or reshuffle the DOM and the path is wrong, even though what you&#8217;re actually trying to read hasn&#8217;t changed at all. That&#8217;s the every-few-weeks tax.<\/p>\n<\/p>\n<p>Airtop works off the page semantically instead, resolving what you asked for (&#8220;get the price,&#8221; &#8220;pull the contact&#8217;s title&#8221;) by meaning rather than a hardcoded path. And on top of that we&#8217;ve built self-healing: when a page changes enough to trip the agent, it detects the break and repairs itself. So to answer your question directly, the agent works it out on its own. No instruction rewrite from you.<\/p>\n<\/p>\n<p>Which is the whole point, for exactly the reason you named. The real cost was never the setup, it was the constant re-fixing. That&#8217;s the part we set out to kill.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The way Airtop turns plain English into a working browser agent feels like real magic, not a gimmick. Love that it actually logs in and navigates instead of just pretending to.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#4<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/52KS36OISXU6BD\" class=\"app-title\">Qwen3.8-Max<\/a><\/p>\n<div class=\"one-liner\">Qwen\u2019s most capable model for coding and cowork<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">253<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Qwen3.8-Max\u662f\u4e00\u6b3e\u62e5\u67092.4T\u53c2\u6570MoE\u67b6\u6784\u3001\u652f\u63011M\u4e0a\u4e0b\u6587\u4e0e\u591a\u6a21\u6001Agent\u80fd\u529b\u7684\u5927\u6a21\u578b\uff0c\u4e13\u653b\u7f16\u7a0b\u3001\u79d1\u7814\u534f\u4f5c\u4e0e\u957f\u5468\u671f\u81ea\u52a8\u5316\u4efb\u52a1\uff0c\u89e3\u51b3\u5f00\u53d1\u8005\u5728\u590d\u6742\u9879\u76ee\u4e2d\u201cAI\u65e0\u6cd5\u6301\u7eed\u8ddf\u8fdb\u3001\u610f\u56fe\u6f02\u79fb\u3001\u4e0a\u4e0b\u6587\u65ad\u88c2\u201d\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/619335d6-0640-41ab-9642-b8d08d999c53.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4d1e62d1-4ef1-4e9e-b7c0-6a5e7ff59033.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ab9981b9-b333-4e92-b0ea-947fbf714630.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f87a3e71-6bd7-482a-b2b1-41772f5b765d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8164cba3-cf30-4b0b-849d-a0e43836d644.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fc5493b6-8a63-4788-b7a1-2e509b05988d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5eff85b9-2b0a-4c1a-817f-3b07e5b28604.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5c65acdb-c69a-4469-a486-a7a0fd92c662.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/cb768c1e-1d75-4161-ab0f-8e82117850f0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8dc03afc-b581-42c6-beac-f29e4e37318d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6e93ac77-3c8e-401c-9d04-1439ca480451.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c3bc11a2-b358-4e2d-b048-e4e9182b1a28.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e789b84c-9766-47b6-bd43-7165dba557d2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ed435608-3614-486e-a888-43da5c34c73a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d9da6133-92fb-45ed-8ddc-e9181a69de6b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/9ed9a776-902e-44dd-b462-7cf76266ba7f.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=rPQJ1Uad8aA\"><source src=\"https:\/\/www.youtube.com\/watch?v=rPQJ1Uad8aA\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">API<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5927\u6a21\u578b<\/span><br \/>\n            <span class=\"tag\">MoE<\/span><br \/>\n            <span class=\"tag\">\u7f16\u7a0b\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">\u591a\u6a21\u6001Agent<\/span><br \/>\n            <span class=\"tag\">\u957f\u4e0a\u4e0b\u6587<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u6743\u91cd<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u7f16\u7a0b<\/span><br \/>\n            <span class=\"tag\">\u79d1\u7814\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">Qwen<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u9ad8\u5ea6\u8ba4\u53ef\u5f00\u6e90\u884c\u4e3a\uff0c\u79f0\u201c\u5168\u91cf\u6743\u91cd\u53d1\u5e03\u662f\u7ed9\u793e\u533a\u7684\u793c\u7269\u201d\u3002\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u572816\u5929\u81ea\u4e3bAgent\u6d4b\u8bd5\u7684\u53ef\u4fe1\u5ea6\uff1a\u662f\u5426\u8ffd\u8e2a\u4e86\u610f\u56fe\u4fdd\u6301\u3001\u8fd4\u5de5\u7387\u3001\u56de\u5f52\u7387\u4e0e\u4e0a\u4e0b\u6587\u6f02\u79fb\uff1f\u53e6\u6709\u7528\u6237\u597d\u5947\u6a21\u578b\u5728\u8d85\u957f\u4efb\u52a1\u4e2d\u4e0e\u4eba\u7c7b\u5904\u7406\u95ee\u9898\u7684\u5dee\u5f02\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Qwen3.8-Max\u7684\u53d1\u5e03\uff0c\u672c\u8d28\u4e0a\u662f\u4e00\u6b21\u201c\u6280\u672f\u79c0\u808c\u8089\u201d\u4e0e\u201c\u751f\u6001\u5361\u4f4d\u201d\u7684\u53cc\u91cd\u52a8\u4f5c\u30022.4T\u603b\u53c2\u6570\u300195B\u6fc0\u6d3b\u30011M\u4e0a\u4e0b\u6587\u2014\u2014\u8fd9\u4e9b\u6570\u5b57\u5728\u884c\u4e1a\u5185\u786e\u5b9e\u9876\u5c16\uff0c\u4f46\u201c\u6700\u80fd\u6253\u201d\u7684\u6807\u7b7e\u9700\u8981\u66f4\u82db\u523b\u7684\u68c0\u9a8c\u3002\u793e\u533a\u6700\u5c16\u9510\u7684\u8d28\u7591\u6070\u6070\u547d\u4e2d\u4e86\u547d\u95e8\uff1a16\u5929\u81ea\u4e3b\u8fd0\u884c\u4ea7\u751f265\u4e2acommit\uff0c\u8fd9\u542c\u8d77\u6765\u60ca\u8273\uff0c\u4f46\u82e5\u7f3a\u4e4f\u5bf9\u201c\u610f\u56fe\u4fdd\u503c\u7387\u201d\u548c\u201c\u8fd4\u5de5\u6210\u672c\u201d\u7684\u91cf\u5316\u8ddf\u8e2a\uff0c\u8be5\u6d4b\u8bd5\u53ea\u80fd\u8bc1\u660e\u201c\u80fd\u8dd1\u201d\uff0c\u800c\u975e\u201c\u8dd1\u5f97\u9760\u8c31\u201d\u3002OpenAI\u3001Anthropic\u4e0d\u6562\u5f00\u6743\u91cd\uff0cQwen\u6562\u5f00\uff0c\u8fd9\u786e\u5b9e\u503c\u5f97\u5c0a\u656c\u2014\u2014\u4f46\u4e5f\u8981\u770b\u6e05\uff0c\u5f00\u6e90\u65e2\u662f\u60c5\u6000\uff0c\u4e5f\u662f\u5bf9\u6297\u95ed\u6e90\u9635\u8425\u7684\u5dee\u5f02\u5316\u6b66\u5668\u3002\u771f\u6b63\u4ef7\u503c\u4e0d\u5728\u53c2\u6570\u89c4\u6a21\uff0c\u800c\u5728\u201c\u957f\u4efb\u52a1\u573a\u666f\u4e0b\u7684\u72b6\u6001\u4e00\u81f4\u6027\u201d\u80fd\u529b\uff0c\u8fd9\u51b3\u5b9a\u4e86Agent\u80fd\u5426\u4eceDemo\u8d70\u5411\u751f\u4ea7\u73af\u5883\u3002\u5982\u679cQwen\u80fd\u516c\u5f00\u90a316\u5929\u91cccontext-drift\u7684\u53d1\u751f\u9891\u7387\u4e0e\u5e94\u5bf9\u7b56\u7565\uff0c\u5c06\u6bd4\u4efb\u4f55\u53d1\u5e03\u4f1a\u90fd\u6709\u8bf4\u670d\u529b\u3002\u5426\u5219\uff0c\u8fd9\u4e0d\u8fc7\u53c8\u662f\u4e00\u6b21\u201c\u53c2\u6570\u901a\u80c0\u201d\u5f0f\u7684\u72c2\u6b22\u3002\u5bf9\u4e8e\u5f00\u53d1\u8005\u800c\u8a00\uff0c\u522b\u6025\u7740\u6b22\u547c\uff0c\u5148\u62ff\u771f\u5b9e\u4e1a\u52a1\u9879\u76ee\u53bb\u8dd1\u4e00\u4e2a\u6708\uff0c\u518d\u5224\u65ad\u5b83\u7a76\u7adf\u662f\u540c\u4e8b\uff0c\u8fd8\u662f\u73a9\u5177\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Qwen3.8-Max<\/span>\n                <\/div>\n<div class=\"comment-content\">Qwen3.8-Max is Qwen\u2019s most capable model to date, a 2.4T-parameter MoE with 95B active parameters, 1M context, and multimodal agent capabilities for coding, research, cowork, and long-horizon tasks.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi everyone!<\/p>\n<p>Qwen3.8-Max is <a href=\"https:\/\/www.producthunt.com\/products\/qwen3\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"qwen3\" target=\"_blank\" rel=\"noopener\">@Qwen3<\/a>\u2019s most capable model to date, built around coding, cowork, and long-running agent tasks.<\/p>\n<p>One of the tests ran for <a href=\"https:\/\/qwen.ai\/blog?id=qwen3.8#10-days-of-autonomous-coding-building-a-self-evolving-harness\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">16 days straight<\/a>. Qwen3.8-Max started with an empty repo, built a coding harness, and kept working on it as new issues, feedback, and test results came in. The final repo had 265 commits, 127 PRs, and 151 issues.<\/p>\n<p>It is a 2.4T-parameter MoE with 95B active parameters and a 1M context window. It already works with the major harnesses you use.<\/p>\n<p>The API is live now on <a href=\"https:\/\/www.qwencloud.com\/models\/qwen3.8-max\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">QwenCloud<\/a>.<\/p>\n<p>Open weights arrive next week. This will be the largest open-weight release in Qwen\u2019s history!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>The 16-day agent run is the most interesting claim here. As a first impression, the useful test is not only task completion but whether the model preserved intent while new issues and feedback accumulated. Did you track rework, regression rate, or context-drift failures across the 265 commits?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a>&nbsp;Very cool: <a href=\"https:\/\/github.com\/qwen-code-dev-bot\/oh-my-cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/qwen-code-dev-bot\/oh-my-cli<\/a> (the 16 day project)<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a>&nbsp;When you let Qwen3.8\u2011Max run unsupervised for that long, what was the <em>most surprising<\/em> way it handled a problem differently than a human developer would have?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The fact that you keep open-sourcing these models at this scale is honestly wild. Most labs gate everything behind APIs, so seeing Qwen3 drop with full weights on GitHub feels like a genuine gift to the community.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#5<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/JB22KSXJYEKFYA\" class=\"app-title\">Appllama<\/a><\/p>\n<div class=\"one-liner\">Study 25,000+ screens from top-earning iOS apps<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">193<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Appllama \u662f\u4e00\u4e2a\u9762\u5411App\u521b\u4f5c\u8005\u7684\u201c\u8bbe\u8ba1\u8c03\u7814\u5e73\u53f0\u201d\uff0c\u805a\u5408App Store\u5934\u90e8\u9ad8\u8425\u6536\u5e94\u75282.5\u4e07+\u754c\u9762\u622a\u56fe\uff0c\u8ba9\u7528\u6237\u80fd\u6309\u6d41\u7a0b\u3001UI\u5143\u7d20\u3001\u914d\u8272\u5b57\u4f53\u7b49\u7ef4\u5ea6\u62c6\u89e3\u7ade\u54c1\u8bbe\u8ba1\uff0c\u5e76\u5728\u4e0a\u4e0b\u6587\u4e2d\u5173\u8054\u8425\u6536\u4e0e\u4e0b\u8f7d\u6570\u636e\uff0c\u89e3\u51b3\u201c\u77e5\u9053\u597d\u8bbe\u8ba1\u957f\u4ec0\u4e48\u6837\uff0c\u5374\u4e0d\u61c2\u5b83\u4e3a\u4ec0\u4e48\u6709\u6548\u201d\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c2b3690c-42b7-4bcf-89a5-1cb6ec2f6b7e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0d3dab6c-303f-4f65-9a02-5b8536e09d83.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b7fdb6c3-a1b4-469b-9cba-becddc8e25b5.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/5b85ce21-5039-4588-a038-309a7abf9c4a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9447a1e7-2e50-42a7-907a-15f3e46d762f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/89c6c3bb-66f2-4082-ad5a-7b29def7402b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/eb7bd23e-9745-483e-9502-25d37cb55fca.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/79d4c1dc-bd17-4d01-b305-56634a76cfdd.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=IXARWG5YF9k\"><source src=\"https:\/\/www.youtube.com\/watch?v=IXARWG5YF9k\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">iOS<\/span><br \/>\n            <span class=\"tag\">Design Tools<\/span><br \/>\n            <span class=\"tag\">UX Design<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u8bbe\u8ba1\u8c03\u7814<\/span><br \/>\n            <span class=\"tag\">\u7ade\u54c1\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u5e94\u7528\u754c\u9762\u622a\u56fe<\/span><br \/>\n            <span class=\"tag\">\u9ad8\u8425\u6536App<\/span><br \/>\n            <span class=\"tag\">\u79fb\u52a8\u7aefUI<\/span><br \/>\n            <span class=\"tag\">\u8f6c\u5316\u6d41\u7a0b\u62c6\u89e3<\/span><br \/>\n            <span class=\"tag\">\u8bbe\u8ba1\u7075\u611f<\/span><br \/>\n            <span class=\"tag\">App Store\u6570\u636e<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u51b3\u7b56<\/span><br \/>\n            <span class=\"tag\">\u589e\u957f\u7814\u7a76<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8ba4\u53ef\u201c\u6309\u7ed3\u679c\u800c\u975e\u7f8e\u5b66\u7b5b\u9009\u6837\u672c\u201d\u7684\u601d\u8def\uff0c\u5e76\u8ffd\u95ee\u6d41\u7a0b\u5386\u53f2\u7248\u672c\u3001\u6392\u540d\u4e0b\u6ed1\u6837\u672c\u53ca\u8425\u6536\u6570\u636e\u6765\u6e90\uff1b\u6709\u4eba\u6307\u51fa\u4ed8\u8d39\u5899\u524d\u9884\u89c8\u4e0d\u8db3\uff0c\u5efa\u8bae\u5f00\u653e3-5\u5f20\u622a\u56fe\u8bd5\u7528\uff1b\u53e6\u6709\u7528\u6237\u5bf9\u6bd4Mobbin\uff0c\u521b\u59cb\u56e2\u961f\u56de\u5e94\u5dee\u5f02\u5728\u4e8e\u63d0\u4f9b\u8425\u6536\u6570\u636e\u4e0e\u4ea4\u4e92\u5f0f\u63a2\u7d22\uff1bAPI\/MCP\u9700\u6c42\u5728\u8bc4\u8bba\u533a\u51fa\u73b0\uff0c\u5b98\u65b9\u79f0\u4e00\u5468\u5185\u53d1\u5e03\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Appllama\u806a\u660e\u5730\u5207\u4e2d\u4e86\u201c\u8bbe\u8ba1\u53c2\u8003\u201d\u54c1\u7c7b\u7684\u4e00\u4e2a\u771f\u7a7a\u767d\uff1a\u4e0d\u662f\u8ba9\u4f60\u770b\u597d\u770b\u7684\u8bbe\u8ba1\uff0c\u800c\u662f\u8ba9\u4f60\u770b**\u8d5a\u94b1\u7684\u8bbe\u8ba1**\u3002\u628a\u8425\u6536\u3001\u4e0b\u8f7d\u91cf\u3001\u8bc4\u5206\u548c\u754c\u9762\u622a\u56fe\u653e\u5728\u540c\u4e00\u753b\u5e03\uff0c\u7b49\u4e8e\u628a\u201cA\/B\u6d4b\u8bd5\u80dc\u51fa\u8005\u201d\u7684\u534a\u6210\u54c1\u7b54\u6848\u7aef\u5230\u4e86\u7528\u6237\u9762\u524d\u2014\u2014\u8fd9\u6bd4Dribbble\u6216Mobbin\u90a3\u79cd\u7eaf\u5ba1\u7f8e\u9648\u5217\u9ad8\u4e86\u4e00\u4e2a\u7ef4\u5ea6\uff0c\u66f4\u63a5\u8fd1\u201c\u7ade\u54c1\u9006\u5411\u5de5\u7a0b\u201d\u5de5\u5177\u800c\u975e\u8bbe\u8ba1\u7d20\u6750\u5e93\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5b83\u7684\u62a4\u57ce\u6cb3\u5e76\u4e0d\u6df1\u3002Mobbin\u5df2\u7ecf\u5728\u505a\u540c\u7c7b\u805a\u5408\uff0cFigma\u793e\u533a\u7684\u514d\u8d39\u5c4f\u98ce\u63d2\u4ef6\u4e5f\u4e0d\u7f3a\uff0c\u800cAppllama\u76ee\u524d\u7684\u6838\u5fc3\u5dee\u5f02\u70b9\u2014\u2014\u8425\u6536\u6570\u636e\u2014\u2014\u6070\u6070\u662f\u8bc4\u8bba\u533a\u6700\u5148\u88ab\u8d28\u7591\u7684\u5730\u65b9\uff08\u6570\u636e\u6765\u6e90\u4e0d\u6e05\u3001\u6570\u503c\u4e0e\u7b2c\u4e09\u65b9\u9884\u4f30\u504f\u5dee\uff09\u3002\u8fd9\u4e0d\u662f\u5c0f\u95ee\u9898\uff1a\u4e00\u65e6\u6570\u636e\u53ef\u4fe1\u5ea6\u88ab\u8bc1\u4f2a\uff0c\u4ea7\u54c1\u5c31\u9000\u5316\u4e3a\u4e00\u4e2a\u4ea4\u4e92\u7a0d\u5fae\u597d\u4e00\u70b9\u7684\u622a\u56fe\u5e93\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u66f4\u503c\u5f97\u8b66\u60d5\u7684\u662f\u201c\u6301\u7eed\u8ffd\u8e2a\u201d\u7684\u7f3a\u5931\u3002\u7528\u6237\u660e\u786e\u95ee\u5230\u201c\u80fd\u4e0d\u80fd\u770b\u4e00\u4e2a\u652f\u4ed8\u5899\u7684\u56db\u6b21\u6539\u7248\u5386\u53f2\u201d\uff0c\u56e2\u961f\u6ca1\u6709\u6b63\u9762\u56de\u5e94\u2014\u2014\u800c**\u6539\u7248\u5386\u53f2\u624d\u662f\u771f\u6b63\u7684\u6218\u7565\u4ef7\u503c**\u3002\u5f53\u524d\u7248\u672c\u53ea\u662f\u201c\u5f53\u4e0b\u9ad8\u624b\u7684\u9759\u6001\u5feb\u7167\u201d\uff0c\u65e0\u6cd5\u56de\u7b54\u201c\u8fd9\u4e2a\u9ad8\u624b\u4e4b\u524d\u8d70\u4e86\u54ea\u4e9b\u5f2f\u8def\u201d\u3002\u6ca1\u6709\u65f6\u95f4\u7ef4\u5ea6\uff0c\u7528\u6237\u770b\u5230\u7684\u4ecd\u662f\u7ed3\u679c\uff0c\u800c\u975e\u8def\u5f84\uff0c\u8fd9\u8ba9\u201c\u7814\u7a76\u201d\u7684\u542b\u91d1\u91cf\u5927\u6253\u6298\u6263\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u81f3\u4e8e\u514d\u8d39\u9677\u9631\uff1a\u5ba3\u79f0\u201cStart free\u201d\u5374\u8ba9\u7528\u6237\u6ce8\u518c\u540e\u627e\u4e0d\u5230\u5165\u53e3\uff0c\u76f4\u63a5\u88ab\u8bc4\u8bba\u8005\u70b9\u7834\uff0c\u8fd9\u79cd\u4f53\u9a8c\u4f24\u7684\u662f\u65e9\u671f\u53e3\u7891\u3002\u597d\u5728\u4e00\u4e2aMCP\u5373\u5c06\u4e0a\u7ebf\uff0c\u5982\u679c\u6709API\u63a5\u5165AI\u5efa\u7ad9\u6d41\u7a0b\uff0c\u5b83\u6709\u673a\u4f1a\u6210\u4e3a\u201cAI\u751f\u6210\u9ad8\u8f6c\u5316UI\u201d\u7684\u8bad\u7ec3\u6570\u636e\u5c42\u2014\u2014\u8fd9\u624d\u662f\u771f\u6b63\u7684\u60f3\u8c61\u7a7a\u95f4\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u7ed3\uff1a\u65b9\u5411\u5bf9\u4e86\uff0c\u4f46\u5f53\u524d\u7248\u672c\u53ea\u662fMVP\u7684\u76ae\uff0c\u6570\u636e\u53ef\u4fe1\u5ea6\u4e0e\u5386\u53f2\u8ffd\u8e2a\u662f\u771f\u95ee\u9898\u3002\u82e5\u4e0d\u8865\u4e0a\u201c\u65f6\u95f4\u7ef4\u5ea6\u201d\uff0c\u5b83\u59cb\u7ec8\u53ea\u662fMobbin\u7684\u6302\u4ef6\uff0c\u800c\u975e\u66ff\u4ee3\u54c1\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Appllama<\/span>\n                <\/div>\n<div class=\"comment-content\">Appllama is a design-research platform for app creators. Search 25,000+ screens from 600+ of the App Store\u2019s top-earning iOS apps; follow complete onboarding, paywall, home and in-app flows; inspect UI elements, colors and fonts; and see revenue, downloads and ratings in context. New apps arrive weekly, captured live from the store. Start free no card required.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt,<\/p>\n<p>I\u2019m Jaimin, Co-founder of Appllama.<\/p>\n<p>app creators make the same difficult decisions every day:<\/p>\n<p>what should onboarding show first?<br \/>\nwhen should a paywall appear?<br \/>\nwhat happens before and after someone upgrades?<\/p>\n<p>a beautiful screen is useful, but it rarely explains why it is there, what came before it, or what happens next. we wanted the whole product decision in context.<\/p>\n<p>so we built appllama as a design-research tool centered on the apps that already earn at the top of the App Store.<\/p>\n<p>you can search 25,000+ screens from 600+ iOS apps, follow complete onboarding, paywall and in-app flows, inspect UI elements, colors and fonts, and see revenue, downloads and ratings alongside the design. new apps arrive every week.<\/p>\n<p>this is our third startup attempt. the first two failed. they taught us that working hard is not the same as creating value and that a launch is only the moment users get to decide.<\/p>\n<p>our team spent days and late nights capturing, organizing and refining details most people will never see. today, we\u2019re proud to finally put that work in your hands.<\/p>\n<p>For the Product Hunt community, code PHUNT2026 unlocks the full Pro experience at 25% off.<\/p>\n<p>we\u2019d genuinely value one unpolished answer:<\/p>\n<p>which iOS app or which part of an app flow should we capture next, and why?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jaimintf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jaimintf<\/a>&nbsp;This is our third attempt, the first two failed&#8221; is the line I&#8217;d have put at the top. Working hard not being the same as creating value is the lesson that costs the most to learn.<\/p>\n<p>On the product, the part I find interesting is that you&#8217;re indexing screens from apps that already earn, so the sample is selected on outcome rather than on aesthetics. That&#8217;s a different thing from a design gallery.<\/p>\n<p>Question: can you see how a flow changed over time? A paywall that&#8217;s been through four revisions at a top-earning app tells you more than the current version does, since you&#8217;re effectively reading the results of their A\/B testing for free.<\/p>\n<p>Also 25,000 screens across 600 apps captured live weekly is a lot of scraping. Curious how you handle apps that restructure their onboarding between captures.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jaimintf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jaimintf<\/a>&nbsp;If you could rewind and capture one \u201cmessy middle\u201d moment that most apps hide, which app and flow would you start with, and what decision do you think it would clarify for builders?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Amazing, congrats on the launch. Do you have any apps in the set that ranked and then fell off, or that shipped a flow and lost conversion?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>That\u2019s a really interesting use case! We\u2019re currently focused on design and app discovery, so we don\u2019t track conversion or retention changes yet.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi, <a href=\"https:\/\/www.producthunt.com\/@jaimintf\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"jaimintf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jaimintf<\/a> Very cool site, I could see it being useful, but can you tell me how does it differ from Mobbin?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks <a href=\"https:\/\/www.producthunt.com\/@abhinav_prakashan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abhinav_prakashan<\/a>, two key differences:<\/p>\n<ul>\n<li>\n<p>We help founders discover what to build, not just how to design it, by showing app revenue data.<\/p>\n<\/li>\n<li>\n<p>Our Explore feature offers a unique, interactive way to discover app screens.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Looks really really cool. Do you guys have API or MCP? We\u2019re running a mini app builder, can be very good way to suggest our builders flows that win<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@markookhman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@markookhman<\/a>&nbsp;Thanks for your kind words, we&#8217;re shipping out a MCP ~1 week &#8211; stay in touch \ud83d\ude42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch! Quick question \u2014 where is the revenue data coming from? For a few of the apps I looked at, the numbers seem a bit off compared to what I&#8217;d expect. Curious if it&#8217;s estimated from a third-party source or pulled directly from somewhere.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I wasn&#8217;t able to test it without paying, even though it initially seemed like that might be an option. I wanted to see whether there were apps with maps. Searching by keyword returned several apps with &#8220;maps&#8221; in their names, but it wasn&#8217;t clear whether they actually included maps in their interfaces or how important maps were to the overall experience.<\/p>\n<p>I&#8217;d suggest allowing users to open at least 3\u20135 mockups after signing up, but before requiring payment. Personally, I might have subscribed if I had some confidence that the platform contained something useful for my needs.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Hey <a href=\"https:\/\/www.producthunt.com\/@natalia_iankovych\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@natalia_iankovych<\/a>, that\u2019s completely fair feedback.<\/p>\n<p>This is what a search for map-based interfaces looks like on Appllama. Once you open a screen, you can also explore similar screens across other apps.<\/p>\n<p>We\u2019ll definitely improve the preview experience so users can better understand the value before subscribing. <\/p>\n<p>Would love to know whether this example is useful for what you\u2019re looking for and if we can win you back.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1da305dd-fad6-4144-9c9f-c0c1a3e31f8b.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b82a93e4-a3c6-4eb2-956c-3dbbce872182.png?auto=compress,format&amp;codec=mozjpeg&amp;cs=strip\" style=\"max-width: 100%\"><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#6<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/3RO56PX4QHKTW7\" class=\"app-title\">Plethora<\/a><\/p>\n<div class=\"one-liner\">Youtube for interactive content<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">183<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Plethora\u662f\u4e00\u4e2a\u5c06\u201c\u77ed\u89c6\u9891\u4fe1\u606f\u6d41\u201d\u66ff\u6362\u4e3a\u201c\u5fae\u578b\u4e92\u52a8\u4f53\u9a8c\u6d41\u201d\u7684\u5185\u5bb9\u5e73\u53f0\uff0c\u7528\u6237\u53ef\u5728\u788e\u7247\u65f6\u95f4\u91cc\u76f4\u63a5\u73a9\u8ff7\u4f60\u6e38\u620f\u3001\u89e3\u8c1c\u3001\u4e92\u52a8\u827a\u672f\u6216\u6570\u5b57\u51cf\u538b\u73a9\u5177\uff0c\u89e3\u51b3\u201c\u88ab\u52a8\u5237\u89c6\u9891\u5374\u8d8a\u5237\u8d8a\u7d2f\u201d\u7684\u6ce8\u610f\u529b\u6d88\u8017\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/5c4c7df2-897a-440a-adf5-84ee0b52951d.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/lhhq0UjL8cw\"><source src=\"https:\/\/youtu.be\/lhhq0UjL8cw\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/8913a3bc-f909-44a3-9357-a9519b31a8ed.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/793f5f24-1efc-419e-8e77-7f5d7553b2e4.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1a97e87a-2235-4471-80eb-5c0632fd51bb.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d695b12a-5bd2-4da4-973c-fedd236e4520.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Android<\/span><br \/>\n            <span class=\"tag\">Art<\/span><br \/>\n            <span class=\"tag\">Puzzle Games<\/span><br \/>\n            <span class=\"tag\">Free Games<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u4e92\u52a8\u5185\u5bb9\u5e73\u53f0<\/span><br \/>\n            <span class=\"tag\">\u5fae\u578b\u6e38\u620f<\/span><br \/>\n            <span class=\"tag\">\u4fe1\u606f\u6d41\u66ff\u4ee3<\/span><br \/>\n            <span class=\"tag\">\u6570\u5b57\u89e3\u538b<\/span><br \/>\n            <span class=\"tag\">\u4ea4\u4e92\u5f0f\u827a\u672f<\/span><br \/>\n            <span class=\"tag\">\u4f11\u95f2\u76ca\u667a<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u6d88\u8d39<\/span><br \/>\n            <span class=\"tag\">\u521b\u4f5c\u8005\u751f\u6001<\/span><br \/>\n            <span class=\"tag\">Web\u4ea4\u4e92<\/span><br \/>\n            <span class=\"tag\">\u6ce8\u610f\u529b\u7ecf\u6d4e<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u5176\u6210\u763e\u6027\u4e0e\u521b\u610f\uff0c\u7279\u522b\u63d0\u5230\u5403\u8c46\u4eba\u3001\u89e3\u7ef3\u7b49\u6e38\u620f\u4ee4\u4eba\u5370\u8c61\u6df1\u523b\u3002\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u5728\u6280\u672f\u5b9e\u73b0\uff1a\u662f\u5426\u7528WebAssembly\/Canvas\u6c99\u76d2\u8fd0\u884c\u3002\u6709\u7528\u6237\u53cd\u9988\u843d\u5730\u9875\u5728Safari\u4e2d\u5361\u987f\uff0c\u53e6\u6709\u7528\u6237\u8be2\u95ee\u5982\u4f55\u5c06\u81ea\u5df1\u7684\u4e92\u52a8\u4f53\u9a8c\u63a5\u5165\u5e73\u53f0\uff0c\u5b98\u65b9\u56de\u5e94\u53ef\u901a\u8fc7create.plethora.studio\u63d0\u4ea4\uff0c\u5e76\u652f\u6301\u7528AI\u7f16\u7801\u52a9\u624b\u751f\u6210\u5185\u5bb9\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Plethora\u7684\u5b9a\u4f4d\u806a\u660e\u5730\u8e29\u4e2d\u4e86\u4e24\u4e2a\u6b63\u5728\u751f\u957f\u7684\u4ea4\u6c47\u70b9\uff1aAI\u964d\u4f4e\u7f16\u7a0b\u95e8\u69db\u540e\uff0c\u8f6f\u4ef6\u4ece\u201c\u5de5\u5177\u201d\u53d8\u4e3a\u201c\u6d88\u8d39\u54c1\u201d\uff1b\u4ee5\u53ca\u793e\u4ea4\u5a92\u4f53\u7528\u6237\u5bf9\u88ab\u52a8\u6c89\u6d78\u5f0f\u4fe1\u606f\u6d41\u7684\u5026\u6020\u3002\u5b83\u770b\u4f3c\u5728\u505a\u201c\u4e92\u52a8\u7248\u6296\u97f3\u201d\uff0c\u5b9e\u9645\u4e0a\u662f\u5728\u5c1d\u8bd5\u5b9a\u4e49\u4e00\u79cd\u65b0\u5185\u5bb9\u8303\u5f0f\u2014\u2014\u7a0b\u5e8f\u5373\u5185\u5bb9\uff0c\u4e92\u52a8\u5373\u9605\u8bfb\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u903b\u8f91\u770b\uff0c\u201c\u5fae\u578b\u4f53\u9a8c\u201d\u786e\u5b9e\u6bd4\u77ed\u89c6\u9891\u66f4\u80fd\u5e26\u6765\u4e3b\u52a8\u53c2\u4e0e\u611f\u548c\u591a\u5df4\u80fa\u523a\u6fc0\uff0c\u4e14\u5929\u7136\u9002\u5408\u79fb\u52a8\u7aef\u7684\u788e\u7247\u65f6\u95f4\u3002\u4f46\u8fd9\u4e5f\u66b4\u9732\u5176\u6838\u5fc3\u7ed3\u6784\u6027\u98ce\u9669\uff1a\u5185\u5bb9\u4f9b\u7ed9\u7684\u53ef\u6301\u7eed\u6027\u3002\u5f53\u524d\u5e73\u53f0\u4f9d\u8d56\u5c11\u6570\u521b\u4f5c\u8005\u6216\u65e9\u671f\u53d1\u70e7\u53cb\u7528AI\u5927\u91cf\u751f\u6210\u201c\u5c0f\u73a9\u610f\u201d\uff0c\u4f46\u8fd9\u7c7b\u5185\u5bb9\u6781\u6613\u9677\u5165\u540c\u8d28\u5316\u2014\u2014\u73a9\u4e00\u4e2a\u6708\u540e\uff0c\u201cpuzzle\u201d\u548c\u201cmini-game\u201d\u7684\u58c1\u5792\u4f1a\u8fc5\u901f\u6a21\u7cca\uff0c\u7528\u6237\u7684\u65b0\u9c9c\u611f\u5c06\u5feb\u901f\u8870\u51cf\u3002\u66f4\u5173\u952e\u7684\u662f\uff0c\u8fd9\u79cd\u8f7b\u91cf\u4e92\u52a8\u7f3a\u4e4f\u77ed\u89c6\u9891\u90a3\u79cd\u201c\u793e\u4ea4\u8d27\u5e01\u201d\u5c5e\u6027\uff0c\u7528\u6237\u5f88\u96be\u56e0\u4e3a\u201c\u73a9\u4e86\u4e00\u4e2a\u4f18\u8d28\u903b\u8f91\u8c1c\u9898\u201d\u800c\u4ea7\u751f\u5206\u4eab\u6216\u793e\u4ea4\u7ed1\u5b9a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u6b21\uff0c\u5b98\u65b9\u5c61\u6b21\u63d0\u53ca\u201c\u6ce8\u610f\u529b\u56de\u5f52\u201d\u548c\u201c\u5bf9\u6297\u7126\u8651\u201d\uff0c\u4f46\u672c\u8d28\u4e0a\u5176\u4ea7\u54c1\u673a\u5236\u4ecd\u5728\u4e89\u593a\u7528\u6237\u65f6\u95f4\uff0c\u53ea\u4e0d\u8fc7\u4ece\u201c\u5237\u89c6\u9891\u201d\u6362\u6210\u4e86\u201c\u6233\u73a9\u5177\u201d\u3002\u5982\u679cPlethora\u4e0d\u80fd\u5efa\u7acb\u201c\u6709\u9650\u65f6\u957f+\u6df1\u5ea6\u5fc3\u6d41\u201d\u7684\u786c\u6027\u62a4\u57ce\u6cb3\uff0c\u5b83\u5f88\u53ef\u80fd\u6210\u4e3a\u4e00\u4e2a\u9ad8\u7ea7\u7248\u201c\u5728\u7ebf\u6e38\u620f\u7ad9\u201d\uff0c\u800c\u975e\u5a92\u4f53\u5e73\u53f0\u3002\u6280\u672f\u5c42\u9762\uff0c\u7528\u6237\u7684\u8d28\u7591\u4e5f\u5207\u4e2d\u8981\u5bb3\uff1a\u82e5\u5fae\u4f53\u9a8c\u90fd\u4f9d\u8d56webview\u548cJavaScript\u89e3\u91ca\u6267\u884c\uff0c\u6027\u80fd\u548c\u7535\u6c60\u635f\u8017\u5c06\u6210\u4e3a\u79fb\u52a8\u7aef\u4f53\u9a8c\u7684\u9690\u5f62\u5929\u82b1\u677f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6700\u503c\u5f97\u80af\u5b9a\u7684\u662f\u5b83\u660e\u786e\u6784\u5efa\u4e86\u521b\u4f5c\u8005\u751f\u6001\uff08create.plethora.studio\uff09\uff0c\u4e14\u652f\u6301AI\u8f85\u52a9\u521b\u5efa\uff0c\u8fd9\u4f7f\u5176\u5177\u5907\u6210\u4e3a\u201c\u4e92\u52a8\u5185\u5bb9\u65e9\u671f\u5206\u53d1\u6e20\u9053\u201d\u7684\u6f5c\u529b\u3002\u4f46\u524d\u63d0\u662f\u5b83\u5fc5\u987b\u4e0b\u5b9a\u51b3\u5fc3\u4e0e\u201c\u5f00\u653e\u6807\u51c6\u201d\u7ed1\u5b9a\uff0c\u6bd4\u5982\u652f\u6301\u901a\u7528\u4e92\u52a8\u5185\u5bb9\u534f\u8bae\uff0c\u5426\u5219\u5f88\u5bb9\u6613\u6ca6\u4e3aAI\u751f\u6210\u73a9\u5177\u7684\u4ed3\u5e93\u3002\u4e00\u53e5\u8bdd\uff1a\u597d\u6982\u5ff5\uff0c\u7f3a\u673a\u5236\uff0c\u4e14\u8981\u8b66\u60d5\u6210\u4e3a\u201c\u9ad8\u7ea7\u7cd6\u679c\u201d\u800c\u975e\u201c\u5185\u5bb9\u65b0\u7269\u79cd\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Plethora<\/span>\n                <\/div>\n<div class=\"comment-content\">Plethora is a platform for interactive content: a feed where micro-experiences live. Mini-games, puzzles, digital fidgets, interactive art, tiny worlds, educational simulations. Every bit can be touched, moved, poked, and played with. The content responds to you.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey ProductHunt,<\/p>\n<p>We built Plethora to be the next home for interactive content.<\/p>\n<p>Our bet &#8211; As AI democratizes programming, programs become the consumables of tomorrow. <\/p>\n<p>Our feeds have been full of videos, and our attention is being rented to big tech estates. <\/p>\n<p>Plethora aims to bring back attention, and let the user consume with control and agency. <\/p>\n<p>Plethora offers an alternative scrolling experience. Your feed consists of &#8211; <\/p>\n<p>\u2022\u2060  \u2060classic games you miss &#8211; arcades and candy crush and piano tiles. <\/p>\n<p>\u2022\u2060  \u2060games you have never seen and will enjoy enjoying. <\/p>\n<p>\u2022\u2060  \u2060hundreds of puzzles to scratch your brain<\/p>\n<p>\u2022\u2060  \u2060fidget toys for when overstimulated. <\/p>\n<p>\u2022\u2060  \u2060interactive art &#8211; to interact with like god intended. <\/p>\n<p>\u2022\u2060  \u2060interactive stories. <\/p>\n<p>\u2022\u2060  \u2060simulations and zero-player games and worlds to hang out in. <\/p>\n<p>\u2022\u2060  \u2060educational content \/ active learning &#8211; to finally help you see. <\/p>\n<p>\u2022\u2060  \u2060utility like tuning your guitar. <\/p>\n<p>\u2022\u2060  \u2060experiences waiting to be figured out. <\/p>\n<p>Every bit on Plethora responds to you.<\/p>\n<p>Early love for Plethora has people using it in-between moments, to get into flow state and to deal with overstimulation and anxiety.<\/p>\n<p>Early creators see Plethora being the defining platform for the medium. <\/p>\n<p>Follow us along our journey.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>9<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@pranay_dongre\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pranay_dongre<\/a>&nbsp;nice launch , congrats\ud83d\ude4c Is Plethora running these micro-experiences in lightweight webviews or using a custom WebAssembly \/ HTML5 canvas sandbox runtime?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@pranay_dongre\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pranay_dongre<\/a>&nbsp;For someone who\u2019s feeling overstimulated right now and just wants 2\u20133 minutes of calm, what\u2019s the <em>one<\/em> type of \u201cbit\u201d you\u2019d recommend they start with on Plethora; and why that one?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@pranay_dongre\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pranay_dongre<\/a>&nbsp;It&#8217;s surprisingly addictive! \ud83d\ude42<\/p>\n<p>P.S. Your landing page feels a bit sluggish in Safari.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I have poured the entirety on my childhood on this app.<br \/>You will find creating for Plethora as a newfound joy.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is such an amazing app, with so many interactive games <\/p>\n<\/p>\n<p>I especially liked pacman and another intuitive game where we had to unentangle knots\/strings between points \ud83e\udde0<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>very interesting concept. reminds me of some games like until dawn<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I love the idea of this! i like this because when it comes to art, my favorite type is interactive. One day when i become a physical artist (3D mediums), i want my art to be interactive. Fun fact, im a dancer and an AI engineer, so hopefully that helps with the demographic, im very much a polymath, just stopping at those 2.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Oh wow! This looks so cool&#8230; just downloaded. I wonder if there&#8217;s some room for us to put some of our interactive experiences onto your platform? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@maria_wall_ball\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@maria_wall_ball<\/a>&nbsp;Yes ofcourse, please checkout create.plethora.studio. <br \/>Make bits by taking to your coding agent.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#7<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/GHBCQJ4B6XNFDC\" class=\"app-title\">claudemon<\/a><\/p>\n<div class=\"one-liner\">Wild Pok\u00e9mon appear while you wait for Claude Code<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">145<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>claudemon \u5c06 Claude Code \u7684\u7b49\u5f85\u65f6\u95f4\u8f6c\u5316\u4e3a\u5b9d\u53ef\u68a6\u6355\u6349\u6e38\u620f\u2014\u2014\u4f60\u7684\u6bcf\u4e00\u6761\u63d0\u793a\u8bcd\u90fd\u662f\u8349\u5730\u91cc\u7684\u4e00\u6b65\uff0cAI \u6bcf\u5de5\u4f5c 20 \u79d2\u5c31\u524d\u8fdb\u4e00\u6b65\uff0c\u968f\u673a\u9047\u5230\u91ce\u751f\u5b9d\u53ef\u68a6\u540e\uff0c\u4f60\u53ef\u4ee5\u5728\u7b2c\u4e8c\u4e2a\u7ec8\u7aef\u6807\u7b7e\u9875\u91cc\u4e0e\u5b83\u6218\u6597\uff0c\u5168\u90e8 151 \u53ea\u5b9d\u53ef\u68a6\u5b8c\u5168\u672c\u5730\u8fd0\u884c\uff0c\u65e0\u9700\u8d26\u6237\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a0607e90-1c01-4dc2-8a54-6bab54c1ca6e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/54cba2fb-c7c0-4748-8b7b-d892700055f4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b9d228ca-4f5b-4f41-b806-1a1b85e605df.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/566930d3-e984-424c-802b-b15f23d42275.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c7785a4f-cbf5-48f7-aff8-39513a92a133.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ed37813a-30f4-4b06-8754-8c582aa36929.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Games<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u7ec8\u7aef\u6e38\u620f<\/span><br \/>\n            <span class=\"tag\">Claude Code<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u7b49\u5f85\u65f6\u95f4\u6d88\u78e8<\/span><br \/>\n            <span class=\"tag\">\u5b9d\u53ef\u68a6<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u8fd0\u884c<\/span><br \/>\n            <span class=\"tag\">\u6e38\u620f\u5316\u63d2\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u547d\u4ee4\u884c\u5e94\u7528<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u79f0\u8d5e\u521b\u610f\u6709\u8da3\uff0c\u8ba4\u4e3a\u201c\u7b49\u5f85\u53d8\u6e38\u620f\u201d\u89e3\u51b3\u4e86\u7ec8\u7aef\u7b49\u5f85\u65f6\u7684\u65e0\u804a\u4e0e\u5206\u5fc3\u95ee\u9898\uff0c\u4e14\u5b8c\u5168\u672c\u5730\u3001\u5f00\u6e90\u662f\u52a0\u5206\u9879\u3002\u6709\u7528\u6237\u63d0\u8bae\u5c06\u906d\u9047\u89e6\u53d1\u673a\u5236\u4ece\u201c\u8ba1\u65f6\u201d\u6539\u4e3a\u201c\u7ed1\u5b9a\u4efb\u52a1\u9000\u51fa\u7801\u201d\uff0c\u8fd9\u6837\u5931\u8d25\u7684\u4efb\u52a1\u5c31\u65e0\u6cd5\u6355\u6349\u5b9d\u53ef\u68a6\uff0c\u589e\u52a0\u6e38\u620f\u4e0e\u771f\u5b9e\u5de5\u4f5c\u7684\u5f3a\u5173\u8054\uff1b\u5f00\u53d1\u8005\u56de\u5e94\u79f0\u53ef\u591a\u6b21\u906d\u9047\u4ee5\u907f\u514d\u957f\u4efb\u52a1\u4e2d\u7b49\u5f85\u5355\u4e00\u6218\u6597\u5bfc\u81f4\u7684\u65e0\u804a\u3002\u53e6\u6709\u7528\u6237\u54a8\u8be2\u662f\u5426\u5f71\u54cd\u4efb\u52a1\u6027\u80fd\uff0c\u5f00\u53d1\u8005\u660e\u786e\u56de\u590d\u5bf9 Claude \u8fd0\u884c\u65e0\u4efb\u4f55\u5f71\u54cd\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                claudemon \u7684\u672c\u8d28\u662f\u4e00\u4e2a\u201c\u6ce8\u610f\u529b\u5b89\u6170\u5242\u201d\uff0c\u5b83\u6ca1\u6709\u51cf\u5c11\u7b49\u5f85\uff0c\u4e5f\u6ca1\u6709\u52a0\u901f\u4efb\u52a1\uff0c\u800c\u662f\u8ba9\u7528\u6237\u7684\u5927\u8111\u4ece\u201c\u7126\u8651\u7684\u7a7a\u767d\u201d\u5207\u6362\u5230\u201c\u4e3b\u52a8\u7684\u72e9\u730e\u201d\u3002\u8fd9\u5728\u5fc3\u7406\u5b66\u4e0a\u662f\u6210\u7acb\u7684\u2014\u2014\u5b9d\u53ef\u68a6\u7684\u5373\u65f6\u53cd\u9988\u6070\u597d\u8865\u507f\u4e86 AI \u5de5\u4f5c\u4e2d\u65e0\u6cd5\u9884\u671f\u7684\u957f\u5c3e\u5ef6\u8fdf\u3002\u4f46\u4ece\u4ea7\u54c1\u903b\u8f91\u4e0a\u770b\uff0c\u5b83\u5b58\u5728\u4e00\u4e2a\u6839\u672c\u6027\u7684\u77db\u76fe\uff1a\u6e38\u620f\u8fdb\u5ea6\u4e0e AI \u5de5\u4f5c\u8017\u65f6\u5f3a\u7ed1\u5b9a\uff0c\u8fd9\u610f\u5473\u7740 AI \u8d8a\u6162\u3001\u4efb\u52a1\u8d8a\u5361\uff0c\u6e38\u620f\u6536\u76ca\u8d8a\u5927\u3002\u7528\u6237\u4f1a\u88ab\u8bf1\u5bfc\u53bb\u6b23\u8d4f\u201c\u4e45\u62d6\u4e0d\u51b3\u7684\u5931\u8d25\u201d\uff0c\u800c\u975e\u63a8\u52a8\u4efb\u52a1\u5feb\u901f\u5b8c\u6210\uff0c\u751a\u81f3\u53ef\u80fd\u65e0\u610f\u8bc6\u4e2d\u504f\u597d\u66f4\u6162\u7684 agent \u914d\u7f6e\u3002\u66f4\u6709\u4ef7\u503c\u7684\u6539\u8fdb\u65b9\u5411\uff0c\u662f\u8bc4\u8bba\u4e2d\u63d0\u5230\u7684\uff1a\u4ee5\u4efb\u52a1\u9000\u51fa\u7801\u4f5c\u4e3a\u89e6\u53d1\u6761\u4ef6\uff0c\u5931\u8d25\u5373\u5931\u53bb\u6355\u6349\u673a\u4f1a\uff0c\u80dc\u5229\u5219\u52a0\u901f\u906d\u9047\u9891\u7387\uff0c\u8ba9\u6e38\u620f\u5956\u52b1\u4e0e\u5de5\u4f5c\u7ed3\u679c\u5bf9\u9f50\u3002\u5426\u5219\uff0c\u8fd9\u53ea\u662f\u4e00\u4e2a\u7cbe\u81f4\u7684\u201c\u7b49\u5f85\u7f8e\u5316\u5668\u201d\uff0c\u800c\u4e0d\u662f\u771f\u6b63\u7684\u751f\u4ea7\u529b\u6e38\u620f\u5316\u3002\u5f00\u6e90\u548c\u672c\u5730\u5316\u867d\u662f\u7f8e\u5fb7\uff0c\u4f46\u4e0d\u8db3\u4ee5\u63a9\u76d6\u5b83\u5728\u201c\u4ef7\u503c\u9a71\u52a8\u201d\u4e0a\u7684\u7f3a\u4f4d\u2014\u2014\u76ee\u524d\u5b83\u53ea\u5956\u52b1\u65f6\u957f\uff0c\u4e0d\u5956\u52b1\u8d28\u91cf\uff0c\u957f\u671f\u4f7f\u7528\u540e\u7528\u6237\u5728\u65b0\u9c9c\u611f\u6d88\u9000\u65f6\uff0c\u4f1a\u610f\u8bc6\u5230\u81ea\u5df1\u7528\u751f\u4ea7\u5de5\u5177\u7684\u8010\u5fc3\u6362\u4e86\u4e00\u573a\u65e0\u610f\u4e49\u7684\u6536\u96c6\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">claudemon<\/span>\n                <\/div>\n<div class=\"comment-content\">Half of Claude Code is waiting. claudemon makes that time a game: your prompts are steps through the grass, every 20s of work another step. Something jumps out, the status line says so, you fight it in a second terminal tab. All 151, fully local, no account.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi PH \ud83d\udc4b<\/p>\n<p>Half my day in Claude Code is watching it work. Not long enough to switch<br \/>\ntasks, too long to just sit there. claudemon lives in that gap.<\/p>\n<p>It&#8217;s a Pok\u00e9mon game that only advances while Claude does. Your prompts are<br \/>\nsteps through the grass; every twenty seconds Claude works is another step.<br \/>\nSomething jumps out, the status line tells you, you fight it in a second<br \/>\nterminal tab.<\/p>\n<p>OpenSource, Free, MIT, fully local.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>hey this sounds really fun! im wondering if it has any effect on wait times?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ethan_cheng\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ethan_cheng<\/a>&nbsp;Haha nope, absolutely none! It doesn&#8217;t speed up or slow down Claude at all. Purely cosmetic (and much more fun to watch than a loading spinner)!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">@zamarrowski<br \/>\nTurning the AI waiting gap into a Pok\u00e9mon loop is genius! Context switching usually kills productivity, so keeping the user engaged in the terminal without losing focus is a great solution.<br \/>\nSuper cool concept for open-source excited to see where this goes!<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The completionist in me sees &#8220;all 151, fully local&#8221; and immediately wants to leave long agent runs going just to fill out the Pok\u00e9dex lol. You&#8217;ve somehow built the one dev tool that makes me want MORE waiting \u2014 nicely done.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the second terminal tab angle is so weird it kind of works. caught myself actually looking forward to checking back in.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Going to give it a spin! Now the waiting while claude works is a real pain and I don&#8217;t see it going away for the next few years. So loved this idea, super builder centric. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@himanshu_garg\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himanshu_garg<\/a>&nbsp;Thanks! Exactly, waiting is just part of the deal for a while, so might as well make it fun. Let me know what you think when you give it a spin!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch, <a href=\"https:\/\/www.producthunt.com\/@zamarrowski\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"zamarrowski\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zamarrowski<\/a>\ud83d\ude80 <\/p>\n<p>Converting idle wait time into a Pokemon game is such a clever idea. Context switching for 20-second waits usually kills focus, so keeping it right in the terminal is super smart. Love that it&#8217;s open source and fully local too. <\/p>\n<p>Good luck with the launch today!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@founder_daksh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@founder_daksh<\/a>&nbsp;Thanks a lot! Appreciate it \ud83d\ude4c Exactly, the goal was to keep you hooked on the terminal instead of alt-tabbing while Claude takes a minute. Hope you enjoy checking it out!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The thing that makes this work is that the game only advances while Claude does, which is also the trap. You&#8217;re paying people in Pok\u00e9mon for waiting, so a run that spins for 20 minutes and produces nothing still feels great. I&#8217;d tie the encounter to exit code rather than elapsed time. Then a failed run costs you the catch, and you&#8217;ve accidentally built the only test result anyone would actually watch for.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@asadmalik901\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@asadmalik901<\/a>&nbsp;Good idea, thanks! The idea is that several encounters can happen per agent run so that if the run is very long, people don&#8217;t get bored with just waiting for one battle while Claude Code finishes to find out if it was caught or not<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#8<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/B4H2XU7GUPQ3UJ\" class=\"app-title\">yapyap<\/a><\/p>\n<div class=\"one-liner\">Own your voice again. Local-first voice &#038; meeting recorder.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">142<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>yapyap\u662f\u4e00\u6b3e\u672c\u5730\u4f18\u5148\u7684\u8bed\u97f3\u4e0e\u4f1a\u8bae\u8bb0\u5f55\u5de5\u5177\uff0c\u5728\u65e0\u9700\u8ba2\u9605\u3001\u4fdd\u62a4\u9690\u79c1\u7684\u573a\u666f\u4e0b\uff0c\u89e3\u51b3\u7528\u6237\u5bf9\u97f3\u9891\u6570\u636e\u5916\u6cc4\u548c\u6301\u7eed\u4ed8\u8d39\u7684\u75db\u70b9\uff0c\u5b9e\u73b0\u5168\u79bb\u7ebf\u5f55\u97f3\u3001\u8f6c\u5199\u3001\u8bf4\u8bdd\u4eba\u8bc6\u522b\u53caAI\u6458\u8981\u751f\u6210\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/60813010-171a-48f0-bd4d-a1eb748cc2b7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/859941dd-42f0-4362-a90b-08513513f403.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/106921de-7d44-4fb8-96c8-320fddb8b650.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/dd620a35-03e6-4737-a3c2-7efb9ca5f426.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f7e231f5-63de-493d-923f-9c0d442aaa7e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c072a9dd-8ec5-4aa0-93ae-8d38665a5c8e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0dc2b3e0-a2f0-4d10-add8-0bd7c3b72aa9.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/e1983d1c-dd00-4a0b-a0ce-5cb91ce6e888.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/VzbNr_IIb84\"><source src=\"https:\/\/youtu.be\/VzbNr_IIb84\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Notes<\/span><br \/>\n            <span class=\"tag\">Meetings<\/span><br \/>\n            <span class=\"tag\">Audio<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u8bb0\u5f55<\/span><br \/>\n            <span class=\"tag\">\u4f1a\u8bae\u8f6c\u5199<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u79bb\u7ebfAI<\/span><br \/>\n            <span class=\"tag\">\u4e70\u65ad\u5236<\/span><br \/>\n            <span class=\"tag\">\u8bf4\u8bdd\u4eba\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u6458\u8981<\/span><br \/>\n            <span class=\"tag\">\u65e0\u8ba2\u9605<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u4e3b\u8981\u8d5e\u8d4f\u672c\u5730\u5904\u7406\u4e0e\u9690\u79c1\u4fdd\u62a4\u7406\u5ff5\uff0c\u8ba4\u4e3a\u201c\u6570\u636e\u4e0d\u79bb\u5f00\u8bbe\u5907\u201d\u548c\u201c\u65e0\u8ba2\u9605\u201d\u6781\u5177\u5438\u5f15\u529b\u3002\u90e8\u5206\u7528\u6237\u8be2\u95ee\u5ba2\u6237\u8bc4\u4ef7\u5bf9\u83b7\u5ba2\u7684\u5f71\u54cd\uff0c\u9690\u542b\u5bf9\u5e02\u573a\u63a8\u5e7f\u548c\u5546\u4e1a\u53ef\u884c\u6027\u7684\u5173\u5207\uff0c\u4f46\u6574\u4f53\u53cd\u9988\u79ef\u6781\uff0c\u672a\u89c1\u529f\u80fd\u7f3a\u9677\u6216\u4f7f\u7528\u95ee\u9898\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                yapyap\u7684\u201c\u53cd\u4e91\u7aef\u201d\u53d9\u4e8b\u7cbe\u51c6\u5207\u4e2d\u4e86\u5f53\u524dSaaS\u8ba2\u9605\u75b2\u52b3\u4e0e\u6570\u636e\u9690\u79c1\u7126\u8651\u4e24\u5927\u60c5\u7eea\uff0c\u5176\u201c\u4e70\u65ad\u5236+\u672c\u5730\u63a8\u7406\u201d\u7684\u5b9a\u4f4d\u5728Product Hunt\u4e0a\u83b7\u5f97142\u7968\u548c\u6b63\u5411\u8bc4\u8bba\uff0c\u8bf4\u660e\u8fd9\u4e00\u5dee\u5f02\u5316\u7b56\u7565\u5728\u65e9\u671f\u91c7\u7528\u8005\u4e2d\u6709\u6548\u3002\u4f46\u51b7\u9759\u770b\uff0c\u4ea7\u54c1\u4ef7\u503c\u5e76\u975e\u65e0\u61c8\u53ef\u51fb\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u9996\u5148\uff0c\u672c\u5730AI\u8f6c\u5199\u4e0e\u6458\u8981\u7684\u8d28\u91cf\u5929\u82b1\u677f\u53d6\u51b3\u4e8e\u7528\u6237\u786c\u4ef6\uff0c\u5c24\u5176\u957f\u97f3\u9891\u3001\u591a\u4eba\u5bf9\u8bdd\u573a\u666f\u4e0b\uff0c\u6d88\u8d39\u7ea7\u8bbe\u5907\u7684\u5904\u7406\u901f\u5ea6\u4e0e\u51c6\u786e\u7387\u5fc5\u7136\u5f31\u4e8e\u4e91\u7aef\u5927\u6a21\u578b\u3002\u6240\u8c13\u201c\u4e0d\u59a5\u534f\u201d\u5728\u4f53\u9a8c\u5c42\u9762\u5b9e\u5219\u662f\u4e00\u79cd\u59a5\u534f\uff0c\u53ea\u662f\u7528\u6237\u7528\u9690\u79c1\u6362\u53d6\u4e86\u4fbf\u5229\u6027\uff0c\u800cyapyap\u7528\u7b97\u529b\u6362\u53d6\u4e86\u4e3b\u6743\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u6b21\uff0c\u201c\u65e0\u8ba2\u9605\u201d\u610f\u5473\u7740\u4ea7\u54c1\u9700\u9760\u4e00\u6b21\u6027\u4e70\u65ad\u8986\u76d6\u957f\u671f\u7ef4\u62a4\u3001\u6a21\u578b\u66f4\u65b0\u548c\u517c\u5bb9\u6027\u9002\u914d\u6210\u672c\u3002\u672c\u5730\u6a21\u578b\u8fed\u4ee3\u901f\u5ea6\u8fdc\u6162\u4e8e\u4e91\u7aef\uff0c\u82e5OpenAI\u3001Anthropic\u7684\u672c\u5730\u5316\u79bb\u7ebf\u6a21\u578b\u80fd\u529b\u6ede\u540e\uff0cyapyap\u7684\u201cLenses\u201d\u751f\u6001\u5c06\u9762\u4e34\u63d2\u4ef6\u8d28\u91cf\u53c2\u5dee\u3001\u5f00\u53d1\u8005\u52a8\u529b\u4e0d\u8db3\u7684\u56f0\u5883\u3002\u6ca1\u6709\u6301\u7eed\u6536\u5165\u6d41\uff0c\u793e\u533a\u751f\u6001\u548c\u6838\u5fc3\u5f15\u64ce\u5347\u7ea7\u90fd\u5c06\u662f\u9690\u60a3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u4ea7\u54c1\u5ba3\u79f0\u201c\u53ef\u9009\u8fde\u63a5\u4e91\u7aef\u5927\u5382\u201d\uff0c\u8fd9\u5b9e\u9645\u4e0a\u627f\u8ba4\u4e86\u672c\u5730\u63a8\u7406\u7684\u5c40\u9650\u6027\u2014\u2014\u5f53\u7528\u6237\u9700\u8981\u66f4\u5f3a\u5206\u6790\u65f6\uff0c\u4ecd\u5f97\u4f9d\u8d56\u4e91\u7aef\uff0c\u53ea\u662f\u4ece\u201c\u88ab\u8feb\u201d\u53d8\u4e3a\u201c\u53ef\u9009\u201d\u3002\u8fd9\u524a\u5f31\u4e86\u201c\u5b8c\u5168\u672c\u5730\u201d\u7684\u7eaf\u7cb9\u6027\u5356\u70b9\uff0c\u4f46\u4e5f\u52a1\u5b9e\u5730\u4fdd\u7559\u4e86\u8fdb\u9636\u9700\u6c42\u51fa\u53e3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u4ef7\u503c\u70b9\u5728\u4e8e\u201c\u8bb0\u5fc6\u7ba1\u7406\u201d\u800c\u975e\u201c\u5f55\u97f3\u8f6c\u5199\u201d\u3002\u53ef\u641c\u7d22\u7684\u5386\u53f2\u8bed\u97f3\u5e93\u3001\u81ea\u5b9a\u4e49\u5206\u6790\u89c6\u89d2\uff0c\u5c06\u5de5\u5177\u4ece\u4e00\u6b21\u6027\u5904\u7406\u63d0\u5347\u4e3a\u4e2a\u4eba\u77e5\u8bc6\u8d44\u4ea7\u5e93\u3002\u82e5\u80fd\u5c06\u672c\u5730\u6570\u636e\u4e0e\u8bbe\u5907\u7aef\u667a\u80fd\u4f53\uff08\u5982Apple Intelligence\u3001Windows Copilot\uff09\u6df1\u5ea6\u878d\u5408\uff0c\u6216\u53ef\u6210\u4e3a\u4e2a\u4eba\u8bed\u97f3\u6570\u636e\u7684\u201c\u672c\u5730\u4e2d\u67a2\u201d\u3002\u4f46\u76ee\u524d\u6765\u770b\uff0c\u4ea7\u54c1\u4ecd\u505c\u7559\u5728\u201c\u9690\u79c1\u4f18\u5148\u7684\u6548\u7387\u5de5\u5177\u201d\u5c42\u9762\uff0c\u5c1a\u672a\u5f62\u6210\u4e0d\u53ef\u66ff\u4ee3\u7684\u62a4\u57ce\u6cb3\u3002\u5efa\u8bae\u56e2\u961f\u5c3d\u5feb\u5f00\u6e90Lenses\u534f\u8bae\uff0c\u5f15\u5165\u66f4\u591a\u79bb\u7ebf\u6a21\u578b\u9002\u914d\uff0c\u5e76\u4ee5\u4f01\u4e1a\u672c\u5730\u5316\u90e8\u7f72\u4e3a\u7a81\u7834\u53e3\u2014\u2014\u90a3\u91cc\u201c\u6570\u636e\u4e0d\u51fa\u57df\u201d\u662f\u786c\u6027\u521a\u9700\uff0c\u613f\u610f\u4e3a\u4e00\u52b3\u6c38\u9038\u7684\u6a21\u5f0f\u4ed8\u51fa\u66f4\u9ad8\u4ef7\u683c\u3002\u5426\u5219\uff0c\u5c0f\u4f17\u7684\u9690\u79c1\u6781\u5ba2\u5708\u5b50\uff0c\u6491\u4e0d\u8d77\u4e00\u6b3e\u201c\u6c38\u4e45\u201d\u4ea7\u54c1\u7684\u957f\u671f\u4e3b\u4e49\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">yapyap<\/span>\n                <\/div>\n<div class=\"comment-content\">Every meeting recorder ships your audio to the cloud and bills you monthly. yapyap does neither. It records, transcribes, names your speakers, and turns talk into summaries and action items entirely on your own machine. \u201cLenses\u201d reshape each recording into whatever you need: a summary, a to-do list, or a decision log. You can install more or build your own. Prefer the cloud? Optionally connect any major provider: OpenAI, Anthropic, Groq. Either way, yapyap is yours forever. No subscription.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>\ud83d\udc4b Hey Product Hunt!<\/p>\n<p>I got sick and tired of paying subscriptions for everything in my life.<\/p>\n<p>The latest addition? A transcription app that was charging me every month to upload my conversations to their servers.<\/p>\n<p>So I built the opposite.<\/p>\n<p>yapyap records and transcribes conversations entirely on your machine. Speaker identification, summaries, action items, custom analysis. All local. No account.<\/p>\n<p>No bot is joining your calls, and no audio is leaving your device.<\/p>\n<p>The parts I&#8217;m most stubborn about:<\/p>\n<p>\ud83d\udd12 <strong>Nothing leaves your device.<\/strong><br \/>Transcription, diarization, and the AI analysis all run on your hardware. Not \u201cencrypted in transit.\u201d Not \u201cwe don&#8217;t train on your data\u201d. Just: it never goes anywhere.<\/p>\n<p>\ud83d\udcb8 <strong>You buy it once.<\/strong><br \/>No monthly fee, no lock-in, and no archive holding your words hostage. Your recordings stay searchable, exportable, and yours. Forever.<\/p>\n<p>\ud83d\udd0d <strong>It&#8217;s a memory, not a transcript dump.<\/strong><br \/>Everything you&#8217;ve ever recorded is searchable, and you can point custom analyses (\u201clenses\u201d) at any conversation.<\/p>\n<p>\ud83d\udcf1 <strong>There&#8217;s a phone app too<\/strong><br \/>For the conversations that don&#8217;t happen at your desk. It syncs to your desktop over your network and no cloud in between.<\/p>\n<p>Software used to work this way. <em>I still believe it can.<\/em><\/p>\n<p>I&#8217;d genuinely love your feedback!<\/p>\n<p>Own your voice again.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>8<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@xiduzo Out of curiosity, how important are customer reviews when it comes to winning new clients for your business?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@xiduzo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@xiduzo<\/a>&nbsp;love the idea that it&#8217;s keeping everything local, mate! I think people really value privacy of your data and this sounds pretty useful!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#9<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/ONEE7XAFIK6ZRL\" class=\"app-title\">Snapdown<\/a><\/p>\n<div class=\"one-liner\">Turn anything on your Mac screen into clean Markdown<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">137<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Snapdown\u662f\u4e00\u6b3emacOS\u672c\u5730OCR\u5de5\u5177\uff0c\u901a\u8fc7\u5feb\u6377\u952e\u622a\u53d6\u5c4f\u5e55\u4efb\u610f\u533a\u57df\uff0c\u5c06\u8868\u683c\u3001\u5217\u8868\u3001\u6807\u9898\u7b49\u89c6\u89c9\u7ed3\u6784\u76f4\u63a5\u8f6c\u6362\u4e3a\u5e72\u51c0\u7684Markdown\u683c\u5f0f\uff0c\u89e3\u51b3\u201c\u770b\u5f97\u89c1\u4f46\u9009\u4e0d\u4e2d\u201d\u5185\u5bb9\u7684\u590d\u5236\u4e0e\u6574\u7406\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b610558b-d8d7-4e82-b9fa-65bcbdd50e42.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/26fbe4f1-3e95-4458-903e-3f561b32c661.gif?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4b283075-a53b-4ac7-8486-67981df0299b.gif?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/576711a3-22da-448b-af65-2fc7eca206af.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b7d86af0-1dc7-479b-90be-45ad9c6ff2aa.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">OCR\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">Markdown\u8f6c\u6362<\/span><br \/>\n            <span class=\"tag\">\u5c4f\u5e55\u622a\u56fe<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u9690\u79c1\u8ba1\u7b97<\/span><br \/>\n            <span class=\"tag\">\u82f9\u679c\u82af\u7247<\/span><br \/>\n            <span class=\"tag\">\u8868\u683c\u7ed3\u6784\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">\u6587\u6863\u5904\u7406<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8ba4\u53ef\u5176\u7ed3\u6784\u4fdd\u7559\u80fd\u529b\uff0c\u5c24\u5176\u662f\u8868\u683c\u4e0e\u5217\u8868\u8f6c\u5316\u8d28\u91cf\u3002\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u5728\uff1a1) \u8de8\u6eda\u52a8\u8868\u683c\u7684 Aggregate Mode \u62fc\u63a5\u51c6\u786e\u6027\uff1b2) \u5b8c\u5168\u79bb\u7ebf\u53ef\u7528\u6027\u786e\u8ba4\uff1b3) \u5bf9\u4e0d\u786e\u5b9a\u7684OCR\u7ed3\u679c\u662f\u5426\u63d0\u4f9b\u7f6e\u4fe1\u5ea6\u6807\u8bb0\uff0c\u4ee5\u9632\u6570\u636e\u7be1\u6539\u98ce\u9669\uff1b4) \u662f\u5426\u4f9d\u8d56\u6d4f\u89c8\u5668DOM\u6216\u7eaf\u89c6\u89c9\u8bc6\u522b\uff08\u5df2\u786e\u8ba4\u7eaf\u89c6\u89c9\uff0c\u4e0d\u8bfbDOM\uff09\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Snapdown\u7684\u5207\u5165\u70b9\u7cbe\u51c6\u4e14\u514b\u5236\u2014\u2014\u5b83\u6ca1\u6709\u91cd\u9020OCR\u8f6e\u5b50\uff0c\u800c\u662f\u9488\u5bf9\u201c\u7ed3\u6784\u4e22\u5931\u201d\u8fd9\u4e2aOCR\u884c\u4e1a\u957f\u671f\u88ab\u5ffd\u89c6\u7684\u75db\u70b9\u505a\u6df1\u505a\u900f\u3002\u628a\u8868\u683c\u53d8\u6210Markdown\u8868\u683c\u3001\u5217\u8868\u4fdd\u6301\u5c42\u7ea7\uff0c\u8fd9\u770b\u4f3c\u662f\u683c\u5f0f\u95ee\u9898\uff0c\u5b9e\u5219\u89e6\u53ca\u4e86\u77e5\u8bc6\u5de5\u4f5c\u8005\u6700\u6838\u5fc3\u7684\u201c\u4fe1\u606f\u53ef\u590d\u7528\u6027\u201d\u9700\u6c42\uff1a\u5f53\u622a\u56fe\u5185\u5bb9\u80fd\u65e0\u7f1d\u7c98\u8d34\u8fdbNotion\u3001GitHub Issue\u6216LLM\u5bf9\u8bdd\u65f6\uff0c\u5b83\u5c31\u5b8c\u6210\u4e86\u4ece\u201c\u50cf\u7d20\u201d\u5230\u201c\u7ed3\u6784\u5316\u8d44\u4ea7\u201d\u7684\u8dc3\u8fc1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u8981\u8d70\u7684\u574e\u4e5f\u5f88\u660e\u663e\u3002\u7b2c\u4e00\uff0c\u7eaf\u89c6\u89c9\u91cd\u5efa\u7ed3\u6784\u5b58\u5728\u5929\u82b1\u677f\uff1a\u590d\u6742\u5d4c\u5957\u3001\u5408\u5e76\u5355\u5143\u683c\u3001\u989c\u8272\u8bed\u4e49\uff08\u5982\u7ea2\u8272\u8b66\u544a\uff09\u4f1a\u88ab\u65e0\u5dee\u522b\u62b9\u5e73\uff0c\u800c\u8bc4\u8bba\u4e2d\u7528\u6237\u5bf9\u201c\u7f6e\u4fe1\u5ea6\u6807\u8bb0\u201d\u7684\u9700\u6c42\u76f4\u6307\u8981\u5bb3\u2014\u2014\u5728\u5408\u89c4\u5ba1\u67e5\u6216\u533b\u7597\u6570\u636e\u573a\u666f\u4e0b\uff0c\u4e00\u4e2a\u6084\u6084\u9020\u51fa\u6765\u7684\u5047\u5355\u5143\u683c\u6bd4\u6574\u6bb5\u62a5\u9519\u66f4\u5371\u9669\u3002\u76ee\u524d\u56de\u5e94\u53ea\u5f3a\u8c03\u201c\u672c\u5730\u8fd0\u884c\u201d\uff0c\u5374\u56de\u907f\u4e86\u9519\u8bef\u66b4\u9732\u673a\u5236\uff0c\u8fd9\u662f\u672a\u6765B\u7aef\u5ba2\u6237\u4e70\u5355\u524d\u5fc5\u8fc7\u7684\u4fe1\u4efb\u5173\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7b2c\u4e8c\uff0c\u201cMac-only+Apple silicon\u201d\u662f\u53cc\u5203\u5251\u3002\u4e00\u65b9\u9762\u6a21\u578b\u4f18\u5316\u548c\u9690\u79c1\u5356\u70b9\u7edf\u4e00\uff0c\u4f46\u56e2\u961f\u662f\u5426\u51c6\u5907\u4e86\u5e94\u5bf9Windows\u6216Intel Mac\u7684\u6ea2\u4ef7\u65b9\u6848\uff1f\u82e5TAM\uff08\u53ef\u5bfb\u5740\u5e02\u573a\uff09\u88ab\u9650\u5b9a\u5728\u5c11\u6570\u6d3e\u7528\u6237\u4e2d\uff0c\u957f\u5c3e\u9700\u6c42\uff08\u5982\u6d4f\u89c8\u5668DOM\u89e3\u6790\u589e\u5f3a\uff09\u7684\u5f00\u53d1\u4f18\u5148\u7ea7\u5c31\u4f1a\u53d8\u5f97\u5c34\u5c2c\u2014\u2014\u76ee\u524d\u575a\u6301\u201c\u7eaf\u89c6\u89c9\u201d\u867d\u7136\u5b89\u5168\uff0c\u5374\u4e5f\u4e3b\u52a8\u653e\u5f03\u4e86\u7cbe\u786e\u6027\u4f5c\u5f0a\u7801\u3002\u5efa\u8bae\u540e\u7eed\u81f3\u5c11\u63d0\u4f9b\u201cDOM\u589e\u5f3a\u6a21\u5f0f\u201d\u4f5c\u4e3a\u53ef\u9009\u9879\uff0c\u8ba9\u7528\u6237\u5728\u9690\u79c1\u548c\u6b63\u786e\u7387\u4e4b\u95f4\u81ea\u884c\u6743\u8861\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0c\u8fd9\u662f\u4e00\u6b3e\u201c\u5c0f\u800c\u950b\u5229\u201d\u7684\u5de5\u5177\uff0c\u9002\u5408\u72ec\u7acb\u5f00\u53d1\u8005\u957f\u7ebf\u6253\u78e8\u3002\u77ed\u671f\u8d62\u9762\u5728\u4e8e\u4ea7\u54c1\u7ec6\u8282\u7684\u6781\u81f4\u6253\u78e8\uff08\u6bd4\u5982\u54cd\u5e94\u901f\u5ea6\u3001\u5feb\u6377\u64cd\u4f5c\u6d41\uff09\uff0c\u4e2d\u671f\u80dc\u7b97\u53d6\u51b3\u4e8e\u662f\u5426\u6562\u5728\u201c\u7ed3\u6784\u53ef\u4fe1\u5ea6\u201d\u4e0a\u505a\u6587\u7ae0\u2014\u2014\u6bd4\u5982\u63a8\u51fa\u6821\u5bf9\u89c6\u56fe\u6216\u5dee\u5f02\u5bf9\u6bd4\uff0c\u8fd9\u624d\u662f\u4ece\u201c\u597d\u7528\u7684\u5c0f\u5de5\u5177\u201d\u664b\u7ea7\u4e3a\u201c\u5de5\u4f5c\u6d41\u57fa\u7840\u8bbe\u65bd\u201d\u7684\u94a5\u5319\u3002\u76ee\u524d\u6295\u7968\u6570\u4e0d\u9ad8\uff0c\u4f46\u8bc4\u8bba\u533a\u8d28\u91cf\u6781\u9ad8\uff0c\u8bf4\u660e\u89e6\u8fbe\u7684\u6b63\u662f\u90a3\u4e2a\u6c89\u9ed8\u7684\u9ad8\u4ef7\u503c\u7528\u6237\u7fa4\u4f53\uff0c\u5efa\u8baeBroden\u6cbf\u7740\u8fd9\u6761\u6df1\u6c34\u533a\u7ee7\u7eed\u6316\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Snapdown<\/span>\n                <\/div>\n<div class=\"comment-content\">Snapdown turns any part of your Mac screen into structured Markdown, preserving headings, lists, tables, and text instead of flattening everything into plain OCR. Capture with one shortcut, paste anywhere, and keep every screenshot local on Apple silicon.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt \ud83d\udc4b<\/p>\n<p>I\u2019m Broden, and I built Snapdown because I kept needing to copy things that were visible on my screen but weren\u2019t actually selectable, like tables, documentation, error messages, and slides.<\/p>\n<p>Most OCR tools recover the words but lose the structure. Headings become ordinary lines, lists turn into paragraphs, and tables become difficult to use. I wanted output I could paste directly into a note, document, issue, or LLM chat without rebuilding it first. That\u2019s why Snapdown produces structured Markdown.<\/p>\n<p>Privacy was also a must for me. Everything runs locally on Apple silicon, so your screenshots stay on your Mac and Snapdown works offline.<\/p>\n<p>I spent a lot of time making the capture loop as fast as possible, while still producing accurate, useful results. The goal is to press a shortcut, select a region, and get your Markdown without interrupting your flow.<\/p>\n<p>Two tips that usually improve the output:<br \/>\n\u2022 Instead of capturing a whole screen, split it into smaller, natural sections and combine them with Aggregate Mode. This reduces noise and improves accuracy.<br \/>\n\u2022 Zoom in before capturing dense text, tables, or formulas. Clearer source pixels give Snapdown more detail to work with.<\/p>\n<p>I\u2019d love to hear your feedback and feature requests. I\u2019m looking forward to improving Snapdown based on how people actually use it.<\/p>\n<p>Thanks for checking it out!<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@bsuffern\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bsuffern<\/a>&nbsp;Hey Broden &#8211; good work! Tried it out and like it! Happily paid the license! Wishing you lots of success!!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@bsuffern\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bsuffern<\/a>&nbsp;<\/p>\n<p>The structure-preserving part is the bit that matters. I deal with a lot of scanned compliance documents, certificates, permits, inspection reports and every OCR tool I&#8217;ve tried turns a table of expiry dates into a paragraph of numbers with no way to tell which date belongs to which row.<\/p>\n<p>Two questions: does Aggregate Mode handle a table that spans a scroll, where you capture it in two passes? And does running locally on Apple silicon mean it works on a machine with no network at all, that&#8217;s a real constraint in some of the sites my users operate in.<\/p>\n<p>Upvoted. Nice to see something shipped for a boring problem<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@bsuffern\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bsuffern<\/a>&nbsp; I\u2019ve found structured OCR becomes risky when it silently invents table cells. Do you preserve block-level confidence or source coordinates, or mark uncertain Markdown sections as needing review? That would make it much safer for personal-data screenshots.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The Mac-only caveat I\u2019d want to know before recommending this to my team: when you capture from a browser window, does it pull the rendered text from the DOM or does it run the OCR pipeline on the screenshot? For Notion and Coda docs specifically, the difference shows up in whether nested blocks and toggles come out flat or preserve their structure.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@hazy0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hazy0<\/a>&nbsp;Great question! Snapdown currently works purely from the screenshot\u2014it doesn\u2019t access the browser DOM or application data. That means it only processes what\u2019s actually visible on screen. For things like Notion or Coda, collapsed toggles wouldn\u2019t be captured because they\u2019re not visible in the screenshot, while visible nested blocks are reconstructed from the visual layout by the OCR pipeline rather than the underlying document structure.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Yeah Broden! Markdown era is here and you&#8217;re a doing an amazing job on it. Congrats on this impressive launch<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@german_merlo1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@german_merlo1<\/a>&nbsp;Thank you very much for the support! I really appreciate the kind words.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#10<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/T6MK6FCAU4C57U\" class=\"app-title\">Hand Wave<\/a><\/p>\n<div class=\"one-liner\">Turn sign language into speech with smart glasses<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">129<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Hand Wave \u5229\u7528Meta\u667a\u80fd\u773c\u955c\u7684\u6444\u50cf\u5934\uff0c\u5c06\u624b\u8bed\u5b9e\u65f6\u8f6c\u5316\u4e3a\u6587\u5b57\u548c\u8bed\u97f3\uff0c\u5e2e\u52a9\u542c\u969c\u4eba\u58eb\u4e0e\u5065\u542c\u4eba\u7fa4\u5728\u9762\u5bf9\u9762\u4ea4\u6d41\u4e2d\u6253\u7834\u8bed\u8a00\u9694\u9602\uff0c\u5b9e\u73b0\u65e0\u5ef6\u8fdf\u3001\u65e0\u9700\u624b\u673a\u7684\u8de8\u5e73\u53f0\u6c9f\u901a\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/47ce7ba9-2fe3-4fe2-908b-05bfff76013d.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/284c09b6-3ef0-4ab3-b209-e72cf3993a95.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d75a330c-32d4-415a-bd83-f966a11e4bf8.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c7d841c7-f892-4ed2-85e7-e1dadf010f99.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/415686b1-09d8-4687-8f6e-e1bd369df318.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/KzZ0YsMSmO8\"><source src=\"https:\/\/youtu.be\/KzZ0YsMSmO8\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">iOS<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Lifestyle<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u667a\u80fd\u773c\u955c<\/span><br \/>\n            <span class=\"tag\">\u624b\u8bed\u7ffb\u8bd1<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u8bed\u97f3\u5408\u6210<\/span><br \/>\n            <span class=\"tag\">\u7aef\u4fa7AI\u6a21\u578b<\/span><br \/>\n            <span class=\"tag\">\u65e0\u969c\u788d\u6c9f\u901a<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u795e\u7ecf\u7f51\u7edc<\/span><br \/>\n            <span class=\"tag\">\u8de8\u5e73\u53f0\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">\u542c\u969c\u8f85\u52a9<\/span><br \/>\n            <span class=\"tag\">FSBoard\u6570\u636e\u96c6<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8d5e\u8d4f\u672c\u5730\u8fd0\u884c\u6a21\u578b\u7684\u4f4e\u5ef6\u8fdf\u4e0e\u9690\u79c1\u4f18\u52bf\uff0c\u4ee5\u53ca\u5f00\u6e90\u3001\u79bb\u7ebf\u53ef\u7528\u7684\u8bbe\u8ba1\u3002\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u5728\uff1aFSBoard\u662f\u6307\u62fc\u6570\u636e\u96c6\uff0c\u662f\u5426\u53ea\u80fd\u9010\u5b57\u6bcd\u8bc6\u522b\uff0c\u80fd\u5426\u5904\u7406\u5b8c\u6574ASL\u624b\u8bed\u8bed\u6cd5\uff1f\u547c\u5401\u660e\u786e\u529f\u80fd\u8fb9\u754c\uff0c\u907f\u514d\u201c\u624b\u8bed\u8f6c\u8bed\u97f3\u201d\u7684\u8fc7\u5ea6\u627f\u8bfa\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Hand Wave\u7684\u4ef7\u503c\u4e0d\u5728\u201c\u7ffb\u8bd1\u7cbe\u5ea6\u201d\uff0c\u800c\u5728\u201c\u573a\u666f\u91cd\u6784\u201d\u2014\u2014\u5b83\u628a\u65e0\u969c\u788d\u5de5\u5177\u4ece\u624b\u673aApp\u7684\u4f4e\u5934\u64cd\u4f5c\uff0c\u8fc1\u79fb\u5230\u773c\u955c\u7684\u5e73\u89c6\u4ea4\u4e92\uff0c\u8fd9\u662f\u4f53\u9a8c\u7ef4\u5ea6\u7684\u964d\u7ef4\u6253\u51fb\u3002\u672c\u5730\u6a21\u578b+\u5f00\u6e90\u8def\u7ebf\uff0c\u76f4\u51fbAI\u52a9\u6b8b\u4ea7\u54c1\u201c\u9690\u79c1\u4ed8\u8d39\u5899\u201d\u548c\u201c\u8054\u7f51\u4f9d\u8d56\u201d\u4e24\u5927\u884c\u4e1a\u75db\u70b9\uff0c\u65b9\u5411\u6b63\u786e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u76ee\u524d\u6700\u5927\u7684\u77ed\u677f\u662f\u6280\u672f\u8fb9\u754c\u4e0d\u6e05\u3002FSBoard\u672c\u8d28\u662f\u624b\u6307\u62fc\u5199\u6570\u636e\u96c6\uff0c\u5bf9\u5e94\u7684\u662f\u9010\u5b57\u6bcd\u62fc\u8bfb\uff0c\u800c\u771f\u5b9e\u624b\u8bed\uff08\u5982ASL\uff09\u5305\u542b\u5927\u91cf\u624b\u52bf\u3001\u8868\u60c5\u3001\u7a7a\u95f4\u8bed\u6cd5\uff0c\u4e24\u8005\u590d\u6742\u5ea6\u76f8\u5dee\u4e00\u4e2a\u91cf\u7ea7\u3002\u6807\u8bed\u201cturn sign language into speech\u201d\u5728\u8425\u9500\u4e0a\u8ba8\u5de7\uff0c\u5374\u4f1a\u8ba9\u7528\u6237\u4ea7\u751f\u9519\u8bef\u9884\u671f\u2014\u2014\u804b\u4eba\u7fa4\u4f53\u5f80\u5f80\u4f7f\u7528\u81ea\u7136\u624b\u8bed\u800c\u975e\u62fc\u5199\uff0c\u82e5\u5b9e\u6d4b\u4ec5\u652f\u6301\u624b\u6307\u62fc\u5199\uff0c\u53e3\u7891\u4f1a\u8fc5\u901f\u53cd\u566c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u4e00\u4e2a\u9690\u60a3\u662f\u786c\u4ef6\u7ed1\u5b9aMeta Glasses\u3002\u867d\u7136\u58f0\u660e\u8de8\u5e73\u53f0\uff0c\u4f46\u4e3b\u8d5b\u9053\u7ed1\u6b7b\u5355\u4e00\u751f\u6001\uff0c\u4e00\u65e6Meta\u8c03\u6574\u653f\u7b56\u6216\u773c\u955c\u9500\u91cf\u4e0d\u53ca\u9884\u671f\uff0c\u9879\u76ee\u5c06\u5931\u53bb\u4f9d\u6258\u3002\u5efa\u8bae\u56e2\u961f\u5c3d\u5feb\u660e\u786e\u4e24\u4ef6\u4e8b\uff1a\u4e00\u662f\u516c\u5f00\u6f14\u793a\u533a\u5206\u201c\u62fc\u8bfb\u201d\u4e0e\u201c\u624b\u8bed\u8bed\u6cd5\u201d\u7684\u652f\u6301\u7ea7\u522b\uff0c\u907f\u514d\u793e\u533a\u8d28\u7591\uff1b\u4e8c\u662f\u5c3d\u65e9\u53d1\u5e03Web\u7248\u5b9e\u7528\u4f53\u9a8c\uff0c\u8131\u79bb\u5bf9\u7279\u5b9a\u786c\u4ef6\u7684\u4f9d\u8d56\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0c\u8fd9\u662f\u5c11\u89c1\u7684\u201c\u786c\u4ef6\u573a\u666f+\u8fb9\u7f18AI+\u5f00\u6e90\u201d\u4e09\u4f4d\u4e00\u4f53\u6848\u4f8b\uff0c\u4f46\u8fd8\u9700\u4ece\u201cDemo\u7ea7\u4eae\u70b9\u201d\u8d70\u5411\u201c\u6b8b\u969c\u7528\u6237\u771f\u6b63\u65e5\u5e38\u53ef\u7528\u7684\u5de5\u5177\u201d\u3002\u5728\u65e0\u969c\u788d\u9886\u57df\uff0c\u4fe1\u4efb\u6bd4\u6280\u672f\u66f4\u7a00\u7f3a\uff0c\u522b\u8ba9\u8fc7\u5ea6\u627f\u8bfa\u6bc1\u6389\u8fd9\u4e2a\u597d\u8d77\u70b9\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Hand Wave<\/span>\n                <\/div>\n<div class=\"comment-content\">Hand Wave turns sign language into text and speech using the camera on Meta smart glasses. It also works cross-platform (iOS + web). Under the hood is a lightweight, open-source neural network trained on Google\u2019s FSBoard dataset and built to run locally across devices (wip).<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I\u2019m building Hand Wave to make sign-language conversations more accessible with the camera already on Meta glasses (and other devices too). Let me know what you think!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>running the model locally on-device is genuinely a cool move, keeps the latency low and the privacy story clean. love seeing open-source sign language work actually ship to glasses instead of staying in demo hell.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love that you built this on an open-source local-first model, since accessibility tools like this should never depend on a paywall or a connection to work.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>FSBoard is a fingerspelling dataset if I remember right, individual letters rather than full signs. so is this reading fingerspelled words letter by letter, or does it also handle actual ASL signs and grammar? those are pretty different problems and &#8220;sign language into speech&#8221; reads like it&#8217;s promising the second one.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#11<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/QLJMR73TZLTTLH\" class=\"app-title\">mpai<\/a><\/p>\n<div class=\"one-liner\">Make existing Codex and Claude Code sessions multiplayer<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">114<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>mpai \u662f\u4e00\u6b3e\u5f00\u6e90\u7684\u7ec8\u7aef\u591a\u4eba\u534f\u4f5c\u5de5\u5177\uff0c\u8ba9\u5f00\u53d1\u8005\u80fd\u76f4\u63a5\u52a0\u5165\u961f\u53cb\u6b63\u5728\u8fdb\u884c\u7684 Codex \u6216 Claude Code \u539f\u751f\u4f1a\u8bdd\uff0c\u5171\u4eab\u771f\u5b9e\u4e0a\u4e0b\u6587\u5e76\u4ee5\u5b9e\u540d\u8eab\u4efd\u53c2\u4e0e\u63d0\u793a\uff0c\u89e3\u51b3 AI \u7f16\u7a0b\u4f1a\u8bdd\u957f\u671f\u201c\u5355\u673a\u201d\u65e0\u6cd5\u534f\u4f5c\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/846fea0e-f4df-47e4-9502-ac2a85fb0ba8.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c240d90d-d0a7-47c3-8056-94afd0bb81c2.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/009fd06d-eca8-4e50-87ee-6171e70a60c0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a47318d7-fcae-4ff7-9427-72fe20ce34b7.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/d00a814a-b843-4bda-8f91-b0901b7163e6.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=Lax1SPT9IMc\"><source src=\"https:\/\/www.youtube.com\/watch?v=Lax1SPT9IMc\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Open Source<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7f16\u7a0b\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u7ec8\u7aef\u591a\u4eba\u4f1a\u8bdd<\/span><br \/>\n            <span class=\"tag\">Claude Code<\/span><br \/>\n            <span class=\"tag\">Codex<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Tailscale\u7ec4\u7f51<\/span><br \/>\n            <span class=\"tag\">\u4f1a\u8bdd\u5171\u4eab<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u4e0a\u4e0b\u6587<\/span><br \/>\n            <span class=\"tag\">MIT\u8bb8\u53ef<\/span><br \/>\n            <span class=\"tag\">macOS\u5f00\u53d1\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u201c\u514d\u4e0a\u4e0b\u6587\u4ea4\u63a5\u201d\u7684\u4ef7\u503c\uff0c\u79f0\u5176\u4e3a\u81ea\u7136\u534f\u4f5c\u65b9\u5f0f\u3002\u4e3b\u8981\u7591\u95ee\u96c6\u4e2d\u5728\u4f7f\u7528\u573a\u666f\uff08\u662f\u5426\u4ec5\u4e3a\u7ed5\u9650\u989d\uff09\u3001\u591a\u4eba\u5206\u5de5\u9002\u914d\u6027\u3001\u4ee5\u53ca\u957f\u94fe\u8def\u5f52\u5c5e\u95ee\u9898\u3002\u521b\u59cb\u4eba\u56de\u5e94\uff1a\u4e3b\u573a\u666f\u662f\u5faa\u73af\u63d0\u793a\u7f16\u6392\uff0c\u4fdd\u7559\u5bbf\u4e3b\u6267\u884c\u6743\uff0c\u4eba\u7c7b\u63d0\u793a\u4f5c\u4e3a\u5f52\u5c5e\u951a\u70b9\u3002\u53e6\u6709\u7528\u6237\u786e\u8ba4MIT\u8bb8\u53ef\u652f\u6301\u5546\u4e1a\u4f7f\u7528\uff0c\u521b\u59cb\u4eba\u5efa\u8bae\u5ba2\u6237\u7aef\u81ea\u63a7\u73af\u5883\u5e76\u8c28\u614e\u8bd5\u70b9\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                mpai \u5728\u201cAI \u7f16\u7a0b\u534f\u4f5c\u201d\u8fd9\u5757\u62e5\u6324\u8d5b\u9053\u4e0a\u9009\u4e86\u4e00\u4e2a\u5f02\u5e38\u5201\u94bb\u4e14\u52a1\u5b9e\u7684\u5207\u5165\u70b9\uff1a\u4e0d\u8bd5\u56fe\u91cd\u5efa IDE\uff0c\u4e0d\u505a\u804a\u5929\u805a\u5408\u5c42\uff0c\u800c\u662f\u76f4\u63a5\u94bb\u8fdb Codex \u548c Claude Code \u7684\u539f\u751f\u7ec8\u7aef\u4f1a\u8bdd\u91cc\uff0c\u628a\u4eba\u4f5c\u4e3a\u201c\u5e26\u540d\u5b57\u7684\u63d0\u793a\u6e90\u201d\u6ce8\u5165\u6b63\u5728\u8fd0\u884c\u7684 agent \u4e0a\u4e0b\u6587\u3002\u8fd9\u4e2a\u5b9a\u4f4d\u7cbe\u51c6\u8e29\u4e2d\u4e86\u5f53\u4e0b AI \u7f16\u7a0b\u6700\u5c34\u5c2c\u7684\u88c2\u7f1d\u2014\u2014\u5927\u6a21\u578b\u80fd\u529b\u8d8a\u5f3a\uff0c\u5355\u4eba\u4f1a\u8bdd\u7684\u4fe1\u606f\u5b64\u5c9b\u8d8a\u6df1\uff0c\u4e0a\u4e0b\u6587\u4ea4\u63a5\u6210\u672c\u53cd\u800c\u8d8a\u9ad8\u3002\u4ea7\u54c1\u5728\u4fe1\u4efb\u4e0e\u5b89\u5168\u6a21\u578b\u4e0a\u5c55\u73b0\u51fa\u4e86\u8001\u7ec3\u7684\u514b\u5236\uff1a\u5bbf\u4e3b Mac \u4fdd\u7559\u6267\u884c\u6743\u5a01\uff0cGuest \u53ea\u80fd\u53d1\u63d0\u793a\uff0c\u8fdc\u7a0b\u5ba1\u6279\u9ed8\u8ba4\u62d2\u7edd\uff0c\u4e14\u660e\u786e\u4e0d\u4f2a\u88c5 agent \u94fe\u5f0f\u884c\u52a8\u7684\u5f52\u5c5e\u6743\u3002\u8fd9\u79cd\u201c\u8bbe\u8ba1\u8fb9\u754c\u5373\u4ea7\u54c1\u54f2\u5b66\u201d\u7684\u505a\u6cd5\uff0c\u8ba9 mpai \u66f4\u50cf\u4e00\u4e2a\u4f1a\u8bdd\u653e\u5927\u5668\uff0c\u800c\u975e\u53c8\u4e00\u6b3e\u591a\u4eba pair tool\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5fc5\u987b\u6cfc\u4e00\u76c6\u51b7\u6c34\uff1a\u5f53\u524d\u5b9e\u73b0\u6df1\u5ea6\u7ed1\u5b9a macOS + Tailscale + \u663e\u5f0f\u4f1a\u8bdd\u5171\u4eab\uff0c\u8fd9\u5957\u7ec4\u5408\u5b9e\u8d28\u4e0a\u628a\u4ea7\u54c1\u9650\u5b9a\u5728\u4e86\u9ad8\u4fe1\u4efb\u5ea6\u7684\u6781\u5ba2\u5c0f\u56e2\u961f\u573a\u666f\u3002\u8bc4\u8bba\u4e2d\u5173\u4e8e\u201c10\u4eba\u540c\u9879\u76ee\u5206\u5de5\u201d\u7684\u6838\u5fc3\u8d28\u8be2\u5e76\u6ca1\u80fd\u4ece\u521b\u59cb\u4eba\u56de\u590d\u4e2d\u83b7\u5f97\u4ee4\u4eba\u4fe1\u670d\u7684\u7b54\u6848\u2014\u2014\u7528\u201c\u5faa\u73af\u63d0\u793a\u7f16\u6392\u201d\u6765\u56de\u5e94\u534f\u4f5c\u573a\u666f\uff0c\u56de\u907f\u4e86\u591a\u7528\u6237\u540c\u65f6\u6d3b\u8dc3\u4fee\u6539\u540c\u4e00\u4f1a\u8bdd\u65f6\u72b6\u6001\u51b2\u7a81\u548c\u66ff\u6362\u6a21\u578b\u7684\u6839\u672c\u95ee\u9898\u3002\u6b64\u5916\uff0cClaude Code \u53d7\u652f\u6301\u3001Codex \u4ec5\u6258\u7ba1\u6a21\u5f0f\u53ef\u63d0\u793a\u4e14\u72ec\u7acb\u7248\u672c\u53ea\u8bfb\uff0c\u8fd9\u4e00\u4e0d\u5bf9\u79f0\u8868\u660e\u4ea7\u54c1\u80fd\u529b\u53d7\u5236\u4e8e\u4e0a\u6e38\u5de5\u5177\u6269\u5c55\u6027\uff0c\u800c\u975e\u81ea\u8eab\u610f\u613f\u3002MIT \u5f00\u6e90\u548c\u516c\u5f00\u6784\u5efa\u662f\u52a0\u5206\u9879\uff0c\u4f46\u5f00\u6e90\u540c\u6837\u610f\u5473\u7740\u5927\u5382\u968f\u65f6\u53ef\u4ee5\u62ff\u8fd9\u5957\u6a21\u578b\u505a\u8fdb\u5b98\u65b9\u4ea7\u54c1\u3002\u771f\u6b63\u503c\u5f97\u5173\u6ce8\u7684\u540e\u7eed\u6307\u6807\u662f\uff1a\u9996\u6279 10 \u4e2a\u53cc\u4eba\u56e2\u961f\u7684\u4e2d\u4f4d\u52a0\u5165\u8017\u65f6\u662f\u5426\u771f\u80fd\u4f4e\u4e8e 5 \u5206\u949f\uff0c\u4ee5\u53ca\u8fd9\u6279\u7528\u6237\u4e00\u5468\u540e\u7684\u7559\u5b58\u7387\u2014\u2014\u8fd9\u6bd4\u4efb\u4f55 Demo \u90fd\u66f4\u80fd\u8bf4\u660e mpai \u662f\u5426\u51fb\u4e2d\u4e86\u771f\u9700\u6c42\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">mpai<\/span>\n                <\/div>\n<div class=\"comment-content\">Open-source terminal multiplayer for Codex and Claude Code. Join a teammate&#8217;s explicitly shared native session from another Mac, arrive with the real context, and prompt with your name attached. Tailscale stays private; the host Mac stays in control.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">AI coding got dramatically better, but the session stayed single-player.<\/p>\n<p>My cofounder Hudson and I already had our Macs connected with Tailscale. The missing layer was not another IDE or chat app\u2014it was a way to enter the exact Codex or Claude Code conversation already in motion, understand the context, and add a turn with a real human name attached.<\/p>\n<p>That is what mpai does. I sent an attributed prompt from my Mac into Hudson\u2019s existing Claude Code session; Claude received the teammate label and answered inside that exact session.<\/p>\n<p>This is an honest public alpha: macOS + Tailscale, explicit session sharing, Claude Code support, and managed-mode Codex prompting. Standalone Codex stays view-only by default because we will not race an active desktop task for a prettier demo.<\/p>\n<p>It is MIT licensed and built in public. I would especially value feedback on install friction, the sharing model, and the terminal interaction.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>That&#8217;s pretty cool, but what are the actual use cases? We use Claude Code, and on our team, up to 10 people can work on the same project simultaneously, but each person is responsible for their own part. Or is this mainly designed to work around usage limits?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@natalia_iankovych\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@natalia_iankovych<\/a>&nbsp;The primary use case for us has been running loop prompts and having mpai prompt teammates computer\u2019s in accord with the earlier context. It broadens the orchestration possibilities and enables you always to have context on what your team\u2019s working on without any friction or switching your existing AI interface.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love the idea of collaborating inside the same AI coding session instead of constantly sharing context back and forth. Feels like a much more natural way to work as a team. Congrats on the launch!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thank you \u2014 eliminating the context handoff is exactly the bet. We just shipped v0.4.11 so a host can create a private invite and ready room for one exact session in a single command. If you already have two Macs on Tailscale, would you be open to timing one real room? The five-minute checklist is here: <a href=\"https:\/\/github.com\/godfaddaai\/multiplayer-ai\/issues\/7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/godfaddaai\/multiplayer-ai\/issues\/7<\/a><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>@devyatkin Thank you, Alex\u2014that handoff pain is exactly what pushed us to build it. The key for us is that nobody has to abandon Codex or Claude Code: a teammate joins the session already in progress, and their turn is named. If you try the alpha with a teammate, I&#8217;d genuinely love to know where setup feels rough.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the decision to keep host execution authority is the right call, the second you let the guest drive, you&#8217;ve built a pair programming tool, not a session amplifier. curious how attribution surfaces when one person&#8217;s turn kicks off a 20-step agent chain: does each sub-action stay attributed to the human who prompted it, or does the chain appear as agent output with a single human-turn anchor?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>@rnagulapalle Exactly\u2014the human prompt is the attribution anchor. Today mpai records that turn under the guest&#8217;s identity in the native transcript and audit; the downstream 20-step chain remains provider\/agent output anchored to that turn, not falsely relabeled as 20 human actions. Remote approvals stay denied, so the host still decides execution. Per-tool-call provenance is a useful next layer, but we don&#8217;t claim it yet.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Launch-day update: v0.4.13 is live. The host still installs once; the teammate now pastes one version-pinned npx line and lands in the exact shared room \u2014 no global install, no setup, and no background service. Both founder Macs are upgraded, and the clean Homebrew lifecycle passed on macOS and Linux. The metric that matters next is outside use: first 10 two-person teams, median invite-to-room under 5 minutes, then a later-week return. Test checklist: <a href=\"https:\/\/github.com\/godfaddaai\/multiplayer-ai\/issues\/7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/godfaddaai\/multiplayer-ai\/issues\/7<\/a><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Great work, so can I commercially use tailmate to run a prompt in my clients environment<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Yes\u2014if you mean mpai, it is MIT-licensed, so commercial use is allowed. For a client environment today, I\u2019d run it only on a client-owned Mac and tailnet the client controls, have them explicitly invite you and share the exact session, and start with a non-sensitive pilot. The host keeps execution authority; mpai exposes no arbitrary shell and cannot bypass approvals. It is still a macOS public alpha, not an enterprise SLA product yet. If you test it, I\u2019d love your install-to-first-room time and where the flow breaks.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@arun_prasad06\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@arun_prasad06<\/a>&nbsp;If you want to run the client-controlled pilot, the exact two-Mac checklist and privacy-safe feedback template are here: <a href=\"https:\/\/github.com\/godfaddaai\/multiplayer-ai\/issues\/7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/godfaddaai\/multiplayer-ai\/issues\/7<\/a> lmk<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#12<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/M5Q3GKHQJV3BYP\" class=\"app-title\">MascotAI<\/a><\/p>\n<div class=\"one-liner\">Animated SVG mascot studios for apps that need a personality<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">109<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>MascotAI \u662f\u4e00\u4e2a\u4e3a App \u63d0\u4f9b\u53ef\u5b9a\u5236\u52a8\u753b SVG \u5409\u7965\u7269\u7684\u5de5\u4f5c\u5ba4\u5de5\u5177\uff0c\u4e13\u89e3\u51b3\u4ea7\u54c1\u754c\u9762\u4e2d\u201c\u901a\u7528\u5934\u50cf\u65e0\u7075\u9b42\u3001\u5b9a\u5236\u63d2\u753b\u592a\u8d35\u201d\u7684\u75db\u70b9\uff0c\u8ba9\u5f00\u53d1\u8005\u5728\u7a7a\u72b6\u6001\u3001\u52a0\u8f7d\u3001\u9519\u8bef\u7b49\u5173\u952e\u4ea4\u4e92\u8282\u70b9\u7528\u4f4e\u6210\u672c\u8d4b\u4e88\u4ea7\u54c1\u4eba\u683c\u5316\u8868\u60c5\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/4a1b769e-258f-454d-86cc-ff722a2a7800.gif?auto=format\" data-video-url=\"https:\/\/www.loom.com\/share\/3c352a18a9724affbe69b3e99b2e82f6\"><source src=\"https:\/\/www.loom.com\/share\/3c352a18a9724affbe69b3e99b2e82f6\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/604c61d3-6445-4c82-b4c8-6a39a59fdf0a.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4f15d583-337a-4c1b-ba1e-f8cbb878bdba.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3b0171ef-37d8-4661-be75-bd6c76bd3e18.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/423726a0-a34f-400d-b33e-583096e84034.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/e38c6233-a89d-4f2e-a06a-2de06fde2518.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">User Experience<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u52a8\u753b\u5409\u7965\u7269<\/span><br \/>\n            <span class=\"tag\">SVG\u7ec4\u4ef6\u5e93<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1UI\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u7a7a\u72b6\u6001\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u52a0\u8f7d\u52a8\u6548<\/span><br \/>\n            <span class=\"tag\">\u9519\u8bef\u63d0\u793a<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u54c1\u724c\u4eba\u683c\u5316<\/span><br \/>\n            <span class=\"tag\">\u53ef\u4ea4\u4e92\u7ec4\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u5546\u4e1a\u6388\u6743<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8\u70b9\u96c6\u4e2d\u5728\uff1a1) \u5409\u7965\u7269\u5e94\u4f18\u5148\u8986\u76d6\u7a7a\u72b6\u6001\u3001\u52a0\u8f7d\u3001\u9519\u8bef\u7b49\u201c\u632b\u8d25\u573a\u666f\u201d\u800c\u975e\u5355\u7eaf\u7b11\u8138\uff1b2) \u4ed8\u8d39\u6a21\u5f0f\u4e0a\uff0c\u5e0c\u671b\u201c\u5148\u770b\u7ed3\u679c\u518d\u4ed8\u8d39\u201d\uff0c\u62c5\u5fc3\u652f\u4ed8\u524d\u6d41\u5931\uff1b3) \u8be2\u95ee\u540c\u4e00\u89d2\u8272\u5728\u591a\u624b\u52bf\u95f4\u7684\u98ce\u683c\u4e00\u81f4\u6027\u53ca\u5546\u4e1a\u6388\u6743\u8303\u56f4\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                MascotAI \u7684\u5207\u5165\u70b9\u5f88\u806a\u660e\u2014\u2014\u5b83\u6ca1\u6709\u53bb\u548c Midjourney \u62fc\u201c\u751f\u6210\u4e00\u5f20\u597d\u770b\u7684\u8138\u201d\uff0c\u800c\u662f\u628a\u5409\u7965\u7269\u62c6\u89e3\u6210\u53ef\u7f16\u7a0b\u7684\u201c\u72b6\u6001\u673a\u7ec4\u4ef6\u201d\u3002\u8fd9\u5b9e\u9645\u4e0a\u662f\u5728\u8d4c\u4e00\u4e2a\u9690\u6027\u5171\u8bc6\uff1a\u5f53 App \u51fa\u9519\u6216\u52a0\u8f7d\u65f6\uff0c\u7528\u6237\u9700\u8981\u7684\u4e0d\u662f\u89c6\u89c9\u6109\u60a6\uff0c\u800c\u662f\u201c\u88ab\u966a\u4f34\u7684\u8010\u5fc3\u201d\u3002\u8fd9\u4e2a\u6d1e\u5bdf\u5728\u8bc4\u8bba\u533a\u88ab\u7cbe\u51c6\u70b9\u51fa\uff0c\u8bf4\u660e\u6838\u5fc3\u7528\u6237\u786e\u5b9e\u6709\u75db\u611f\u3002\u4f46\u771f\u6b63\u7684\u98ce\u9669\u5728\u4e8e\uff0c\u5b83\u76ee\u524d\u53ef\u80fd\u53ea\u662f\u201c\u9ad8\u7ea7\u7684\u7d20\u6750\u5305\u201d\uff0c\u800c\u975e\u201c\u4ea7\u54c1\u4eba\u683c\u7684\u751f\u6210\u7cfb\u7edf\u201d\u3002\u8bc4\u8bba\u4e2d\u5173\u4e8e\u201c\u89d2\u8272\u4e00\u81f4\u6027\u201d\u201c\u6388\u6743\u8303\u56f4\u201d\u7684\u8ffd\u95ee\uff0c\u66b4\u9732\u4e86\u5b83\u79bb\u201c\u5de5\u4f5c\u5ba4\u201d\u7684\u5b9a\u4f4d\u5c1a\u6709\u5dee\u8ddd\u2014\u2014\u5982\u679c\u53ea\u662f\u9884\u5236\u4ef6\u62fc\u88c5\uff0c\u90a3\u548c\u4e70\u4e00\u5957\u73b0\u6210\u7684 Lottie \u52a8\u753b\u6709\u4f55\u672c\u8d28\u533a\u522b\uff1f\u66f4\u81f4\u547d\u7684\u662f\u4ed8\u8d39\u5899\u8bbe\u8ba1\uff1a\u5409\u7965\u7269\u662f\u5178\u578b\u7684\u201c\u611f\u6027\u6d88\u8d39\u201d\uff0c\u7528\u6237\u5fc5\u987b\u770b\u5230\u81ea\u5bb6\u4ea7\u54c1\u4e0a\u7684\u5b9e\u9645\u6548\u679c\u624d\u80fd\u4ea7\u751f\u4fe1\u4efb\uff0c\u800c\u201c\u652f\u4ed8\u540e\u624d\u751f\u6210\u201d\u7684\u6d41\u7a0b\u6070\u597d\u627c\u6740\u4e86\u8fd9\u79cd\u51b2\u52a8\u3002\u5efa\u8bae MascotAI \u628a\u514d\u8d39\u8bd5\u7528\u533a\u505a\u6210\u201c\u53e3\u7ea2\u8bd5\u8272\u673a\u201d\u2014\u2014\u5141\u8bb8\u7528\u6237\u4e0a\u4f20\u81ea\u5df1\u7684 UI \u622a\u56fe\uff0c\u5b9e\u65f6\u770b\u5230\u4e0d\u540c\u89d2\u8272\u5728\u771f\u5b9e\u754c\u9762\u91cc\u7684\u4e92\u52a8\u6548\u679c\uff0c\u518d\u51b3\u5b9a\u4ed8\u8d39\u3002\u53e6\u5916\uff0c\u5b83\u5e94\u8be5\u7784\u51c6\u90a3\u4e09\u4e2a\u201c\u5c34\u5c2c\u65f6\u523b\u201d\uff08\u7a7a\/\u9519\/\u52a0\u8f7d\uff09\u505a\u6df1\u5ea6\u6a21\u677f\uff0c\u800c\u4e0d\u662f\u8d2a\u591a\u6c42\u5168\u505a\u5e86\u795d\u52a8\u753b\u3002\u5426\u5219\uff0c\u5b83\u6700\u7ec8\u53ea\u4f1a\u6ca6\u4e3a Figma \u793e\u533a\u91cc\u4e00\u4e2a\u597d\u8bc4\u4f46\u4f4e\u9891\u7684\u63d2\u4ef6\uff0c\u6210\u4e0d\u4e86\u201c\u4eba\u683c\u5316\u57fa\u5efa\u201d\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">MascotAI<\/span>\n                <\/div>\n<div class=\"comment-content\">Hey hunters! I\u2019m the maker of MascotAI. I kept seeing apps launch with great products and forgettable faces. Illustration budgets are huge; generic AI avatars feel lifeless in product UI. So we built studios the way we\u2019d ship them ourselves: animated SVG packs with gestures, themes, and parts you can actually toggle not one-off PNG images.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The gestures worth shipping aren&#8217;t the happy ones. Empty state, loading, and error are the three moments an app actually needs a face, because that&#8217;s when it&#8217;s failing the user and the mascot is the only thing buying patience. Everyone builds wave and thumbs up first, then ships a plain grey spinner anyway. And agreed with Christoph on the paywall. A mascot is a taste purchase and you can&#8217;t sell taste off someone else&#8217;s sample character.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Would love honest feedback on the generate flow and what gestures you wish every app mascot had. Happy hunting.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@guccibase\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@guccibase<\/a>&nbsp;Would love a setup where I pay only once I see the results. Animated a mascot before for <a href=\"https:\/\/donethat.ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/donethat.ai<\/a> with a freelancer and was curious to see how it compares but I&#8217;d assume a lot of people drop off at the payment screen for an app they don&#8217;t trust<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations on the launch! <br \/>Does a pack keep one character consistent across all gestures, or is each gesture generated separately? Also, what does the license allow for commercial use inside a paid product?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#13<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/S3J7P3HSJ3AF5Q\" class=\"app-title\">PassiveShorts<\/a><\/p>\n<div class=\"one-liner\">AI Faceless Video Generator for TikTok &#038; YouTube<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">109<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>PassiveShorts \u662f\u4e00\u6b3e\u9762\u5411 TikTok \u548c YouTube \u7684 AI \u65e0\u4eba\u51fa\u955c\u89c6\u9891\u751f\u6210\u5668\uff0c\u7528\u6237\u53ea\u9700\u9009\u5b9a\u4e3b\u9898\u3001\u58f0\u97f3\u548c\u53d1\u5e03\u65f6\u95f4\uff0c\u5373\u53ef\u5168\u81ea\u52a8\u5b8c\u6210\u4ece\u811a\u672c\u64b0\u5199\u3001\u914d\u97f3\u3001\u914d\u56fe\u3001\u5b57\u5e55\u5230\u5b9a\u65f6\u53d1\u5e03\u7684\u5b8c\u6574\u89c6\u9891\u751f\u4ea7\u95ed\u73af\uff0c\u89e3\u51b3\u4e86\u666e\u901a\u4eba\u505a\u77ed\u89c6\u9891\u9891\u9053\u575a\u6301\u4e0d\u4e0b\u53bb\u3001\u65e5\u66f4\u592a\u7d2f\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/feb13e47-d21e-42e8-975f-e710b4d7cc11.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6bc5f228-9383-4b11-b596-51973b90cbd3.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b8e002cd-c87f-4d4b-9aa0-f6ff1e081932.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a1f179b2-d8be-4138-92ae-8e31b68d3843.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d3dbf626-ed2a-4853-b94b-1fcb9412aa88.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a13c3edf-d149-4787-89ff-fb7bc8f9fb1c.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/48401f98-d3f5-4128-90e2-b15e473be8b0.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=ADtphP22M_c\"><source src=\"https:\/\/www.youtube.com\/watch?v=ADtphP22M_c\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Social Media<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u89c6\u9891\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4eba\u51fa\u955c\u77ed\u89c6\u9891<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u53d1\u5e03<\/span><br \/>\n            <span class=\"tag\">TikTok\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">YouTube Shorts<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u88ab\u52a8\u6536\u5165<\/span><br \/>\n            <span class=\"tag\">AI\u914d\u97f3<\/span><br \/>\n            <span class=\"tag\">\u6279\u91cf\u5185\u5bb9\u751f\u4ea7<\/span><br \/>\n            <span class=\"tag\">\u89c6\u9891\u6a21\u677f<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8ba4\u53ef\u5176\u89e3\u51b3\u65e5\u66f4\u75b2\u52b3\u7684\u4ef7\u503c\uff0c\u4f46\u96c6\u4e2d\u62c5\u5fe7\u4e24\u70b9\uff1a\u4e00\u662f\u5168\u81ea\u52a8\u53d1\u5e03\u7f3a\u4e4f\u4eba\u5de5\u5ba1\u6838\u73af\u8282\uff0c\u53ef\u80fd\u56e0AI\u5185\u5bb9\u51fa\u9519\u5bfc\u81f4\u8d26\u53f7\u4fe1\u8a89\u53d7\u635f\uff1b\u4e8c\u662f\u5e73\u53f0\u5bf9AI\u751f\u6210\u3001\u4f4e\u8d28\u91cf\u6279\u91cf\u5185\u5bb9\u7684\u6253\u51fb\u653f\u7b56\u8d8b\u4e25\u3002\u53e6\u6709\u7528\u6237\u8be2\u95ee\u6700\u4f73\u8868\u73b0\u8d5b\u9053\u53ca\u771f\u5b9e\u89c2\u4f17\u53cd\u9988\uff0c\u5f00\u53d1\u8005\u56de\u5e94\u79f0\u5df2\u6709\u9891\u9053\u5355\u89c6\u9891\u8fbe1.5k+\u64ad\u653e\uff0c\u5e76\u5f3a\u8c03\u53ef\u8bbe\u7f6e\u8349\u7a3f\u6216\u79c1\u5bc6\u53d1\u5e03\u4ee5\u89c4\u907f\u98ce\u9669\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u5f62\u6001\u770b\uff0cPassiveShorts \u4e0e\u5176\u8bf4\u662f\u4e00\u4e2a\u89c6\u9891\u751f\u6210\u5668\uff0c\u4e0d\u5982\u8bf4\u662f\u4e00\u4e2a\u201c\u5185\u5bb9\u751f\u4ea7\u8d44\u6599\u4ee3\u5de5\u5382\u201d\u3002\u5b83\u7cbe\u51c6\u6355\u6349\u4e86\u201c\u60f3\u9760\u77ed\u89c6\u9891\u8d5a\u94b1\u4f46\u61d2\u5f97\u52a8\u624b\u201d\u7684\u6295\u673a\u6027\u9700\u6c42\uff0c\u628a\u811a\u672c\u3001\u914d\u97f3\u3001\u526a\u8f91\u3001\u53d1\u5e03\u8fd9\u56db\u5ea7\u5927\u5c71\u538b\u7f29\u6210\u4e00\u6b21\u6027\u7684\u201c\u8bbe\u5b9a\u52a8\u4f5c\u201d\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u51fa\u552e\u65f6\u95f4\u6760\u6746\u2014\u2014\u8fd9\u662f\u5b83\u6700\u6838\u5fc3\u7684\u4ef7\u503c\uff0c\u4e5f\u662f\u5b83\u6700\u81f4\u547d\u7684\u8f6f\u808b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u8bc4\u8bba\u533a\u7684\u8d28\u7591\u975e\u5e38\u81f4\u547d\uff1a\u6ca1\u6709\u4efb\u4f55\u4eba\u5de5\u5e72\u9884\u7684\u201c\u81ea\u52a8\u9a7e\u9a76\u201d\u6a21\u5f0f\u4e0b\uff0c\u811a\u672c\u5185\u5bb9\u7684\u771f\u5b9e\u6027\u3001\u5408\u89c4\u6027\u4e0e\u8d26\u53f7\u957f\u7ebf\u751f\u5b58\u80fd\u529b\u5b8c\u5168\u88ab\u7f6e\u4e8e\u98ce\u9669\u4e4b\u4e2d\u3002\u5e73\u53f0\u5bf9\u201cmass-produced, low-effort AI content\u201d\u7684\u7b97\u6cd5\u56f4\u527f\u662f\u771f\u5b9e\u5b58\u5728\u7684\uff0c\u4e00\u5473\u5f3a\u8c03\u201c\u5168\u81ea\u52a8\u201d\u7b49\u4e8e\u4e3b\u52a8\u7ed9\u5e73\u53f0\u9012\u5200\u3002\u5f00\u53d1\u8005\u7684\u56de\u590d\u900f\u9732\u51fa\u4e00\u79cd\u201c\u7ed9\u7528\u6237\u63d0\u4f9b\u8349\u7a3f\/\u79c1\u5bc6\u6a21\u5f0f\u201d\u7684\u8865\u6551\u63aa\u65bd\uff0c\u4f46\u8fd9\u662f\u5de5\u5177\u529f\u80fd\u7684\u4fbf\u5229\uff0c\u800c\u4e0d\u662f\u4ea7\u54c1\u903b\u8f91\u7684\u6839\u672c\u4fee\u6b63\u2014\u2014\u5982\u679c\u9ed8\u8ba4\u72b6\u6001\u4e0d\u662f\u201c\u5148\u5ba1\u540e\u53d1\u201d\uff0c\u90a3\u8fd9\u4e2a\u5de5\u5177\u57f9\u517b\u51fa\u6765\u7684\uff0c\u5927\u6982\u7387\u662f\u6279\u91cf\u5236\u9020\u7684\u4f4e\u8d28\u8d26\u53f7\uff0c\u800c\u975e\u53ef\u6301\u7eed\u7684\u521b\u4f5c\u8005\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u4ef7\u503c\u6d3c\u5730\u4e0d\u5728\u4e8e\u201c\u66ff\u7528\u6237\u53d1\u5b8c\u6240\u6709\u89c6\u9891\u201d\uff0c\u800c\u5728\u4e8e\u201c\u5e2e\u7528\u6237\u628a\u5236\u4f5c\u6d41\u7a0b\u538b\u7f29\u523010\u5206\u949f\u4ee5\u5185\u4f46\u4fdd\u7559\u4eba\u5de5\u51b3\u7b56\u6743\u201d\u3002\u5982\u679cPassiveShorts\u80fd\u628a\u9ed8\u8ba4\u6d41\u7a0b\u6539\u4e3a\u201cAI\u751f\u6210\u540e\u5f3a\u5236\u4eba\u5de5\u786e\u8ba4\u201d\uff0c\u5e76\u5185\u7f6e\u4e8b\u5b9e\u6838\u67e5\u6216\u6765\u6e90\u6807\u6ce8\u529f\u80fd\u6765\u5bf9\u6297\u201c\u4e00\u672c\u6b63\u7ecf\u80e1\u8bf4\u516b\u9053\u201d\u7684AI\u5e7b\u89c9\uff0c\u5b83\u5c31\u80fd\u4ece\u201c\u6279\u91cf\u5185\u5bb9\u5783\u573e\u7ad9\u201d\u5347\u7ea7\u4e3a\u201c\u521b\u4f5c\u8005\u7684\u9ad8\u6548\u5408\u4f19\u4eba\u201d\u3002\u5426\u5219\uff0c\u8fd9\u53ea\u662f\u4e00\u4e2a\u52a0\u901f\u8d26\u53f7\u6b7b\u4ea1\u7684\u5de5\u5177\uff0c\u7528\u6237\u7701\u4e0b\u7684\u65f6\u95f4\u6700\u7ec8\u4f1a\u4ee5\u66f4\u5feb\u5730\u88ab\u5e73\u53f0\u9650\u6d41\u7684\u4ee3\u4ef7\u507f\u8fd8\u3002\u5c31\u76ee\u524d\u800c\u8a00\uff0c\u5b83\u66f4\u9002\u5408\u7528\u6765\u505a\u6d4b\u8bd5\u9009\u9898\u548c\u586b\u5145\u9891\u9053\u7684\u201c\u7b2c\u4e8c\u9635\u5bb9\u201d\uff0c\u7edd\u4e0d\u80fd\u4f5c\u4e3a\u4e3b\u529b\u8d26\u53f7\u7684\u552f\u4e00\u5185\u5bb9\u6765\u6e90\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">PassiveShorts<\/span>\n                <\/div>\n<div class=\"comment-content\">AI faceless video generator that auto-posts to YouTube and TikTok. Pick a topic, a voice, and a schedule. We write, voice, caption, and post every Short for you.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt \ud83d\udc4b<\/p>\n<p>I&#8217;m the maker of PassiveShorts, and I&#8217;m really excited to finally share it here.<\/p>\n<p>This started with a simple frustration: everyone says &#8220;just start a faceless YouTube or TikTok channel,&#8221; but nobody tells you it&#8217;s a daily grind. Write a script, generate a voiceover, find visuals, edit it, add captions, export, upload, repeat. Most people (me included) burn out in the first two weeks, long before the algorithm ever rewards them.<\/p>\n<p>So I built PassiveShorts to run that entire loop for you.<\/p>\n<p>You set it up once:<\/p>\n<p>Pick a topic from 5 ready-made niches (Scary Stories, Jokes, Life Pro Tips, Today I Learned, You Should Know) or write your own<br \/>\nPick a look from 19 visual styles (Photorealistic, Cinematic, Anime, Kurzgesagt, Claymation, and more)<br \/>\nPick a voice from a library of natural AI voices, and a caption style that matches your brand<br \/>\nPick a schedule, connect YouTube or TikTok, and choose your days<br \/>\nAfter that it runs itself. We write the script, generate the voiceover, create the visuals, add the captions, and publish every video to your channel automatically. No editing, no face, no manual uploads.<\/p>\n<p>A few things I care about that make it actually usable:<\/p>\n<p>You stay in control. Post public, private, or straight to your TikTok drafts so you approve each one before it goes live.<br \/>\nRun up to 10 series at once across different niches or channels, all from one dashboard.<br \/>\nThe videos are yours with full commercial rights.<br \/>\nI&#8217;d genuinely love your feedback, especially on the visual styles and voices. What niche would you point it at first? And if there&#8217;s a platform or feature you wish it had, tell me, I&#8217;m reading every comment today.<\/p>\n<p>Thanks for checking it out \ud83d\ude4f<br \/>\nVijayabhaskar J<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@vijayabhaskar_j<br \/>\nCongratulations on launching PassiveShorts  I can definitely see this helping creators stay consistent with content. I&#8217;m curious, which niche has produced the best results so far finance, motivation, tech, storytelling, or something else? Would love to hear what you&#8217;ve learned from your early users.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the fully-automated pipeline is the part that gives me pause, not the AI voice or captions specifically. YouTube and TikTok have both been tightening enforcement against mass-produced, low-effort AI content this year, and &#8220;pick a topic and a schedule, we post everything&#8221; sounds like it&#8217;s optimized to get a channel flagged rather than to build one that lasts. is there a human review step anywhere before something goes live, or does it genuinely post on autopilot end to end?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The risk here isn&#8217;t video quality, it&#8217;s that nothing in the loop has a human before publish. One Today I Learned script that states something false confidently goes out under the user&#8217;s channel name and they find out in the comments. I&#8217;d make hold for review the default for the first 10 videos, then let people switch it off once they trust the scripts. Costs you nothing on the demo and saves the accounts that would have churned angry.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">@asadmalik901 True, that&#8217;s why I&#8217;ve added option for users to write custom script and they can set it to post only to private or draft mode, so people can verify the content before posting.<br \/>\nAnd the slideshow creator is completely manual.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Do you have any results how people react on these AI generated videos?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@busmark_w_nika\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@busmark_w_nika<\/a>&nbsp;Hi, I&#8217;ve been running 3 YouTube channels for a week now, and honestly, about half the videos get 1.5k+ views, while the other half struggle to reach even 10 views. Might be because they&#8217;re new channels, but as far the reactions, judging from the comments alone, they&#8217;re well received, just as any normal video would&#8217;ve received.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#14<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/AQHWJNPEHIOOIV\" class=\"app-title\">Inventory<\/a><\/p>\n<div class=\"one-liner\">Search every AI Agent &#038; IDE Conversation<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">104<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Inventory \u662f\u4e00\u6b3e\u672c\u5730\u4f18\u5148\u7684\u5f00\u53d1\u8005\u5de5\u5177\uff0c\u901a\u8fc7\u7edf\u4e00\u7d22\u5f15\u6240\u6709 AI \u7f16\u7a0b\u52a9\u624b\uff08\u5982 Cursor\u3001Claude Code\uff09\u7684\u5bf9\u8bdd\u8bb0\u5f55\uff0c\u89e3\u51b3\u5f00\u53d1\u8005\u8de8\u5de5\u5177\u67e5\u627e\u5386\u53f2\u6280\u672f\u51b3\u7b56\u548c\u8c03\u8bd5\u601d\u8def\u65f6\u201c\u641c\u4e0d\u5230\u3001\u627e\u4e0d\u5230\u201d\u7684\u75db\u70b9\uff0c\u63d0\u4f9b\u4e00\u7ad9\u5f0f\u79bb\u7ebf\u5168\u6587\u641c\u7d22\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/6bd08500-15ed-472e-85ce-def58b8b0368.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ca4a198f-8276-439f-a9af-d0ae997931cd.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/3de091ec-3337-4a62-9c9b-47c129327a26.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/ffe53489-ce04-4de6-8a43-991228f87d77.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/UNXp0C6CZ4s\"><source src=\"https:\/\/youtu.be\/UNXp0C6CZ4s\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u672c\u5730\u7d22\u5f15<\/span><br \/>\n            <span class=\"tag\">AI\u5bf9\u8bdd\u641c\u7d22<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">IDE\u63d2\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u4f1a\u8bdd\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u77e5\u8bc6\u5e93\u68c0\u7d22<\/span><br \/>\n            <span class=\"tag\">\u4ed8\u8d39\u4e70\u65ad<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u9ad8\u5ea6\u8ba4\u53ef\u672c\u5730\u5316\u5b58\u50a8\u5bf9\u654f\u611f\u4ee3\u7801\u7684\u4fdd\u62a4\u4ef7\u503c\uff0c\u4f46\u96c6\u4e2d\u62c5\u5fe7\uff1a1) \u5f53\u524d\u4ec5\u9650\u4e2a\u4eba\u4f7f\u7528\uff0c\u56e2\u961f\u534f\u4f5c\u4e0e\u6743\u9650\u7ba1\u7406\u4e9f\u5f85\u652f\u6301\uff1b2) \u5de5\u5177\u66f4\u65b0\u540e\u672c\u5730\u683c\u5f0f\u53d8\u52a8\u53ef\u80fd\u5bfc\u81f4\u7d22\u5f15\u5931\u6548\uff1b3) \u660e\u6587\u7d22\u5f15\u6587\u4ef6\u4f1a\u6210\u500d\u653e\u5927\u5355\u673a\u6cc4\u9732\u98ce\u9669\uff0c\u5efa\u8bae\u52a0\u5bc6\u5b58\u50a8\u3002\u5f00\u53d1\u8005\u5df2\u56de\u5e94\u5c06\u4fee\u590d\u683c\u5f0f\u517c\u5bb9\u6027\u5e76\u8003\u8651\u56e2\u961f\u529f\u80fd\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Inventory \u8e29\u4e2d\u4e86 AI \u7f16\u7a0b\u6d6a\u6f6e\u4e0b\u7684\u4e00\u4e2a\u9690\u853d\u4f46\u9ad8\u9891\u7684\u75db\u70b9\u2014\u2014\u5bf9\u8bdd\u8d44\u4ea7\u7684\u201c\u71b5\u589e\u201d\u3002\u5f53\u5f00\u53d1\u8005\u6bcf\u5929\u5728\u591a\u4e2a Agent \u4e4b\u95f4\u5207\u6362\u65f6\uff0c\u771f\u6b63\u7684\u667a\u529b\u6210\u679c\u6563\u843d\u5728\u5404\u81ea\u5b64\u5c9b\u4e2d\uff0c\u4fe1\u606f\u8d2c\u503c\u901f\u5ea6\u6781\u5feb\u3002\u5b83\u7528\u201c\u672c\u5730\u72ec\u4eab+\u4e70\u65ad\u5236\u201d\u7cbe\u51c6\u5207\u5165\u4e86\u4f01\u4e1a\u7ea7\u7528\u6237\u5bf9\u4fdd\u5bc6\u6027\u7684\u654f\u611f\u795e\u7ecf\uff0c\u8fd9\u6bd4\u4efb\u4f55\u4e91\u540c\u6b65\u65b9\u6848\u90fd\u66f4\u5177\u8bf4\u670d\u529b\uff0c\u4e5f\u907f\u5f00\u4e86\u4e00\u5927\u5806 SaaS \u5408\u89c4\u9ebb\u70e6\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u7684\u62a4\u57ce\u6cb3\u8fdc\u8c08\u4e0d\u4e0a\u7a33\u56fa\u3002\u8bc4\u8bba\u4e2d\u66b4\u9732\u7684\u4e24\u4e2a\u77ed\u677f\u6070\u597d\u547d\u4e2d\u4e86\u6b7b\u4ea1\u4e09\u89d2\uff1a\u5b58\u50a8\u683c\u5f0f\u4f9d\u8d56\u4e0e\u9690\u79c1\u6096\u8bba\u3002\u524d\u8005\u610f\u5473\u7740\u53ea\u8981 Cursor \u6216 Claude Code \u66f4\u65b0\u5b58\u50a8\u7ed3\u6784\uff0cIndex \u5c31\u4f1a\u77ac\u95f4\u762b\u75ea\uff0c\u8fd9\u51b3\u5b9a\u7528\u6237\u662f\u5426\u6562\u628a\u5b83\u5f53\u201c\u6b63\u5f0f\u8bb0\u5fc6\u201d\u7528\uff1b\u540e\u8005\u5219\u662f\u903b\u8f91\u786c\u4f24\u2014\u2014\u672c\u5730\u5355\u4e00\u7d22\u5f15\u8ba9\u539f\u672c\u5206\u6563\u7684\u4f4e\u4ef7\u503c\u788e\u7247\uff0c\u805a\u5408\u6210\u4e86\u6781\u6613\u76d7\u53d6\u7684\u201c\u9ad8\u5c42\u7ea7\u60c5\u62a5\u201d\uff0c\u6ca1\u6709\u52a0\u5bc6\u7684\u660e\u6587\u7d22\u5f15\u53cd\u800c\u662f\u5e2e\u9ed1\u5ba2\u505a\u4e86\u6570\u636e\u6e05\u6d17\u3002\u56e2\u961f\u627f\u8bfa\u4e0b\u4e2a\u7248\u672c\u89e3\u51b3\uff0c\u4f46\u8def\u7ebf\u56fe\u8fc7\u7a84\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u66f4\u4e25\u5cfb\u7684\u662f\uff0c\u5f53\u524d\u4ea7\u54c1\u5b8c\u5168\u56f0\u5728\u201c\u5355\u673a\u5de5\u5177\u201d\u7ef4\u5ea6\u3002\u7528\u6237\u8bc4\u8bba\u533a\u5df2\u660e\u786e\u70b9\u51fa\u56e2\u961f\u534f\u4f5c\u4e0e\u6743\u9650\u9694\u79bb\u7684\u9700\u6c42\uff0c\u8fd9\u4e0d\u4ec5\u662f\u5546\u4e1a\u5316\u7684\u7834\u5c40\u70b9\uff0c\u66f4\u662f\u4ece\u201c\u4e2a\u4eba\u63d2\u4ef6\u201d\u5347\u7ea7\u4e3a\u201c\u56e2\u961f\u57fa\u7840\u8bbe\u65bd\u201d\u7684\u552f\u4e00\u8def\u5f84\u3002\u5982\u679c\u4e0d\u5c3d\u5feb\u5b9a\u4e49 AI \u8f85\u52a9\u7f16\u7a0b\u7684\u56e2\u961f\u8bb0\u5fc6\u6743\u9650\u5c42\u7ea7\uff0c\u5927\u5382\u968f\u65f6\u53ef\u80fd\u5728 VS Code \u6216 IDE \u5e95\u5c42\u539f\u751f\u5b9e\u73b0\u540c\u7b49\u641c\u7d22\u529f\u80fd\uff0c\u5c4a\u65f6\u4e70\u65ad\u5236\u5de5\u5177\u7684\u751f\u5b58\u7a7a\u95f4\u5c06\u88ab\u77ac\u95f4\u78be\u788e\u3002\u603b\u7684\u6765\u8bf4\uff0c\u65b9\u5411\u503c\u5f97\u80af\u5b9a\uff0c\u4f46\u6267\u884c\u6df1\u5ea6\u548c\u6218\u7565\u89c6\u91ce\u51b3\u5b9a\u4e86\u5b83\u7a76\u7adf\u662f\u8fc7\u6e21\u671f\u7684\u4e34\u65f6\u8865\u4e01\uff0c\u8fd8\u662f\u771f\u6b63\u7684\u8bb0\u5fc6\u5c42\u5960\u57fa\u8005\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Inventory<\/span>\n                <\/div>\n<div class=\"comment-content\">Inventory is the private, local index for every Cursor, Claude Code, Zed, Codex and Kiro conversation. No signups, no cloud, one-time fee.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is a real gap for teams, not just individuals. Half the useful context in my company now lives in one-off chats nobody can find two weeks later. Does Inventory work across a team&#8217;s conversations with permissions, or is it scoped to a single person&#8217;s history for now?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@artem_fedorovich\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artem_fedorovich<\/a>&nbsp;for now it is focused towards individuals like me, as using multiple tool i was not able to find chats. Hence build this which is simple, local and easy to use. <\/p>\n<p>But the use case which you told is excellent and i have noted it down. I will plan to implement it next release.<\/p>\n<p>Would appreciate a share with your friends or colleague who uses multiple agents and have this same concern. Thanks<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Got there from your comment! \ud83d\ude42 Wishing GL!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@busmark_w_nika\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@busmark_w_nika<\/a>&nbsp;Grateful \ud83e\udd1d<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The local-only decision is the interesting one. I&#8217;ve got two years of Cursor and Claude Code history sitting in places I can&#8217;t search, and the reason I&#8217;ve never tried a cloud tool for it is that those conversations contain client context I&#8217;m not willing to upload.<\/p>\n<p>Two things I&#8217;d want to know: does it index historical conversations or only from install onwards? And when a tool changes its local storage format in an update, how much breaks?<\/p>\n<p>Second one matters because that&#8217;s the failure mode for anything indexing someone else&#8217;s files, and it&#8217;s the thing I&#8217;d need to trust before paying a one-time fee.<\/p>\n<p>Upvoted, saw your five in Nika&#8217;s thread, which is how I found this.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@fasathor\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fasathor<\/a>&nbsp;Hello, thank you for the agreeing with my decision of local-one.  To answer both of your questions<\/p>\n<p>Firstly Yes it indexed Historical, all of it. If one tool breaks it localstorage that tool&#8217;s index will stop working for now. This is first public release and this concern i also had on which i am working on finding a solution that will work local only. I am hoping in next update i will try to solve that problem first as its on top of my checklist. <\/p>\n<p>Thank you again for pointing this out. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@fasathor Good News, your concerned has been addressed and new release shipping soon\ud83d\ude80<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>no cloud is a real answer to one worry but it kind of creates a smaller version of the same problem: right now my secrets and half-finished thoughts are scattered across five separate tools&#8217; storage, which is annoying but also means no single file on disk is that valuable. an index of literally every agent and IDE conversation in one place, searchable, is a much juicier single target for anything else running on the machine. is the index itself encrypted at rest, or is it plain text once it&#8217;s built?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunters \ud83d\udc4b<\/p>\n<p>I&#8217;m Neil, maker of Inventory.<\/p>\n<p><strong>What inspired me to build this<\/strong><\/p>\n<p>I kept losing conversations. Not because I deleted them. Just because they pile up across Cursor, Claude Code, Zed, Codex, Kiro&#8230; and there&#8217;s no way to search any of it.<\/p>\n<p>I&#8217;d vaguely remember solving something in a session from two weeks ago. Which tool was it in? Which project? No idea. So I&#8217;d spend 20 minutes hunting, or just solve it again from scratch.<\/p>\n<p>Browser history doesn&#8217;t help. The apps themselves have weak or zero search. And honestly I didn&#8217;t want some cloud tool indexing my private dev conversations anyway.<\/p>\n<p>So I built Inventory. It runs locally, indexes everything on your machine, and gives you one search bar across all of it. No account, no sync, no subscription. One time and it&#8217;s yours.<\/p>\n<p><strong>The problem<\/strong><\/p>\n<p>If you use more than one AI tool, you know how this goes. A conversation where you figured out a gnarly bug. A prompt that finally worked. An architectural decision you reasoned through with Claude. It&#8217;s all sitting somewhere on your machine but it might as well be gone.<\/p>\n<p>AI agents are becoming a real part of the workflow now and nobody built the memory layer for it. That&#8217;s what Inventory is.<\/p>\n<p>Happy to answer anything. <br \/>Would love to hear how others are managing this \ud83d\ude4c<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#15<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/L3FPQRNAL4TYY7\" class=\"app-title\">Doxy<\/a><\/p>\n<div class=\"one-liner\">Markdown &#038; HTML editor, without the LaTeX pain<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">100<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Doxy \u662f\u4e00\u6b3e\u57fa\u4e8e\u6d4f\u89c8\u5668\u7684 Markdown \u4e0e HTML \u7f16\u8f91\u5668\uff0c\u65e8\u5728\u8ba9\u7528\u6237\u65e0\u9700\u638c\u63e1 LaTeX \u8bed\u6cd5\u6216\u5fcd\u53d7\u7f16\u8bd1\u7b49\u5f85\uff0c\u5373\u53ef\u5feb\u901f\u64b0\u5199\u5e76\u5b9e\u65f6\u9884\u89c8\u683c\u5f0f\u89c4\u8303\u7684\u6587\u6863\uff0c\u89e3\u51b3\u79d1\u7814\u3001\u6c42\u804c\u7b49\u573a\u666f\u4e0b\u201c\u8f7b\u91cf\u6392\u7248\u201d\u4e0e\u201c\u590d\u6742\u6a21\u677f\u201d\u4e4b\u95f4\u7684\u6548\u7387\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/935d8756-a6b4-4b71-a69a-d1fc2eac0b98.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=mkus0uTsoT8\"><source src=\"https:\/\/www.youtube.com\/watch?v=mkus0uTsoT8\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/f476c598-1695-427c-9f3b-78030471dca0.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/031ad6b8-509f-4c52-86de-f754b11db2b8.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/795c0d14-37d7-4de4-b86f-5a49cba5a113.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/87fd3f62-5ef9-4e54-a8d8-e138e9255093.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/1b07cbd7-8187-4dda-8dac-bcb97e32aa7b.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/24ac8887-c14f-4b92-b94e-9ddc118f8abb.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/94f2c29f-0d6e-4e23-96f2-7fcc0615a225.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Design Tools<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Markdown\u7f16\u8f91\u5668<\/span><br \/>\n            <span class=\"tag\">HTML\u7f16\u8f91\u5668<\/span><br \/>\n            <span class=\"tag\">\u5728\u7ebf\u6587\u6863\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">LaTeX\u66ff\u4ee3<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u9884\u89c8<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6587\u6863\u6392\u7248<\/span><br \/>\n            <span class=\"tag\">\u8f7b\u91cf\u5199\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u5b66\u672f\u5199\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u5176\u8f7b\u91cf\u3001\u5373\u65f6\u9884\u89c8\u548c\u96f6\u914d\u7f6e\u4f53\u9a8c\uff1b\u6838\u5fc3\u8d28\u7591\u96c6\u4e2d\u5728\u6570\u5b66\u516c\u5f0f\u6e32\u67d3\u7f3a\u5931\uff08\u5bf9\u6bd4 Overleaf \u7684\u786c\u4f24\uff09\uff0c\u4ee5\u53ca LaTeX \u6a21\u677f\uff08\u5982\u671f\u520a\u3001\u7b80\u5386\uff09\u5bfc\u5165\u5bfc\u51fa\u4e0d\u5b8c\u6574\u53ef\u80fd\u5bfc\u81f4\u201c\u5199\u4e00\u534a\u8fd8\u5f97\u56de LaTeX\u201d\u7684\u5207\u6362\u963b\u529b\uff1b\u4f5c\u8005\u786e\u8ba4\u5b8c\u6574 LaTeX \u5bfc\u5165\u5bfc\u51fa\u5728\u89c4\u5212\u4e2d\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Doxy \u7684\u5b9a\u4f4d\u7cbe\u51c6\u5730\u8e29\u5728 Overleaf \u7684\u201c\u70e6\u201d\u4e0e\u7eaf Markdown \u7684\u201c\u5f31\u201d\u4e4b\u95f4\uff0c\u7528\u96f6\u7f16\u8bd1\u3001\u5373\u65f6\u9884\u89c8\u7684\u6d41\u7545\u4f53\u9a8c\u6536\u5272\u4e86 LaTeX \u7684\u201c\u8f7b\u5ea6\u53db\u9003\u8005\u201d\u3002\u4f46\u5176\u4ea7\u54c1\u4ef7\u503c\u76ee\u524d\u505c\u7559\u5728\u201c\u7f16\u8f91\u5668\u201d\u800c\u975e\u201c\u89e3\u51b3\u65b9\u6848\u201d\u5c42\u9762\u2014\u2014\u8bc4\u8bba\u4e2d\u4e24\u6761\u6700\u9ad8\u8d28\u91cf\u7684\u53cd\u9988\u76f4\u6307\u547d\u95e8\uff1a\u5176\u4e00\uff0c\u6570\u5b66\u516c\u5f0f\u652f\u6301\u7f3a\u5931\uff0c\u7b49\u4e8e\u780d\u6389\u4e86 Overleaf \u7528\u6237\u6700\u6838\u5fc3\u7684\u808c\u8089\u8bb0\u5fc6\uff1b\u5176\u4e8c\uff0c\u5bf9\u671f\u520a\/\u5927\u5b66\u6a21\u677f\u7684\u517c\u5bb9\u6027\u542b\u7cca\u5176\u8f9e\uff0c\u610f\u5473\u7740\u5b83\u65e0\u6cd5\u6210\u4e3a\u6587\u6863\u6d41\u7a0b\u7684\u7ec8\u70b9\u7ad9\uff0c\u800c\u4ec5\u4ec5\u662f\u201c\u770b\u8d77\u6765\u66f4\u8212\u670d\u7684\u8349\u7a3f\u7eb8\u201d\u3002\u8fd9\u79cd\u201c95% \u7684\u5b8c\u6210\u5ea6\u201d\u53cd\u800c\u5236\u9020\u4e86\u66f4\u7cdf\u7cd5\u7684\u53cc\u91cd\u52b3\u52a8\uff1a\u7528\u6237\u5728 Doxy \u5199\u521d\u7a3f\uff0c\u518d\u56de LaTeX \u8865\u516c\u5f0f\u548c\u8c03\u6837\u5f0f\uff0c\u5207\u6362\u6210\u672c\u6bd4\u7eaf\u7528 LaTeX \u66f4\u9ad8\u3002Doxy \u771f\u6b63\u8be5\u8d4c\u7684\u4e0d\u662f\u201c\u66ff\u4ee3 LaTeX\u201d\uff0c\u800c\u662f\u7784\u51c6\u201c\u4e0d\u9700\u8981\u516c\u5f0f\u3001\u4e0d\u9700\u8981\u5f3a\u5236\u6a21\u677f\u201d\u7684\u5782\u76f4\u573a\u666f\u2014\u2014\u6bd4\u5982\u6280\u672f\u535a\u5ba2\u3001\u5185\u90e8 wiki\u3001\u4ea7\u54c1\u6587\u6863\u3001\u7b80\u5386\uff08\u975e\u5b66\u672f\u7248\uff09\u3002\u5728\u8fd9\u4e9b\u9886\u57df\uff0c\u5b83\u7684\u5373\u65f6\u9884\u89c8\u548c\u8f7b\u91cf\u611f\u624d\u662f\u51b3\u5b9a\u6027\u4f18\u52bf\u3002\u5982\u679c\u56e2\u961f\u628a\u8def\u7ebf\u56fe\u4f18\u5148\u7528\u4e8e\u5b8c\u5584 LaTeX \u5bfc\u5165\u5bfc\u51fa\u548c\u57fa\u7840\u516c\u5f0f\u6e32\u67d3\uff08\u54ea\u6015\u53ea\u662f\u517c\u5bb9\u5e38\u89c1\u5b50\u96c6\uff09\uff0c\u5e76\u660e\u786e\u5217\u51fa\u201c\u53ef\u5b8c\u5168\u4ea7\u51fa\u7684\u6587\u6863\u7c7b\u578b\u6e05\u5355\u201d\uff0c\u5b83\u624d\u6709\u8d44\u683c\u4ece\u201c\u6709\u8da3\u7684\u73a9\u5177\u201d\u8fdb\u9636\u4e3a\u201c\u53ef\u9760\u7684\u751f\u4ea7\u529b\u5de5\u5177\u201d\u3002\u5426\u5219\uff0c\u5b83\u5c06\u6c38\u8fdc\u6d3b\u5728 Overleaf \u7684\u9634\u5f71\u4e0b\uff0c\u6210\u4e3a\u53c8\u4e00\u4e2a\u201c\u770b\u8d77\u6765\u4e0d\u9519\u4f46\u6ca1\u4eba\u6562\u4f9d\u8d56\u201d\u7684\u7f16\u8f91\u5668\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Doxy<\/span>\n                <\/div>\n<div class=\"comment-content\">Doxy is a browser-based editor for creating clean, professional documents with Markdown and HTML without the complexity of LaTeX or the frustration of compile times. Write, format, and preview your work in one simple, fast editor.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey PH! \ud83d\udc4b I&#8217;m ilies, the builder of Doxy.<\/p>\n<p>The idea came from using Overleaf during uni , I loved the workflow but always wished I could just write in markdown instead of LaTeX. So I built it.<\/p>\n<p>Happy to answer anything. What would make you actually switch your writing workflow to Doxy?<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ilies_mraihi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ilies_mraihi<\/a>&nbsp;the honest blocker for me isn&#8217;t the markdown vs latex syntax, it&#8217;s math. overleaf&#8217;s real value for a lot of people is that inline equations render properly, and skipping that to dodge latex&#8217;s complexity solves the part people didn&#8217;t mind and drops the part they&#8217;d actually miss. does doxy handle equations at all, or is this aimed at docs that were never going to have them anyway?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Omg, finally! I&#8217;ve been wishing for an easier way to edit LaTeX resumes for ages. Definitely giving this a try&#8230; Wondering if full LaTeX import\/export is supported?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@beebombshell\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@beebombshell<\/a>&nbsp;Thanks! Full LaTeX import\/export is planned for an upcoming feature, so you\u2019ll be able to work with your existing LaTeX resumes more seamlessly. Stay tuned! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The live preview is instant and the markdown rendering looks clean out of the box, no setup needed. Honestly surprised how lightweight it feels compared to opening a full LaTeX editor for quick docs.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The switch won&#8217;t be decided by the writing, it&#8217;ll be decided by the one page you can&#8217;t reproduce. Anyone submitting to a journal or a university has a template they didn&#8217;t choose, so if Doxy gets 95% of the way and then can&#8217;t do the numbered equations or the bibliography style, they write in Doxy and finish in LaTeX, which is worse than never switching. I&#8217;d name the document types you can fully produce today and say nothing about the rest. Shorter page, much easier decision.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#16<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/KYW7MRYC53YR6N\" class=\"app-title\">MacDupl<\/a><\/p>\n<div class=\"one-liner\">Clone any Mac app into a fully isolated instance<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">99<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>MacDupl \u662f\u4e00\u6b3e macOS \u5de5\u5177\uff0c\u80fd\u5c06\u4f60\u5df2\u5b89\u88c5\u7684 Mac \u5e94\u7528\u514b\u9686\u51fa\u5b8c\u5168\u72ec\u7acb\u7684\u526f\u672c\uff0c\u5b9e\u73b0\u540c\u4e00\u5e94\u7528\u7684\u591a\u8d26\u53f7\u3001\u591a\u6570\u636e\u5e76\u884c\u4f7f\u7528\uff0c\u6446\u8131\u9891\u7e41\u767b\u51fa\u767b\u5165\u7684\u56f0\u6270\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/7a4c2675-3975-4ed1-86aa-97d943a81bdd.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fdaf44d1-c217-421b-871c-0798eb5f77c1.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/80306a1d-69ff-407a-8b9e-f2ff167906ff.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9cec5882-656b-46d8-b7ba-81ad3be39578.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/2936bc49-1bfd-4ac5-94ab-9d92c9ba447f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/35297966-f869-47d9-93b3-854acbcea2de.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/Y4iryQxFnQ8\"><source src=\"https:\/\/youtu.be\/Y4iryQxFnQ8\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS \u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5e94\u7528\u514b\u9686<\/span><br \/>\n            <span class=\"tag\">\u591a\u5f00\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u591a\u8d26\u53f7\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u9694\u79bb<\/span><br \/>\n            <span class=\"tag\">Keychain\u9694\u79bb<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4ed8\u8d39\u8f6f\u4ef6<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u5173\u6ce8\u514b\u9686\u540e\u7684\u51ed\u636e\u4e0e\u901a\u77e5\u662f\u5426\u771f\u9694\u79bb\u3001\u5e94\u7528\u66f4\u65b0\u540e\u514b\u9686\u662f\u5426\u5931\u6548\u3001\u56fa\u5b9a\u8def\u5f84\u5199\u5165\u4e0e\u8bb8\u53ef\u8bc1\u6fc0\u6d3b\u95ee\u9898\u3002\u5f00\u53d1\u8005\u56de\u5e94\u79f0\u901a\u8fc7\u6539 bundle ID \u9694\u79bb Keychain\uff0cElectron \u5e94\u7528\u7528 user-data-dir\uff0c\u539f\u751f\u5e94\u7528\u7528 $HOME \u8986\u76d6\uff0c\u4f46\u786c\u7f16\u7801\u8def\u5f84\u548c\u8bb8\u53ef\u8bc1\u6fc0\u6d3b\u56e0\u5e94\u7528\u800c\u5f02\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                MacDupl \u5207\u4e2d\u4e86\u4e00\u4e2a\u771f\u5b9e\u4e14\u9ad8\u9891\u7684\u75db\u70b9\uff1a\u540c\u5e94\u7528\u591a\u8d26\u53f7\u5207\u6362\u7684\u5272\u88c2\u4f53\u9a8c\u3002\u5b83\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u865a\u62df\u673a\u7ea7\u9694\u79bb\u201d\u6216\u201c\u5bb9\u5668\u7ea7\u5b89\u5168\u201d\uff0c\u800c\u5728\u4e8e\u7528\u4e00\u4e2a\u8f7b\u91cf\u3001\u5feb\u901f\u3001\u7b26\u5408 Mac \u76f4\u89c9\u7684\u65b9\u5f0f\uff08APFS \u5199\u65f6\u590d\u5236 + bundle ID \u6539\u5199\uff09\u8ba9\u7528\u6237\u201c\u591a\u5f00\u5e94\u7528\u201d\u50cf\u590d\u5236\u6587\u4ef6\u4e00\u6837\u7b80\u5355\u3002\u8fd9\u672c\u8d28\u4e0a\u662f\u5bf9 macOS \u5e94\u7528\u6c99\u7bb1\u673a\u5236\u7684\u4e00\u6b21\u5de7\u5999\u7ed5\u884c\uff0c\u6362\u53d6\u7684\u662f\u6781\u901f\u514b\u9686\u4e0e\u8fd1\u4e4e\u4e3a\u96f6\u7684\u78c1\u76d8\u5360\u7528\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u201c\u9694\u79bb\u201d\u8fd9\u4e2a\u5356\u70b9\u9700\u8981\u8c28\u614e\u5bf9\u5f85\u3002\u4ece\u5f00\u53d1\u8005\u56de\u590d\u770b\uff0c\u5b83\u5bf9 Electron \u5e94\u7528\uff08Slack\u3001Claude \u7b49\uff09\u6548\u679c\u5c1a\u53ef\uff0c\u56e0\u4e3a\u8fd9\u7c7b\u5e94\u7528\u6709\u7edf\u4e00\u7684\u6570\u636e\u76ee\u5f55\u53c2\u6570\uff1b\u5bf9\u539f\u751f\u5e94\u7528\u5219\u4f9d\u8d56\u662f\u5426\u786c\u7f16\u7801\u8def\u5f84\uff0c\u517c\u5bb9\u6027\u96be\u4ee5\u4fdd\u8bc1\u3002\u66f4\u5173\u952e\u7684\u662f\uff0c\u5b83\u660e\u786e\u4e0d\u652f\u6301 Mac App Store \u6c99\u76d2\u5e94\u7528\uff0c\u8fd9\u76f4\u63a5\u780d\u6389\u4e86\u4e00\u5927\u6279\u4e3b\u6d41\u5de5\u5177\uff08\u5982\u5f88\u591a MAS \u72ec\u5360\u5e94\u7528\uff09\u3002\u6240\u8c13\u201c\u5b8c\u5168\u9694\u79bb\u201d\u66f4\u50cf\u662f\u4e00\u4e2a\u7406\u60f3\u4e0a\u9650\uff0c\u5b9e\u9645\u4f53\u9a8c\u53d6\u51b3\u4e8e\u6bcf\u4e2a\u5e94\u7528\u7684\u813e\u6c14\uff0c\u800c\u975e MacDupl \u81ea\u8eab\u7684\u7a33\u5b9a\u6027\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u4e00\u4e2a\u88ab\u8f7b\u63cf\u6de1\u5199\u7684\u70b9\u662f\u8bb8\u53ef\u8bc1\u3002\u5bf9\u4e8e\u4f9d\u8d56\u5728\u7ebf\u6fc0\u6d3b\u6216\u6709 node-locked \u6388\u6743\u7684\u5546\u4e1a\u5e94\u7528\uff0c\u514b\u9686\u540e\u53ef\u80fd\u8981\u6c42\u91cd\u65b0\u6fc0\u6d3b\u751a\u81f3\u88ab\u5c01\u3002MacDupl \u5bf9\u6b64\u5e76\u672a\u6709\u7cfb\u7edf\u5316\u65b9\u6848\uff0c\u800c\u662f\u201c\u770b\u5e94\u7528\u5fc3\u60c5\u201d\uff0c\u8fd9\u5bf9\u4f01\u4e1a\u7528\u6237\u6216\u91cd\u5ea6\u4ed8\u8d39\u7528\u6237\u662f\u4e2a\u4e0d\u5c0f\u7684\u987e\u8651\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ef7\u683c\u7b56\u7565\u503c\u5f97\u80af\u5b9a\uff1a19 \u7f8e\u5143\u4e00\u6b21\u6027\u4e70\u65ad\u3001\u9001\u4e00\u4e2a\u6c38\u4e45\u514d\u8d39\u514b\u9686\uff0c\u4e14\u65e0\u9065\u6d4b\u3001\u65e0\u8ba2\u9605\uff0c\u5728\u8fd9\u4e2a\u8ba2\u9605\u6cdb\u6ee5\u7684 mac \u5de5\u5177\u5708\u7b97\u6e05\u6d41\u3002\u4f46\u5b83\u7684\u76ee\u6807\u5e02\u573a\u5176\u5b9e\u662f\u201c\u4e13\u4e1a\u591a\u5f00\u73a9\u5bb6\u201d\u2014\u2014Freelancer\u3001\u8fdc\u7a0b\u5de5\u4f5c\u8005\u3001\u8fd0\u8425\u4eba\u5458\uff0c\u800c\u975e\u666e\u901a\u7528\u6237\u3002\u82e5\u517c\u5bb9\u6027\u5217\u8868\u4e0d\u80fd\u5feb\u901f\u6269\u5927\u3001\u5bf9\u539f\u751f\u5e94\u7528\u7684\u9694\u79bb\u5931\u8d25\u7387\u4e0d\u80fd\u964d\u5230\u4e2a\u4f4d\u6570\uff0c\u5b83\u5f88\u5bb9\u6613\u6ca6\u4e3a\u201c\u6bcf\u5929\u90fd\u80fd\u7528\u4f46\u5173\u952e\u65f6\u523b\u4e0d\u6562\u7528\u201d\u7684\u5de5\u5177\u3002\u672c\u8d28\u4e0a\u662f\u628a macOS \u7684\u7075\u6d3b\u6027\u505a\u6210\u4e86\u4ea7\u54c1\uff0c\u4f46\u7cfb\u7edf\u7684\u8fb9\u754c\u5c31\u662f\u5b83\u7684\u5929\u82b1\u677f\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">MacDupl<\/span>\n                <\/div>\n<div class=\"comment-content\">MacDupl clones the Mac apps you already use into fully isolated instances \u2014 separate logins, separate data, separate Dock icons. Work and personal, side by side.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunters \ud83d\udc4b<br \/>I&#8217;m Sigit, maker of MacDupl.<\/p>\n<p><strong>What inspired me to build this<\/strong><br \/>I was tired of logging out of my personal Slack just to log into a client&#8217;s, over and over \ud83d\ude2d<\/p>\n<p>Tried browser profiles, separate Mac users, extra browsers \u2014 all annoying in their own way.<\/p>\n<p>What I actually wanted was dumb simple: another copy of the app, its own icon, own login, sitting right next to the original.<\/p>\n<p>So I built it. macOS actually makes this possible with APFS copy-on-write \u2014 cloning a 700MB app costs basically nothing on disk.<\/p>\n<p>A few weekends later, MacDupl was born \ud83d\ude80<\/p>\n<p><strong>The problem<\/strong><br \/>If you use the same app for work and personal \u2014 or juggle multiple client accounts in one tool \u2014 you know the loop: log out, log back in, log out again. Browser profiles half-solve it for browsers, but there was nothing for native Mac apps. I wanted a real second instance of the app itself: separate login, separate data, its own icon in the Dock \u2014 not a workaround.<\/p>\n<p><strong>How the approach evolved<\/strong><br \/>Early on I looked at container\/VM-based isolation to sandbox apps more heavily \u2014 more &#8220;bulletproof&#8221; in theory, but it added real complexity and UX tradeoffs that worked against the whole point (this was supposed to feel instant, not heavy). I ended up going with a lighter approach: unique bundle identifiers plus separate data directories per clone, using `&#8211;use-mock-keychain` so credentials stay isolated without ever touching the shared macOS Keychain. It&#8217;s simpler, and it&#8217;s fast \u2014 clones build in about 2 seconds.<\/p>\n<p>That constraint also shaped what MacDupl *won&#8217;t* do: some App Store \/ sandboxed apps (their entitlements and shared containers make real isolation impossible without Apple&#8217;s own provisioning) just can&#8217;t be cloned. Rather than fake it and quietly share the original&#8217;s data, I decided to exclude them outright and be upfront about it. Sandboxed apps aren&#8217;t supported \u2014 accuracy mattered more to me than a longer compatibility list.<\/p>\n<p><strong>Where it landed:<\/strong><\/p>\n<ul>\n<li>\n<p>7-day free trial, unlimited clones<\/p>\n<\/li>\n<li>\n<p>After that, 1 clone stays free forever<\/p>\n<\/li>\n<li>\n<p>$19 one-time unlocks unlimited \u2014 no subscription<\/p>\n<\/li>\n<li>\n<p>Zero telemetry, zero analytics \u2014 the only network calls are license and update checks<\/p>\n<p>Would love your feedback, especially on apps not yet on my <a href=\"https:\/\/macdupl.app\/compatibility\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/macdupl.app\/compatibility<\/a> or anything odd on the native-app tier. I&#8217;ll be around all day \ud83d\ude4f<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@sigit_kusuma\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sigit_kusuma<\/a>&nbsp;The multi-account case caught my eye, since juggling logins across clients has always meant a mess of browser profiles and a second laptop. Does each clone keep fully separate credentials and notifications, and does it survive an app update without breaking?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Two Slack accounts is the honest use case, but the interesting one is what &#8220;fully isolated&#8221; means to an app that assumed it was alone. Keychain items are shared by bundle ID, and a lot of Mac apps write to fixed paths in Application Support rather than their own container. Do you rewrite the bundle ID per clone, and if so what happens to the license \u2014 does the second instance ask to be activated again?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ark_y_k\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ark_y_k<\/a>&nbsp;Since the bundle ID changes with each clone, Keychain isolation is essentially free because macOS already uses bundle ID to identify keys. \ud83d\ude4f<\/p>\n<p>The tricky part is apps that write to a fixed path instead of using their own bundle ID. For Electron\/Chromium apps like Slack and Claude, i use \u2014user-data-dir, which works well. For native apps still in beta, i use a $HOME override. This is where things get a bit tricky if the app hardcodes paths. \ud83d\ude05<\/p>\n<p>Whether the clone asks for its own license activation depends on the app, and I haven\u2019t audited that across all of them. MacDupl\u2019s license is per-Mac, so it\u2019s not related to this<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#17<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/BMPXGGLGTBQZUE\" class=\"app-title\">CoachAI<\/a><\/p>\n<div class=\"one-liner\">Your iPhone camera watches your form, rep by rep<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">99<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>CoachAI \u5229\u7528 iPhone \u6444\u50cf\u5934\u5b9e\u65f6\u8ffd\u8e2a\u7528\u6237\u7684\u52a8\u4f5c\u8f68\u8ff9\uff0c\u5728\u529b\u91cf\u8bad\u7ec3\u573a\u666f\u4e2d\u81ea\u52a8\u8ba1\u6570\u5e76\u7ea0\u6b63\u59ff\u52bf\uff0c\u89e3\u51b3\u5065\u8eab\u7231\u597d\u8005\u201c\u65e0\u4eba\u6307\u5bfc\u3001\u52a8\u4f5c\u6613\u9519\u3001\u6613\u53d7\u4f24\u201d\u7684\u6838\u5fc3\u75db\u70b9\uff0c\u4e14\u5168\u7a0b\u6570\u636e\u672c\u5730\u5904\u7406\u4e0d\u4e0a\u4f20\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/d9ef2fb4-63b0-4847-a7e7-39a9900c33a4.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=gPPcr3aAhwc\"><source src=\"https:\/\/www.youtube.com\/watch?v=gPPcr3aAhwc\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/52a4842f-4002-4b00-bec3-fe60b2d47f0e.webp?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/faf25d0f-d65f-4717-a556-940b864c639f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">iOS<\/span><br \/>\n            <span class=\"tag\">Health &#038; Fitness<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5065\u8eab\u6559\u7ec3<\/span><br \/>\n            <span class=\"tag\">\u52a8\u4f5c\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">\u59ff\u52bf\u7ea0\u6b63<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u8ba1\u6570<\/span><br \/>\n            <span class=\"tag\">iPhone\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u8ba1\u7b97\u673a\u89c6\u89c9<\/span><br \/>\n            <span class=\"tag\">\u529b\u91cf\u8bad\u7ec3<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u9690\u79c1\u8ba1\u7b97<\/span><br \/>\n            <span class=\"tag\">\u5065\u8eab\u79d1\u6280<\/span><br \/>\n            <span class=\"tag\">\u8fd0\u52a8\u5206\u6790<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8ba4\u53ef\u4ea7\u54c1\u521b\u610f\u4e0e\u201c\u5148\u4f53\u9a8c\u540e\u586b\u8868\u201d\u7684\u4ea4\u4e92\u6539\u8fdb\uff0c\u4f46\u91cd\u70b9\u62c5\u5fe7\u4e24\u70b9\uff1a\u4e00\u662f\u624b\u673a\u5355\u89d2\u5ea6\u62cd\u6444\u65e0\u6cd5\u6355\u6349\u6df1\u8e72\/\u786c\u62c9\u7b49\u590d\u5408\u52a8\u4f5c\u7684\u6df1\u5ea6\u4e0e\u810a\u67f1\u5f62\u6001\uff0c\u53ef\u80fd\u7ed9\u51fa\u201c\u770b\u4e0d\u89c1\u4f46\u6b63\u786e\u201d\u7684\u8bef\u5224\uff1b\u4e8c\u662f\u5efa\u8bae\u672a\u6765\u62d3\u5c55\u81f3\u7f51\u7403\u7b49\u6325\u62cd\u7c7b\u8fd0\u52a8\uff0c\u5e76\u63a2\u7d22AirPods\u5b9e\u65f6\u8bed\u97f3\u53cd\u9988\u7684\u53ef\u80fd\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                CoachAI \u7684\u8bda\u610f\u5728\u4e8e\u5b83\u52a1\u5b9e\u56de\u7b54\u4e86\u201c\u624b\u673a\u80fd\u5426\u770b\u89c1\u574f\u52a8\u4f5c\u201d\u8fd9\u4e00\u5173\u952e\u547d\u9898\uff0c\u5e76\u5927\u80c6\u91c7\u7528\u4e86\u201c\u5355\u6b21\u52a8\u4f5c\u8bc1\u660e\u4ef7\u503c\u201d\u7684\u5f15\u5bfc\u6d41\u7a0b\uff0c\u503c\u5f97\u80af\u5b9a\u3002\u4f46\u5b83\u7684\u77ed\u677f\u6070\u6070\u4e5f\u85cf\u5728\u201c\u770b\u89c1\u201d\u8fd9\u4e2a\u8bcd\u91cc\u2014\u2014\u5f53\u524d\u7684 AI \u89c6\u89c9\u65b9\u6848\u672c\u8d28\u4e0a\u662f\u5bf9\u4e8c\u7ef4\u89c6\u9891\u6d41\u7684\u59ff\u6001\u4f30\u8ba1\uff0c\u8fd9\u51b3\u5b9a\u4e86\u5b83\u5bf9\u201c\u6df1\u5ea6\u201d\u4e0e\u201c\u906e\u6321\u201d\u7684\u611f\u77e5\u662f\u5148\u5929\u6b8b\u7f3a\u7684\u3002\u8bc4\u8bba\u4e2d\u90a3\u4f4d\u7528\u6237\u63d0\u51fa\u7684\u62c5\u5fe7\u6781\u5176\u4e13\u4e1a\u4e14\u81f4\u547d\uff1a\u5f53\u624b\u673a\u67b6\u5728\u4fa7\u9762\u65e0\u6cd5\u5224\u65ad\u810a\u67f1\u662f\u5426\u5706\u5c48\u65f6\uff0c\u7cfb\u7edf\u7ed9\u51fa\u7684\u201c\u5408\u683c\u201d\u5224\u65ad\u4f1a\u6210\u4e3a\u4e00\u79cd\u5371\u9669\u7684\u6743\u5a01\u80cc\u4e66\uff0c\u8bf1\u5bfc\u7528\u6237\u76f2\u76ee\u52a0\u91cd\uff0c\u8fd9\u6bd4\u4e0d\u7ed9\u53cd\u9988\u66f4\u5371\u9669\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u66f4\u6df1\u5c42\u7684\u95ee\u9898\u662f\uff0c\u4ea7\u54c1\u76ee\u524d\u7684\u58c1\u5792\u662f\u201cAPI\u8c03\u7528\u201d\u800c\u975e\u201c\u6570\u636e\u98de\u8f6e\u201d\u3002\u59ff\u6001\u4f30\u8ba1\u7b97\u6cd5\u65e9\u5df2\u5f00\u6e90\u5316\uff0c\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5728\u4e8e\u80fd\u5426\u8986\u76d6\u66f4\u591a\u52a8\u4f5c\u53d8\u4f53\u3001\u66f4\u590d\u6742\u7684\u8bad\u7ec3\u73af\u5883\uff0c\u4ee5\u53ca\u79ef\u7d2f\u8db3\u591f\u591a\u7684\u201c\u9519\u8bef\u52a8\u4f5c\u201d\u6807\u6ce8\u6570\u636e\u3002\u65e9\u671f\u7684\u7c97\u7cd9\u53ef\u4ee5\u539f\u8c05\uff0c\u4f46\u5728\u201c\u8bef\u5224\u5bfc\u81f4\u53d7\u4f24\u201d\u8fd9\u4e00\u9ad8\u98ce\u9669\u573a\u666f\u91cc\uff0c\u7c97\u7cd9\u4e0d\u662f\u4f53\u9a8c\u95ee\u9898\uff0c\u662f\u8d23\u4efb\u8fb9\u754c\u95ee\u9898\u3002\u5efa\u8bae\u56e2\u961f\u4f18\u5148\u5f00\u53d1\u5e76\u5c55\u793a\u201c\u89c6\u89d2\u7f6e\u4fe1\u5ea6\u63d0\u793a\u201d\u2014\u2014\u5728\u7cfb\u7edf\u770b\u4e0d\u6e05\u65f6\u5e94\u660e\u786e\u8bf4\u201c\u4e0d\u77e5\u9053\u201d\uff0c\u800c\u4e0d\u662f\u786c\u731c\u3002\u8fd9\u662f\u4ece\u201c\u73a9\u5177\u201d\u8d70\u5411\u201c\u5de5\u5177\u201d\u7684\u95e8\u7968\uff0c\u4f46\u76ee\u524d\u5728\u4ea7\u54c1\u4ecb\u7ecd\u548c\u8bc4\u8bba\u56de\u5e94\u4e2d\u672a\u89c1\u8fd9\u4e00\u529f\u80fd\u7684\u5177\u4f53\u8bf4\u660e\u3002\u65b9\u5411\u6b63\u786e\uff0c\u4f46\u8ddd\u79bb\u4e00\u4e2a\u771f\u6b63\u503c\u5f97\u4fe1\u8d56\u7684\u201c\u53e3\u888b\u79c1\u6559\u201d\uff0c\u8fd8\u6709\u4e00\u6574\u4e2a\u201c\u660e\u77e5\u4e0d\u53ef\u4e3a\u800c\u4e0d\u4e3a\u201d\u7684\u6280\u672f\u4f26\u7406\u8de8\u8d8a\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">CoachAI<\/span>\n                <\/div>\n<div class=\"comment-content\">CoachAI uses your phone&#8217;s camera to count your reps and correct your form in real time &#8211; a personal trainer&#8217;s eyes in your pocket.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I built CoachAI because of a gap I kept watching in gyms: people show up consistently, train hard, and still get hurt or plateau \u2014 not because they lack discipline, but because nobody is watching how they move. trainers are expensive or don&#8217;t fit into the schedule. Most people just guess.<\/p>\n<p>So the core question became: can a phone actually see a bad rep?<\/p>\n<p>Turns out yes. CoachAI uses the iPhone camera to track your movement in real time and tell you when your form breaks down \u2014 all on-device, nothing uploaded. Around it sits a program engine that adjusts properly instead of shuffling random exercises.<\/p>\n<p>The biggest shift in my process was order of operations. My original onboarding asked for goals, height, weight, injuries \u2014 five screens before you ever saw the thing that makes the app different. People bounced. I&#8217;ve since flipped it: you do one tracked rep first, then we ask questions. Show the magic, earn the form fill.<\/p>\n<p>On process: I shipped this before I was comfortable. There are rough edges I&#8217;d normally have spent another three months sanding down in private. But a polished app nobody has used is just a very expensive opinion. I&#8217;d rather have real people telling me what&#8217;s wrong than keep guessing on my own.<\/p>\n<p>Still early, still rough in places. If you try it, I want the harsh feedback \u2014 especially on the tracking accuracy.<\/p>\n<p>Try it and see if it catches your form breaking down. That&#8217;s the part I&#8217;m proudest of, and the part I want people to try out.<\/p>\n<p>iOS 17+, free to start: <a href=\"https:\/\/apps.apple.com\/app\/coach-ai\/id6504732473\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/apps.apple.com\/app\/coach&#8230;<\/a><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>5<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I love the idea. I am curious if you have thought about using this for other sports? I recently started playing tennis again and would love something that could analyze my swing and give me feedback. The setup my be a little tricky but you could have airpods in and get realtime feedback. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>respect for shipping this rough and asking for harsh feedback. the part I&#8217;d worry about is camera angle on the heavier compound lifts &#8211; a phone propped up to one side can miss depth or spinal rounding on a squat or deadlift that a trainer standing at the right angle would catch immediately. if the app gives a thumbs-up on form when the angle just didn&#8217;t have visibility into the thing that actually matters, that&#8217;s arguably worse than no feedback at all, since people will trust it and load up more. is there anything that tells the user when the angle itself isn&#8217;t good enough to judge a given movement?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>congrats on the launch! I&#8217;m wondering what the different applications of this tool are or if it can analyze all types of movements. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#18<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/OTVL6O5W5ORVNF\" class=\"app-title\">Murmell<\/a><\/p>\n<div class=\"one-liner\">Cloud canvas where your team and AI agents works together<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">99<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong><\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/2ef3156a-06cc-4308-ad2e-d95c8bed6378.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/tJQOjN-J-oI\"><source src=\"https:\/\/youtu.be\/tJQOjN-J-oI\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/314b188d-ab16-485e-a1c1-6fd9a51d995f.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/fd8014da-2d8a-4727-b1ba-564f7a3265e4.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ba72fff6-69f3-4bf8-9475-0c63139fb584.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4c7b5be1-7134-4f88-bd47-c14be5411bed.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Software Engineering<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u4e91\u7aef\u534f\u4f5c\u753b\u5e03<\/span><br \/>\n            <span class=\"tag\">AI\u4ee3\u7406\u7f16\u6392<\/span><br \/>\n            <span class=\"tag\">\u591a\u4eba\u534f\u540c\u7f16\u7a0b<\/span><br \/>\n            <span class=\"tag\">\u8fdc\u7a0b\u5f00\u53d1\u73af\u5883<\/span><br \/>\n            <span class=\"tag\">\u6587\u4ef6\u9501\u673a\u5236<\/span><br \/>\n            <span class=\"tag\">Git\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u591a\u4ee3\u7406\u5e76\u884c<\/span><br \/>\n            <span class=\"tag\">\u56e2\u961fAI\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668IDE<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53\u8c03\u5ea6<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u5728\u4e09\u5904\uff1a\u4e00\u662f\u6587\u4ef6\u9501\u7c92\u5ea6\uff0c\u8d28\u7591\u6574\u6587\u4ef6\u9501\u53ea\u4f1a\u628a\u51b2\u7a81\u4e0b\u63a8\u5230\u4e0b\u6e38\uff0c\u5e0c\u671b\u652f\u6301\u51fd\u6570\u6216\u4ee3\u7801\u5757\u7ea7\u9501\u5b9a\uff1b\u4e8c\u662f\u4ee3\u7406\u5d29\u6e83\u540e\u9501\u91ca\u653e\u95ee\u9898\uff0c\u62c5\u5fc3\u65e0\u4eba\u503c\u5b88\u65f6\u6b7b\u9501\u963b\u585e\u4ed6\u4eba\uff1b\u4e09\u662f\u5de5\u4f5c\u53ef\u89c6\u6027\u4e0d\u8db3\uff0c\u8ba4\u4e3a\u4ec5\u201c\u5728\u573a\u72b6\u6001\u201d\u65e0\u6cd5\u9884\u9632\u4e24\u4e2a\u4ee3\u7406\u505a\u540c\u4e00\u4ef6\u4e8b\u540e\u9759\u9ed8\u91cd\u590d\u63d0\u4ea4\uff0c\u7f3a\u4e4f\u4efb\u52a1\u7ea7\u58f0\u660e\u673a\u5236\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                Murmell\u5207\u4e2d\u7684\u75db\u70b9\u771f\u5b9e\u5b58\u5728\uff0c\u4f46\u5b83\u76ee\u524d\u89e3\u51b3\u7684\u662f\u201c\u75db\u70b9\u7684\u4e00\u534a\u201d\u3002\u4ea7\u54c1\u6838\u5fc3\u7406\u5ff5\u2014\u2014\u628a\u4ee3\u7406\u548c\u4eba\u7c7b\u642c\u8fdb\u540c\u4e00\u4e91\u7aef\u623f\u95f4\uff0c\u7528\u6587\u4ef6\u9501\u907f\u514d\u4e92\u76f8\u8986\u76d6\u2014\u2014\u672c\u8d28\u4e0a\u662f\u5c06\u4f20\u7edfIDE\u7684\u534f\u4f5c\u6a21\u5f0f\u5e73\u79fb\u5230AI\u4ee3\u7406\u573a\u666f\u3002\u8fd9\u4e0d\u662f\u574f\u4e3b\u610f\uff0c\u4f46\u5b83\u7684\u62a4\u57ce\u6cb3\u6d45\u5f97\u4e00\u773c\u89c1\u5e95\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u7528\u6237\u8bc4\u8bba\u53ef\u770b\u51fa\uff0c\u771f\u6b63\u7684\u6280\u672f\u6df1\u6c34\u533a\u5e76\u975e\u201c\u62a2\u6587\u4ef6\u201d\uff0c\u800c\u662f\u51b2\u7a81\u5b9a\u4e49\u3002\u6574\u6587\u4ef6\u9501\u662f\u7c97\u66b4\u7684\u4e92\u65a5\u4fe1\u53f7\u91cf\uff0c\u53ea\u963b\u6b62\u4e86\u5199\u5165\u78b0\u649e\uff0c\u5374\u62e6\u4e0d\u4f4f\u903b\u8f91\u5c42\u9762\u7684\u8bed\u4e49\u51b2\u7a81\u3002\u4e24\u4e2a\u4ee3\u7406\u5404\u6301\u4e0d\u540c\u6587\u4ef6\uff0c\u4e00\u4e2a\u6539\u8c03\u7528\u65b9\u3001\u4e00\u4e2a\u6539\u88ab\u8c03\u65b9\uff0c\u4ee3\u7801\u5408\u5e76\u96f6\u51b2\u7a81\uff0c\u6784\u5efa\u5374\u70b8\u4e86\u2014\u2014\u8fd9\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\u6700\u7ecf\u5178\u7684\u201c\u65e0\u78b0\u649e\u4f46\u9519\u8bef\u201d\u95ee\u9898\uff0cMurmell\u76ee\u524d\u6ca1\u6709\u7ed9\u51fa\u6bd4Git\u66f4\u806a\u660e\u7684\u7b54\u6848\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u66f4\u81f4\u547d\u7684\u662f\u6b7b\u9501\u4e0e\u5931\u6548\u7ba1\u7406\u3002\u4e91\u7aef\u4ee3\u7406\u65e0\u4eba\u503c\u5b88\uff0c\u4e00\u65e6\u6301\u6709\u9501\u7684\u4ee3\u7406\u5d29\u6e83\uff0c\u9501\u5982\u4f55\u8d85\u65f6\u56de\u6536\uff1f\u8bc4\u8bba\u4e2d\u5df2\u6709\u7528\u6237\u8ffd\u95ee\uff0c\u4ea7\u54c1\u9875\u5374\u672a\u89c1\u660e\u786e\u673a\u5236\u8bf4\u660e\u3002\u82e5\u7ebf\u7a0b\u5d29\u6e83\u5bfc\u81f4\u6587\u4ef6\u9501\u6c38\u4e45\u60ac\u6302\uff0c\u534f\u4f5c\u6548\u7387\u4f1a\u6bd4\u672c\u5730\u5fae\u51b2\u7a81\u66f4\u707e\u96be\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u4e00\u5c42\u66f4\u6df1\u7684\u9690\u60a3\u88ab\u4e00\u6761\u8bc4\u8bba\u7cbe\u51c6\u8bf4\u51fa\uff1a\u4ee3\u7406\u4e0d\u4f1a\u50cf\u4eba\u4e00\u6837\u201c\u770b\u5230\u522b\u4eba\u5728\u6253\u5b57\u5c31\u505c\u624b\u201d\u3002\u8fd9\u610f\u5473\u7740\uff0c\u4ec5\u9760\u6587\u4ef6\u9501\u548cpresence indicator\u89e3\u51b3\u7684\u662f\u4ee3\u7801\u5c42\uff0c\u800c\u975e\u4efb\u52a1\u5c42\u3002\u4e24\u4e2a\u4ee3\u7406\u53ef\u80fd\u5404\u81ea\u5b8c\u6210\u4e00\u5957\u5b8c\u6574\u5b9e\u73b0\uff0c\u90fd\u5728Git\u4e0a\u843d\u5e72\u51c0\uff0c\u4f46\u529f\u80fd\u91cd\u590d\u2014\u2014\u8fd9\u662f\u5408\u5e76\u5de5\u5177\u6c38\u8fdc\u5435\u4e0d\u51fa\u6765\u7684\u9519\u8bef\u7c7b\u578b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u8bda\u5b9e\u7684\u8bc4\u4ef7\u662f\uff1aMurmell\u7684\u65b9\u5411\u662f\u5bf9\u7684\uff0c\u4f46\u4ee5\u5f53\u524d\u5f62\u6001\uff0c\u5b83\u76f8\u5f53\u4e8e\u628a\u201c\u8c01\u62a2\u5230\u6587\u4ef6\u8c01\u5199\u201d\u7684\u89c4\u5219\u642c\u4e0a\u4e91\u7aef\uff0c\u79bb\u201c\u591a\u667a\u80fd\u4f53\u534f\u8c03\u8c03\u5ea6\u201d\u8fd8\u6709\u4e24\u4e2a\u7248\u672c\u7684\u8ddd\u79bb\u3002\u503c\u5f97\u80af\u5b9a\u7684\u662f\uff0c\u5b83\u652f\u6301\u591a\u6b3e\u4e3b\u6d41\u4ee3\u7406\uff08Claude Code\u3001Codex\u7b49\uff09\u5e76\u4e3b\u52a8\u8f93\u51fa\u5230Git\uff0c\u964d\u4f4e\u4e86\u8bd5\u9519\u95e8\u69db\u2014\u2014\u4f46\u5728\u6587\u4ef6\u9501\u3001\u4efb\u52a1\u58f0\u660e\u3001\u5931\u6548\u9501\u56de\u6536\u8fd9\u4e09\u4e2a\u673a\u5236\u5c42\u9762\u6210\u719f\u4e4b\u524d\uff0c\u5b83\u66f4\u9002\u5408\u4f5c\u4e3a\u56e2\u961f\u5c1d\u9c9c\u5de5\u5177\uff0c\u800c\u975e\u751f\u4ea7\u73af\u5883\u7684\u534f\u4f5c\u57fa\u5ea7\u3002\u771f\u6b63\u7684\u4ef7\u503c\u58c1\u5792\u5728\u4e8e\u80fd\u5426\u4ece\u201c\u6587\u4ef6\u4e92\u65a5\u201d\u8fdb\u5316\u4e3a\u201c\u610f\u56fe\u4e92\u65a5\u201d\uff0c\u770b\u5230\u90a3\u4e00\u6b65\uff0c\u5b83\u624d\u914d\u79f0canvas\uff0c\u800c\u4e0d\u53ea\u662f\u5171\u4eab\u684c\u9762\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">Murmell<\/span>\n                <\/div>\n<div class=\"comment-content\">Murmell is a shared cloud canvas where your team and AI agents work in the same room, on the same repo, with a preview and more coming in the future. Close your laptop and the work keeps going. Agents claim files before they write, so people and agents can move at once without overwriting each other. Run Claude Code, Codex, Kimi, and OpenCode together today, with more agents on the way (OpenClaw, Hermes, and more), and your work lands back in git, so you can always find your projects there.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt. I&#8217;m Moss&#8217;Ab, and I built Murmell.<\/p>\n<p>Last year at a hackathon we had three people, four AI agents, and somehow still one laptop everyone was afraid to close. <br \/>Half the night went to &#8220;who&#8217;s on which file&#8221; and &#8220;wait, my agent died when I shut the lid.&#8221;<\/p>\n<p>So I built Murmell: a shared cloud canvas in the browser where Claude Code, Codex, and your team work on one repo, on a cloud machine. Close your laptop, they keep going. Same room, a preview in the canvas, and the work lands back in git.<\/p>\n<p>More is coming next, including iOS and Android simulators in the canvas so you can see mobile builds the same way.<\/p>\n<p>I built most of this with Claude Code. Once it was solid enough, I started building Murmell with Murmell.<\/p>\n<p>Launch offer: free for the first week, plus $60 of Claude Code credits.<\/p>\n<p>Curious: when you ship with agents on a team, what breaks first for you, the coordination, the laptop, or the merge mess at the end?<\/p>\n<p>murmell.com<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>3<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Hey\ud83d\udc4b What a killer hackathon-inspired product.. congrats on the launch. Quick question how fast does a fresh cloud workspace spin up when importing a massive multi-repo project?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@moss_ab_mirande_ney\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@moss_ab_mirande_ney<\/a>&nbsp;the merge mess, every time. coordination i can shout across the room to fix and a dead laptop is annoying but recoverable, but the conflict where two agents touched the same function differently at 11pm is the one that actually kills a night. is the file claim whole-file, or something finer like a block or function range? asking because a whole-file lock just pushes the same fight downstream to whoever&#8217;s queued behind it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>File level claims solve the loud half. Two agents can hold completely disjoint files and still both rewrite the same contract, one edits the caller and one edits the callee, nothing conflicts and the build breaks somewhere neither of them was looking. The thing I&#8217;d want on the page is what happens to a claim when the agent holding it dies. Nobody&#8217;s at the keyboard on a cloud machine, so a stale lock is silent and it&#8217;s sitting on exactly the file the next person needs.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>you asked what breaks first. from the shared inbox side it is coordination, but not the part people expect.<\/p>\n<\/p>\n<p>the merge mess is loud. git tells you, someone fixes it, everyone learns from it. the failure that actually costs you is two actors doing the same work without colliding at all. both finish, both succeed, nothing conflicts, and you find out downstream or not at all.<\/p>\n<\/p>\n<p>we get that version every day. two people open the same conversation, both answer, the customer gets two different replies and neither of them did anything wrong. in code you would at least get a conflict. when the work leaves the system, you just get two sends.<\/p>\n<\/p>\n<p>agents sharpen it, because a person hesitates when they see someone else typing. an agent does not hesitate and does not look.<\/p>\n<\/p>\n<p>so does the canvas have a way to claim something, a file, a task, whatever the unit is, or does it show presence and leave the rest to people noticing? presence tells you someone is in the room, not what they have taken.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Now can I use this work with my clients agents ?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@arun_prasad06\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@arun_prasad06<\/a>&nbsp;<\/p>\n<p>Hey Arun, good question.<\/p>\n<\/p>\n<p>If you mean working with your clients in the same room: yes. You can invite them onto a Murmell canvas, share the repo, and run agents there together (Claude Code, Codex, Kimi, OpenCode today).<\/p>\n<\/p>\n<p>If you mean plugging in agents your clients already run outside Murmell, that depends on which ones. <\/p>\n<p>Tell me what they use and I\u2019ll say if it\u2019s already supported or next on the list.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@moss_ab_mirande_ney Like query their Claude code to get an audit to share with us, instead of an sdk to connect with their platform, if we could ask their Claude code to execute in their environment<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@moss_ab_mirande_ney also to query their db from their system cause if I need to know something without complete transfer of sensitive data from client environment<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#19<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/RZYGIGOKV3OSGN\" class=\"app-title\">gesture.live<\/a><\/p>\n<div class=\"one-liner\">Play live electronic music with your hands using your webcam<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">98<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>gesture.live \u901a\u8fc7\u666e\u901a\u6444\u50cf\u5934\u6355\u6349\u624b\u52bf\uff0c\u8ba9\u97f3\u4e50\u7231\u597d\u8005\u65e0\u9700\u5b9e\u4f53\u4e50\u5668\uff0c\u5373\u53ef\u7528\u53cc\u624b\u5b9e\u65f6\u6f14\u594f\u548c\u5f26\u3001\u65cb\u5f8b\u3001\u9f13\u70b9\u4e0e\u6548\u679c\uff0c\u89e3\u51b3\u5373\u5174\u521b\u4f5c\u4e0e\u6f14\u594f\u573a\u666f\u4e2d\u8bbe\u5907\u95e8\u69db\u9ad8\u3001\u64cd\u4f5c\u590d\u6742\u7684\u95ee\u9898\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/09e2b4f9-5ea3-4c3a-a8f8-9dffdb7eed93.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b82149b7-2668-4193-bc14-951270b2d85e.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/a2443d24-3007-41bd-8f5a-e0367619d485.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/489137bd-69b1-443d-918f-50d25d3b4e0d.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/khu00az6CP0?is=R0MYnEmGR1aNLVIK\"><source src=\"https:\/\/youtu.be\/khu00az6CP0?is=R0MYnEmGR1aNLVIK\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Music<\/span><br \/>\n            <span class=\"tag\">User Experience<\/span><br \/>\n            <span class=\"tag\">Electronic Music<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u624b\u52bf\u97f3\u4e50<\/span><br \/>\n            <span class=\"tag\">\u6444\u50cf\u5934\u4ea4\u4e92<\/span><br \/>\n            <span class=\"tag\">\u7535\u5b50\u97f3\u4e50\u6f14\u594f<\/span><br \/>\n            <span class=\"tag\">AI\u97f3\u4e50\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u97f3\u9891<\/span><br \/>\n            <span class=\"tag\">Web\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4e50\u5668\u6f14\u594f<\/span><br \/>\n            <span class=\"tag\">\u97f3\u4e50\u521b\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u624b\u52bf\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">\u73b0\u573a\u8868\u6f14<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u8bc4\u8bba\u5173\u6ce8\u4e24\u70b9\uff1a\u4e00\u662f\u821e\u53f0\u6216\u660f\u6697\u706f\u5149\u4e0b\u624b\u52bf\u8ffd\u8e2a\u7684\u53ef\u9760\u6027\uff0c\u8d28\u7591\u5176\u4ec5\u9002\u5408\u5367\u5ba4\u573a\u666f\uff1b\u4e8c\u662f\u97f3\u7b26\u91cf\u5316\u4e0e\u5ef6\u8fdf\u95ee\u9898\uff0c\u62c5\u5fc330fps\u6444\u50cf\u5934\u5e26\u6765\u65f6\u5e8f\u8bef\u5dee\uff0c\u5f71\u54cd\u6f14\u594f\u7684\u4eba\u6027\u5316\u201c\u63a8\u62c9\u201d\u611f\u3002\u5f00\u53d1\u8005\u56de\u5e94\u79f0\u548c\u5f26\u5df2\u91cf\u5316\uff0c\u65cb\u5f8b\u4e3a\u5b9e\u65f6\uff0c\u5c1a\u672a\u8fdb\u884c\u73b0\u573a\u6d4b\u8bd5\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                gesture.live \u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u7528\u6444\u50cf\u5934\u4ee3\u66ffMIDI\u63a7\u5236\u5668\u201d\u8fd9\u4e2a\u8868\u5c42\u521b\u65b0\uff0c\u800c\u5728\u4e8e\u5b83\u91cd\u65b0\u5b9a\u4e49\u4e86\u7535\u5b50\u97f3\u4e50\u6f14\u594f\u7684\u5165\u95e8\u6210\u672c\u4e0e\u8eab\u4f53\u8868\u8fbe\u8fb9\u754c\u3002\u5b83\u628a\u590d\u6742\u7684\u548c\u5f26\u7cfb\u7edf\u538b\u7f29\u5230\u5355\u624b\u64cd\u4f5c\uff0c\u91ca\u653e\u53e6\u4e00\u53ea\u624b\u53bb\u63a7\u5236\u65cb\u5f8b\u4e0e\u8282\u594f\uff0c\u8fd9\u672c\u8d28\u4e0a\u662f\u5c06\u201c\u6f14\u594f\u201d\u4ece\u786c\u4ef6\u4f9d\u8d56\u4e2d\u89e3\u653e\u51fa\u6765\uff0c\u53d8\u6210\u4e00\u79cd\u8fd1\u4e4e\u672c\u80fd\u7684\u80a2\u4f53\u8bed\u8a00\u3002\u7136\u800c\uff0c\u5176\u771f\u6b63\u7684\u5929\u82b1\u677f\u6070\u6070\u5361\u5728\u6280\u672f\u7269\u7406\u6781\u9650\u4e0a\uff1a30fps\u7684\u91c7\u6837\u7387\u5e26\u6765\u7684\u65f6\u5e8f\u6296\u52a8\uff0c\u5728\u97f3\u4e50\u8bed\u5883\u4e0b\u662f\u81f4\u547d\u7684\u2014\u2014\u91cf\u5316\u867d\u7136\u4fdd\u8bc1\u4e86\u201c\u4e0d\u8dd1\u8c03\u201d\uff0c\u5374\u727a\u7272\u4e86\u5fae Timing \u4ea7\u751f\u7684\u201c\u4eba\u5473\u201d\uff0c\u8fd9\u8ba9\u5b83\u66f4\u63a5\u8fd1\u201c\u97f3\u4e50\u73a9\u5177\u201d\u800c\u975e\u201c\u6f14\u594f\u5de5\u5177\u201d\u3002\u8bc4\u8bba\u91cc\u90a3\u4f4d\u63d0\u95ee\u8005\u7684\u8d28\u7591\u4e00\u9488\u89c1\u8840\uff1a\u821e\u53f0\u706f\u5149\u548c\u590d\u6742\u80cc\u666f\u4e0b\u7684\u8ffd\u8e2a\u9c81\u68d2\u6027\uff0c\u51b3\u5b9a\u4e86\u5b83\u80fd\u5426\u4ece\u5367\u5ba4\u8d70\u5411Livehouse\u3002\u76ee\u524d\uff0c\u5b83\u7684\u6700\u4f73\u573a\u666f\u53ef\u80fd\u662f\u97f3\u4e50\u6559\u80b2\u3001\u513f\u7ae5\u542f\u8499\u6216\u793e\u4ea4\u5a31\u4e50\uff0c\u800c\u975e\u4e25\u8083\u8868\u6f14\u3002\u5f00\u53d1\u8005\u82e5\u60f3\u7a81\u7834\uff0c\u9700\u8981\u5728\u7b97\u6cd5\u7aef\u5f15\u5165\u9884\u6d4b\u6027\u8ffd\u8e2a\u6216\u878d\u5408\u624b\u673aIMU\u6570\u636e\u6765\u8865\u507f\u5ef6\u8fdf\uff0c\u5426\u5219\u8fd9\u6b3e\u4ea7\u54c1\u53ea\u80fd\u505c\u7559\u5728\u201c\u60ca\u8273\u7684Demo\u201d\u5c42\u9762\uff0c\u96be\u4ee5\u6210\u4e3a\u97f3\u4e50\u4eba\u5de5\u4f5c\u6d41\u4e2d\u7684\u5e38\u9a7b\u5de5\u5177\u3002\u4e0d\u8fc7\uff0c\u5b83\u786e\u5b9e\u6307\u51fa\u4e86\u4e00\u4e2a\u672a\u6765\u65b9\u5411\u2014\u2014\u5f53\u7b97\u529b\u4e0e\u89c6\u89c9\u6a21\u578b\u8db3\u591f\u5f3a\u5927\u65f6\uff0c\u8eab\u4f53\u5373\u4e50\u5668\uff0c\u821e\u53f0\u5373\u4ea4\u4e92\u754c\u9762\uff0cgesture.live\u662f\u8fd9\u6761\u8def\u4e0a\u7684\u65e9\u671f\u63a2\u7d22\u8005\uff0c\u867d\u4e0d\u5b8c\u7f8e\uff0c\u4f46\u65b9\u5411\u503c\u5f97\u80af\u5b9a\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">gesture.live<\/span>\n                <\/div>\n<div class=\"comment-content\">Play live electronic music with your hands over a webcam. Chords, bass, drums and effects, performed through gestures.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Shoutout to <a href=\"http:\/\/indecisiveeric.com\/gesture-synth\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">indecisiveeric.com\/gesture-synth<\/a>, which went viral a few weeks ago on Instagram. It allows users to use both hands to perform chords. <\/p>\n<\/p>\n<p><a href=\"https:\/\/gesture.live\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">gesture.live<\/a> is an exploration on how to take this gesture synth further. I am using the same chord language, but am compressing it to one hand, so the other hand is free to play melodies, add drum\/bass patterns and control effects.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the demo video looks great in a well lit room at a desk. has anyone actually tried this on a small stage or at a house party yet? I&#8217;m curious how the hand tracking holds up under stage lighting or just dimmer, more colored light than a webcam usually gets pointed at, since that seems like the real test of whether this leaves the bedroom-producer use case.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Thanks for the comment! I haven&#8217;t tested it with a live audience yet. The initial use case was for the bedroom, but would love to optimize for live performance in the future!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I am no musician, so probably I will not ever use this, other than to play with my kids, but this seems amazing!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@igor_torrealba\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@igor_torrealba<\/a>&nbsp;Thank you! I hope your kids will enjoy it \ud83d\ude42<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The question that decides this is whether note-ons are quantised. Webcam hand tracking is 30fps on a good day, so there&#8217;s 30ms of jitter before the audio thread even hears you, and you start feeling timing errors well under that. Snapping to a 16th grid makes it playable but you lose pushing and laying back, which is most of what makes a part sound human. Freeing the second hand by compressing chords into one is the right call either way.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@asadmalik901\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@asadmalik901<\/a>&nbsp;I am quantizing the chords to the grid since they also influence the bass and the notes available to play the melody. The melody is completely in realtime! I haven&#8217;t found latency a big issue so far, but its good to to think about! <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#20<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/UMBJKJBVODQ62T\" class=\"app-title\">The Garden of Mind<\/a><\/p>\n<div class=\"one-liner\">Your subconscious mind as a living 3D garden you water daily<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">97<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>The Garden of Mind \u5c06\u201c\u6f5c\u610f\u8bc6\u523b\u610f\u7ec3\u4e60\u201d\u8f6c\u5316\u4e3a\u4e00\u5ea7\u968f\u771f\u5b9e\u65e5\u5386\u5929\u6570\u751f\u957f\u7684 3D \u82b1\u56ed\uff1a\u7528\u6237\u6bcf\u5929\u7528\u4e24\u5206\u949f\u5199\u4e0b\u5e76\u89c2\u60f3\u4e00\u4e2a\u610f\u56fe\uff0c\u5b83\u4fbf\u5316\u4e3a\u79cd\u5b50\u751f\u6839\u53d1\u82bd\uff0c\u7528\u53ef\u89c6\u5316\u7684\u751f\u957f\u8fc7\u7a0b\u66ff\u4ee3\u62bd\u8c61\u7684\u575a\u6301\uff0c\u89e3\u51b3\u201c\u6ce8\u610f\u529b\u88ab\u65e0\u610f\u8bc6\u6d88\u8017\u3001\u60f3\u57f9\u517b\u4e60\u60ef\u5374\u7f3a\u4e4f\u8010\u5fc3\u4e0e\u53cd\u9988\u201d\u7684\u75db\u70b9\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b8d69cff-55cd-4e28-92cf-934b96f07677.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/95280189-962c-43b7-966d-5ec95541acad.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/ee79b8d1-3725-4631-b0bb-46c2437aa0c7.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/587780f8-0c82-4059-81f3-48e42fe4125c.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/67ef446b-9600-4752-8c54-73567a434257.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/4111a2d6-a357-414a-930f-fa16d2d10634.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<div class=\"media-item-wrapper\">\n                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/856746f0-a0c3-4d78-90ce-7867b999a017.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/xEM2xf4H6Ao\"><source src=\"https:\/\/youtu.be\/xEM2xf4H6Ao\" type=\"video\/mp4\"><\/video><\/p>\n<div class=\"video-overlay\">\n<div class=\"play-icon\">\u25b6<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Web App<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Growth Hacking<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u6f5c\u610f\u8bc6\u8bad\u7ec3<\/span><br \/>\n            <span class=\"tag\">\u4e60\u60ef\u517b\u6210<\/span><br \/>\n            <span class=\"tag\">\u6b63\u5ff5\u51a5\u60f3<\/span><br \/>\n            <span class=\"tag\">\u610f\u56fe\u53ef\u89c6\u5316<\/span><br \/>\n            <span class=\"tag\">3D\u82b1\u56ed<\/span><br \/>\n            <span class=\"tag\">\u81ea\u6211\u6210\u957f<\/span><br \/>\n            <span class=\"tag\">\u4e13\u6ce8\u529b\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u65e0\u8ba2\u9605\u4ed8\u8d39<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u6bcf\u65e5\u4eea\u5f0f<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u6709\u6548\u53cd\u9988\u96c6\u4e2d\u5728\u4e09\u70b9\uff1a\u4e00\u662f\u201c\u4e2d\u65ad\u540e\u690d\u7269\u662f\u5426\u6b7b\u4ea1\u201d\u51b3\u5b9a\u5b83\u80fd\u5426\u6210\u4e3a\u4f4e\u8d1f\u7f6a\u611f\u7684\u7ec3\u4e60\u5de5\u5177\uff1b\u4e8c\u662f\u521b\u59cb\u4eba\u5766\u627f\u201c\u6700\u4e0d\u786e\u5b9a\u7528\u6237\u662f\u5426\u4f1a\u6bcf\u65e5\u56de\u5f52\u201d\uff0c\u5f15\u53d1\u5bf9\u4e60\u60ef\u7c98\u6027\u7684\u771f\u5b9e\u8ba8\u8bba\uff1b\u4e09\u662f\u7528\u6237\u8ba4\u53ef\u201c\u4e24\u5206\u949f\u5f3a\u5236\u653e\u6162\u201d\u7684\u4eea\u5f0f\u611f\uff0c\u4f46\u8d28\u7591\u5176\u672c\u8d28\u662f\u5426\u53ea\u662f\u201c\u6362\u76ae affirmation\u201d\uff0c\u5e76\u8ffd\u95ee\u662f\u5426\u6709\u957f\u671f\u6539\u53d8\u7684\u6570\u636e\u8ffd\u8e2a\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                \u8fd9\u6b3e\u4ea7\u54c1\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u628a\u201c\u6f5c\u610f\u8bc6\u201d\u8fd9\u4e2a\u7384\u5b66\u6982\u5ff5\uff0c\u7ffb\u8bd1\u6210\u4e86\u201c\u6ce8\u610f\u529b\u9009\u62e9\u201d\u8fd9\u4e2a\u73b0\u4ee3\u4eba\u666e\u904d\u7126\u8651\u7684\u65e5\u5e38\u8bae\u9898\u3002\u5b83\u6ca1\u6709\u5ba3\u79f0\u80fd\u5b9e\u73b0\u613f\u671b\uff0c\u800c\u662f\u8bda\u5b9e\u5730\u628a\u201c\u4f60\u6bcf\u5929\u91cd\u590d\u4ec0\u4e48\uff0c\u4f60\u5c31\u4f1a\u6210\u4e3a\u4ec0\u4e48\u201d\u8fd9\u53e5\u8001\u751f\u5e38\u8c08\uff0c\u505a\u6210\u4e86\u4e00\u9762\u955c\u5b50\u2014\u2014\u82b1\u56ed\u91cc\u7684\u6bcf\u682a\u690d\u7269\u90fd\u662f\u4f60\u8fc7\u53bb\u6570\u5468\u6ce8\u610f\u529b\u7684\u7269\u7406\u8bc1\u636e\uff0c\u8fd9\u79cd\u201c\u65f6\u95f4\u53ef\u89c6\u5316\u201d\u6bd4\u4efb\u4f55\u6253\u5361\u65e5\u5386\u90fd\u66f4\u76f4\u6307\u4eba\u5fc3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5b83\u7684\u5f31\u70b9\u4e5f\u6070\u597d\u5728\u8fd9\u91cc\uff1a\u5b83\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u5355\u673a\u7248\u7684\u5fc3\u667a\u6574\u7406\u5de5\u5177\uff0c\u7f3a\u4e4f\u793e\u4ea4\u538b\u529b\u548c\u5916\u90e8\u7ea6\u675f\uff0c\u5b8c\u5168\u4f9d\u8d56\u5185\u5728\u52a8\u673a\u3002\u521b\u59cb\u4ebaVictor\u81ea\u5df1\u4e5f\u627f\u8ba4\uff0c\u6700\u62c5\u5fc3\u7684\u662f\u201c\u8fd9\u4f1a\u4e0d\u4f1a\u53d8\u6210\u53e6\u4e00\u4e2a\u5f85\u529e\u4e8b\u9879\u201d\u3002\u8bc4\u8bba\u4e2d\u90a3\u4f4d\u7528\u6237\u95ee\u5f97\u7cbe\u51c6\u2014\u2014\u201c\u690d\u7269\u6b7b\u4e86\u8fd8\u662f\u7b49\u7740\u201d\u51b3\u5b9a\u4e86\u8fd9\u4e2a\u4ea7\u54c1\u662f\u6148\u60b2\u7684\u8fd8\u662f\u60e9\u7f5a\u6027\u7684\uff0c\u597d\u5728\u8bbe\u8ba1\u9009\u62e9\u4e86\u524d\u8005\uff0c\u8fd9\u4fdd\u7559\u4e86\u4ea7\u54c1\u7684\u6e29\u5ea6\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u4ef7\u503c\u4e0d\u5728\u201c\u6f5c\u610f\u8bc6\u201d\u7684\u5305\u88c5\uff0c\u800c\u5728\u4e8e\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u6781\u5176\u8f7b\u91cf\u7684\u3001\u53ef\u53cd\u590d\u56de\u5230\u81ea\u6211\u610f\u56fe\u7684\u8def\u5f84\u3002\u6bcf\u5929\u4e24\u5206\u949f\u7684\u4eea\u5f0f\uff0c\u672c\u8eab\u5c31\u662f\u4e00\u79cd\u5bf9\u6297\u4fe1\u606f\u8fc7\u8f7d\u7684\u5fae\u5c0f\u62b5\u6297\u3002\u4f46\u95ee\u9898\u4e5f\u5728\u4e8e\u6b64\uff1a\u5b83\u8fc7\u4e8e\u6e29\u548c\uff0c\u4ee5\u81f3\u4e8e\u5bf9\u6709\u91cd\u5ea6\u7126\u8651\u6216\u62d6\u5ef6\u7684\u7528\u6237\u53ef\u80fd\u7f3a\u4e4f\u8db3\u591f\u7684\u201c\u523a\u75db\u611f\u201d\u3002\u5b83\u9002\u5408\u4f5c\u4e3a\u51a5\u60f3\u521d\u5b66\u8005\u7684\u4e60\u60ef\u951a\u70b9\uff0c\u5374\u5f88\u96be\u6210\u4e3a\u6df1\u5c42\u5fc3\u7406\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5546\u4e1a\u5316\u4e0a\uff0c\u4e00\u6b21\u6027\u4e70\u65ad\u20ac29\u662f\u76f8\u5f53\u514b\u5236\u7684\u4e3e\u63aa\uff0c\u4f46\u80fd\u5426\u8dd1\u901a\u53d6\u51b3\u4e8e\u662f\u5426\u4f1a\u5f62\u6210\u53e3\u7891\u4f20\u64ad\u3002\u5b83\u7684\u5929\u82b1\u677f\u5728\u4e8e\uff1a\u5230\u5e95\u6709\u591a\u5c11\u4eba\u613f\u610f\u4e3a\u201c\u548c\u81ea\u5df1\u5b89\u9759\u5f85\u4e24\u5206\u949f\u201d\u4ed8\u8d39\uff1f\u8fd9\u4e0d\u4ec5\u662f\u4ea7\u54c1\u95ee\u9898\uff0c\u66f4\u662f\u65f6\u4ee3\u95ee\u9898\u2014\u2014\u5728\u6ce8\u610f\u529b\u7ecf\u6d4e\u91cc\uff0c\u53cd\u5411\u8d29\u5356\u4e13\u6ce8\u672c\u5c31\u662f\u9006\u6d41\u800c\u884c\u7684\u751f\u610f\u3002\u503c\u5f97\u5173\u6ce8\uff0c\u4f46\u522b\u795e\u5316\u3002\n            <\/p>\n<\/p><\/div>\n<div class=\"comments-section\">\n<div class=\"comments-toggle\">\n            <span>\u67e5\u770b\u539f\u59cb\u4fe1\u606f<\/span><br \/>\n            <span class=\"toggle-arrow\">\u25bc<\/span>\n        <\/div>\n<div class=\"comments-container\">\n<div class=\"comment-item\">\n<div class=\"comment-header\">\n                    <span class=\"comment-author\">The Garden of Mind<\/span>\n                <\/div>\n<div class=\"comment-content\">The Garden of Mind is a visualisation of your subconscious mind. Whatever you hold in your attention gets planted in you \u2014 so plant one thing on purpose. Write an intention and it becomes a seed in a living 3D garden. Water it two minutes a day: read it, breathe with it, picture it as already true. The plant grows across real calendar days, so what you see is what you kept choosing. Free to start, no account, nothing to install. Founders Pro is \u20ac29 once \u2014 nothing renews, ever.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi Product Hunt \ud83d\udc4b<\/p>\n<p>I&#8217;m Victor. I built this alone in Brussels, and it started with a book:<br \/>\nJoseph Murphy&#8217;s The Power of Your Subconscious Mind.<\/p>\n<p>The Garden of Mind is a visualisation of your subconscious.<\/p>\n<p>Here is the concrete version of that. Everything you hold in your attention<br \/>\nlong enough gets planted in you, whether you chose it or not: the feed you<br \/>\nscroll before sleep, the worry you rehearse in the shower, a sentence someone<br \/>\nsaid to you years ago. Your subconscious does not check whether any of it is<br \/>\ngood for you. It accepts what it is given, repeatedly, with feeling.<\/p>\n<p>So the app asks you to plant one thing on purpose.<\/p>\n<p>You write what you want to grow, an idea, a wish, the person you want to<br \/>\nbecome, and it becomes a seed. Once a day you water it: you read your own<br \/>\nsentence, breathe with it, and picture the moment it is already true, seen<br \/>\nthrough your own eyes. Two minutes.<\/p>\n<p>What you plant in your subconscious, you plant in the garden. It is the same<br \/>\nact. The 3D garden is that inner ground made visible, the plant grows across<br \/>\nreal calendar days, so what you are looking at is a picture of how many times<br \/>\nyou actually returned to your own intention. Nothing in there grew that you<br \/>\ndid not keep choosing.<\/p>\n<p>And that is where it stops being a metaphor. A thought visited once stays a<br \/>\nwish. Visited daily, with feeling, it becomes familiar, and familiar thoughts<br \/>\nchange what you notice, what you believe is available to you, and what you do<br \/>\nnext. Over weeks, that is how something you only wanted becomes something you<br \/>\nare living. Not because the garden grants it, but because you kept showing up<br \/>\nfor it until it became the thing you think from instead of the thing you think<br \/>\nabout.<\/p>\n<p>A few decisions I would defend:<\/p>\n<p>\u2022 Three intentions on the free plan. Not a paywall trick: attention is the<br \/>\n  scarce thing, and a garden with twenty seeds is a to-do list.<br \/>\n\u2022 Miss a day and nothing breaks. No streak shaming. The plant recovers when<br \/>\n  you come back, because that is how a practice actually behaves.<br \/>\n\u2022 Nothing renews, ever. Founders Pro is \u20ac29 once (first 200, then \u20ac49). There<br \/>\n  is no subscription hiding anywhere.<br \/>\n\u2022 No account to start, nothing to install. It runs in your browser and your<br \/>\n  garden stays exportable.<\/p>\n<p>I would genuinely like to know: does the daily ritual feel like something you<br \/>\nwould return to, or like one more thing to maintain? That is the part I am<br \/>\nleast sure about, and I will be here all day.<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>2<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@victor_tanaka\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@victor_tanaka<\/a>&nbsp;<\/p>\n<p>Answering your question honestly: the thing that deserves my attention today is the part of my work that doesn&#8217;t produce anything visible. I shipped a launch this morning, and the pull is to keep refreshing numbers rather than sit with the one problem I&#8217;m actually trying to solve.<\/p>\n<p>The line about your subconscious accepting whatever it&#8217;s given, repeatedly, with feeling, that&#8217;s the bit I&#8217;ll be thinking about. Building solo, most of what I repeat to myself daily isn&#8217;t chosen.<\/p>\n<p>One thing I&#8217;d want to know as a user: what happens if I miss a few days? Whether the plant dies or just waits says a lot about whether the app becomes another thing to feel guilty about.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@fasathor \ud83c\udf1f I always enjoy learning about growing businesses. What&#8217;s been your biggest win so far this year?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@victor_tanaka\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@victor_tanaka<\/a>&nbsp;the ritual is the honest part here regardless of what you believe about the subconscious claim &#8211; writing one sentence and sitting with it for two minutes a day is just a small, well-designed habit loop, dressed up as a garden instead of a streak counter. i&#8217;d be careful leaning on the murphy framing though, since &#8220;plant a thought and it manifests&#8221; invites the obvious pushback that this is affirmation practice with extra steps. do you track whether people who stick with it for a few weeks report anything changing, or is that explicitly not a claim you&#8217;re trying to make?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Before the world tells you what matters, what deserves your attention today?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>honestly the two minute watering thing feels kind of nice, like it actually forces you to slow down instead of just setting a reminder and ignoring it. my little sprout showed up after a couple days which was a small but real moment.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<\/div>\n<p><!-- \u56fe\u7247\u653e\u5927\u6a21\u6001\u6846 --><\/p>\n<div id=\"imageModal\" class=\"modal\">\n    <span class=\"close\">&times;<\/span><br \/>\n    <img class=\"modal-content\" id=\"modalImage\">\n<\/div>\n<p><script>\n    \/\/ \u83b7\u53d6\u6a21\u6001\u6846\u5143\u7d20\n    const modal = document.getElementById(\"imageModal\");\n    const modalImg = document.getElementById(\"modalImage\");\n    const closeBtn = document.getElementsByClassName(\"close\")[0];<\/p>\n<p>    \/\/ \u68c0\u6d4b\u662f\u5426\u4e3a\u79fb\u52a8\u8bbe\u5907\n    const isMobile = \/iPhone|iPad|iPod|Android\/i.test(navigator.userAgent);<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4f18\u5316\n    function addTouchOptimization() {\n        if (isMobile) {\n            \/\/ \u4e3a\u6240\u6709\u53ef\u70b9\u51fb\u5143\u7d20\u6dfb\u52a0\u89e6\u6478\u53cd\u9988\n            const clickableElements = document.querySelectorAll(\n                '.media-content, .close, .video-overlay, .play-icon'\n            );<\/p>\n<p>            clickableElements.forEach(el => {\n                el.style.touchAction = 'manipulation'; \/\/ \u9632\u6b62\u53cc\u51fb\u7f29\u653e\n            });\n        }\n    }<\/p>\n<p>    \/\/ \u4e3a\u6240\u6709\u56fe\u7247\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\n    const images = document.querySelectorAll(\"img.media-content\");\n    images.forEach(img => {\n        img.onclick = function() {\n            modal.style.display = \"block\";\n            modalImg.src = this.src;\n            \/\/ \u963b\u6b62\u80cc\u666f\u6eda\u52a8\n            document.body.style.overflow = \"hidden\";\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            img.addEventListener('touchstart', function(e) {\n                \/\/ \u9632\u6b62\u89e6\u6478\u4e8b\u4ef6\u89e6\u53d1\u4e0d\u5fc5\u8981\u7684\u884c\u4e3a\n                e.preventDefault();\n                this.click();\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u4e3a\u89c6\u9891\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6 - \u8df3\u8f6c\u5230\u89c6\u9891URL\n    const videos = document.querySelectorAll(\"video.media-content\");\n    videos.forEach(video => {\n        \/\/ \u70b9\u51fb\u89c6\u9891\u672c\u8eab\u65f6\u8df3\u8f6c\u5230\u89c6\u9891URL\n        video.onclick = function(e) {\n            \/\/ \u68c0\u67e5\u70b9\u51fb\u76ee\u6807\u662f\u5426\u662f\u89c6\u9891\u63a7\u4ef6\u6216\u5176\u5b50\u5143\u7d20\n            let isControlClick = false;\n            let target = e.target;<\/p>\n<p>            \/\/ \u5411\u4e0a\u904d\u5386DOM\uff0c\u68c0\u67e5\u662f\u5426\u70b9\u51fb\u4e86\u63a7\u4ef6\u5143\u7d20\n            while (target && target !== this) {\n                \/\/ \u68c0\u67e5\u662f\u5426\u6709\u63a7\u4ef6\u76f8\u5173\u7684\u7c7b\u540d\u6216\u5c5e\u6027\n                if (target.classList.contains('video-js') || \n                    target.tagName.toLowerCase() === 'button' || \n                    target.tagName.toLowerCase() === 'input' || \n                    target.tagName.toLowerCase() === 'select' ||\n                    target.className.includes('control')) {\n                    isControlClick = true;\n                    break;\n                }\n                target = target.parentElement;\n            }<\/p>\n<p>            \/\/ \u53ea\u6709\u5f53\u70b9\u51fb\u7684\u662f\u89c6\u9891\u672c\u8eab\u800c\u975e\u63a7\u4ef6\u65f6\u624d\u8df3\u8f6c\n            if (!isControlClick && e.target.tagName.toLowerCase() === 'video') {\n                const videoUrl = this.getAttribute('data-video-url') || this.querySelector('source').src;\n                window.open(videoUrl, '_blank');\n            }\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            video.addEventListener('touchstart', function(e) {\n                \/\/ \u68c0\u67e5\u662f\u5426\u70b9\u51fb\u4e86\u63a7\u4ef6\n                let isControlClick = false;\n                let target = e.target;<\/p>\n<p>                while (target && target !== this) {\n                    if (target.tagName.toLowerCase() === 'button' || \n                        target.tagName.toLowerCase() === 'input' || \n                        target.className.includes('control')) {\n                        isControlClick = true;\n                        break;\n                    }\n                    target = target.parentElement;\n                }<\/p>\n<p>                if (!isControlClick) {\n                    e.preventDefault();\n                    const videoUrl = this.getAttribute('data-video-url') || this.querySelector('source').src;\n                    window.open(videoUrl, '_blank');\n                }\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u4e3a\u89c6\u9891\u906e\u7f69\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\uff0c\u786e\u4fdd\u70b9\u51fb\u906e\u7f69\u4e5f\u80fd\u8df3\u8f6c\n    const videoOverlays = document.querySelectorAll('.video-overlay');\n    videoOverlays.forEach(overlay => {\n        overlay.onclick = function(e) {\n            \/\/ \u963b\u6b62\u4e8b\u4ef6\u5192\u6ce1\u5230\u89c6\u9891\u5143\u7d20\n            e.stopPropagation();\n            const video = this.parentElement.querySelector('video.media-content');\n            if (video) {\n                const videoUrl = video.getAttribute('data-video-url') || video.querySelector('source').src;\n                window.open(videoUrl, '_blank');\n            }\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            overlay.addEventListener('touchstart', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const video = this.parentElement.querySelector('video.media-content');\n                if (video) {\n                    const videoUrl = video.getAttribute('data-video-url') || video.querySelector('source').src;\n                    window.open(videoUrl, '_blank');\n                }\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u5173\u95ed\u6a21\u6001\u6846\n    closeBtn.onclick = function() {\n        modal.style.display = \"none\";\n        \/\/ \u6062\u590d\u80cc\u666f\u6eda\u52a8\n        document.body.style.overflow = \"auto\";\n    }<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n    if (isMobile) {\n        closeBtn.addEventListener('touchstart', function(e) {\n            e.preventDefault();\n            modal.style.display = \"none\";\n            document.body.style.overflow = \"auto\";\n        }, { passive: false });\n    }<\/p>\n<p>    \/\/ \u70b9\u51fb\u6a21\u6001\u6846\u5916\u90e8\u5173\u95ed\n    window.onclick = function(event) {\n        if (event.target === modal) {\n            modal.style.display = \"none\";\n            document.body.style.overflow = \"auto\";\n        }\n    }<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n    if (isMobile) {\n        modal.addEventListener('touchstart', function(e) {\n            if (e.target === modal) {\n                modal.style.display = \"none\";\n                document.body.style.overflow = \"auto\";\n            }\n        }, { passive: true });\n    }<\/p>\n<p>    \/\/ \u6309ESC\u952e\u5173\u95ed\u6a21\u6001\u6846\n    document.addEventListener('keydown', function(event) {\n        if (event.key === 'Escape' && modal.style.display === 'block') {\n            modal.style.display = 'none';\n            document.body.style.overflow = \"auto\";\n        }\n    });<\/p>\n<p>    \/\/ \u68c0\u67e5\u6bcf\u4e2a\u5a92\u4f53\u753b\u5eca\u4e2d\u662f\u5426\u53ea\u6709\u4e00\u4e2a\u9879\u76ee\uff0c\u5982\u679c\u662f\uff0c\u6dfb\u52a0single-item\u7c7b\n    document.querySelectorAll('.media-gallery').forEach(gallery => {\n        if (gallery.querySelectorAll('.media-item-wrapper').length === 1) {\n            gallery.classList.add('single-item');\n        }\n    });<\/p>\n<p>    \/\/ \u521d\u59cb\u5316\u89e6\u6478\u4f18\u5316\n    addTouchOptimization();<\/p>\n<p>    \/\/ \u7a97\u53e3\u5927\u5c0f\u53d8\u5316\u65f6\u91cd\u65b0\u68c0\u67e5\u753b\u5eca\u72b6\u6001\n    window.addEventListener('resize', function() {\n        document.querySelectorAll('.media-gallery').forEach(gallery => {\n            if (gallery.querySelectorAll('.media-item-wrapper').length === 1) {\n                gallery.classList.add('single-item');\n            } else {\n                gallery.classList.remove('single-item');\n            }\n        });\n    });<\/p>\n<p>    \/\/ --- \u8bc4\u8bba\u533a\u57df\u6298\u53e0\/\u5c55\u5f00\u529f\u80fd ---\n    const commentToggles = document.querySelectorAll('.comments-toggle');<\/p>\n<p>    commentToggles.forEach(toggle => {\n        toggle.addEventListener('click', function() {\n            \/\/ \u5207\u6362\u5f53\u524dtoggle\u7684open\u72b6\u6001\n            this.classList.toggle('open');<\/p>\n<p>            \/\/ \u83b7\u53d6\u5bf9\u5e94\u7684\u8bc4\u8bba\u5bb9\u5668\n            const commentsContainer = this.nextElementSibling;\n            if (commentsContainer && commentsContainer.classList.contains('comments-container')) {\n                commentsContainer.classList.toggle('open');\n            }\n        });\n    });\n<\/script><\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Product Hunt \u6bcf\u65e5\u70ed\u699c 2026-08-03 PH\u70ed\u699c | 2026-08-03 #1 Agent [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"template-clean-canvas.php","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-302","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/comments?post=302"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/302\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}