{"id":295,"date":"2026-07-28T11:39:39","date_gmt":"2026-07-28T03:39:39","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/07\/28\/2026-07-27\/"},"modified":"2026-07-28T11:39:39","modified_gmt":"2026-07-28T03:39:39","slug":"2026-07-27","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/07\/28\/2026-07-27\/","title":{"rendered":"PH\u70ed\u699c | 2026-07-27"},"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-07-27<\/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-07-27<\/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\/EPLPB5QB6JEVTX\" class=\"app-title\">Adomate<\/a><\/p>\n<div class=\"one-liner\">Turn data into winning ads. At scale.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">489<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Adomate\u662f\u4e00\u6b3e\u5c06Meta\u5e7f\u544a\u8d26\u6237\u6570\u636e\u3001\u7ade\u54c1\u5e7f\u544a\u5e93\u53caTrustpilot\/Amazon\u7528\u6237\u8bc4\u8bba\u6574\u5408\u4e3a\u53ef\u6eaf\u6e90\u5e7f\u544a\u521b\u610f\u7684AI\u5de5\u5177\uff0c\u89e3\u51b3\u521b\u610f\u7b56\u7565\u5e08\u6bcf\u5468\u8017\u8d3960-70%\u65f6\u95f4\u505a\u8c03\u7814\u3001\u4ece\u96f6\u68b3\u7406\u7b80\u62a5\u7684\u75db\u70b9\uff0c\u5b9e\u73b0\u89c4\u6a21\u5316\u3001\u6570\u636e\u9a71\u52a8\u7684\u5e7f\u544a\u7d20\u6750\u751f\u4ea7\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\/cb2c9bab-22c9-40c4-83c4-3bedf88219f1.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\/92c85e71-f4e1-4a58-8531-438f1ab4010f.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\/315350c2-bd58-4323-92b4-bb99c4f76e3f.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\/878fdd1b-6bc1-422f-99ee-28ad7d7fc095.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\/ef7d9684-d61e-4cca-b87d-e13a25ead01d.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\/206da43e-930d-473d-8acc-0441bfee61e5.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=XwQdzLV3_x8\"><source src=\"https:\/\/www.youtube.com\/watch?v=XwQdzLV3_x8\" 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\">Design Tools<\/span><br \/>\n            <span class=\"tag\">Marketing<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5e7f\u544a\u521b\u610f\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u9a71\u52a8\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">Meta\u5e7f\u544a\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u7ade\u54c1\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u7528\u6237\u8bc4\u8bba\u6316\u6398<\/span><br \/>\n            <span class=\"tag\">\u7535\u5546\u8425\u9500\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">AI\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">\u521b\u610f\u6eaf\u6e90<\/span><br \/>\n            <span class=\"tag\">DTC\u54c1\u724c\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4ed8\u8d39\u793e\u4ea4\u5e7f\u544a<\/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\u6570\u636e\u6eaf\u6e90\uff08\u201c\u65e0\u9ed1\u7bb1\u201d\uff09\u548c\u6574\u5408\u5185\u5916\u90e8\u6570\u636e\u6e90\u7684\u601d\u8def\u3002\u95ee\u9898\u96c6\u4e2d\u4e8e\uff1a\u5c0f\u578b\u54c1\u724c\u6570\u636e\u91cf\u4e0d\u8db3\u65f6\u6548\u679c\u5982\u4f55\uff08\u56de\u590d\u5efa\u8bae\u501f\u529b\u7ade\u54c1\u8bc4\u8bba\uff09\uff1b\u80fd\u5426\u9002\u914dB2B\u53caLinkedIn\u3001G2\u7b49\u5e73\u53f0\uff08\u5728\u8def\u7ebf\u56fe\u4e2d\uff09\uff1b\u7cfb\u7edf\u5982\u4f55\u533a\u5206\u5e7f\u544a\u83b7\u80dc\u539f\u56e0\uff08\u65f6\u5e8f\u3001\u5e02\u573a\u7b49\uff09\uff08\u56de\u590d\u5f3a\u8c03\u4eba\u5de5\u5224\u65ad\u800c\u975eAI\u5f52\u56e0\uff09\uff1b\u54c1\u724c\u98ce\u683c\u5b66\u4e60\u901f\u5ea6\uff08\u4f9d\u8d56\u4ea4\u4e92\u53cd\u9988\u4e0e\u4eba\u5de5\u7f16\u8f91\uff09\uff1b\u4ee5\u53ca\u672a\u6765\u662f\u5426\u652f\u6301\u66f4\u591a\u5e7f\u544a\u5e73\u53f0\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                Adomate\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u6ca1\u6709\u52a0\u5165\u201cAI\u751f\u6210\u5e7f\u544a\u201d\u7684\u519b\u5907\u7ade\u8d5b\uff0c\u800c\u662f\u5de7\u5999\u5730\u5c06\u6218\u573a\u8f6c\u79fb\u5230\u4e86\u201c\u521b\u610f\u6eaf\u6e90\u201d\u8fd9\u4e2a\u66f4\u575a\u5b9e\u7684\u9635\u5730\u4e0a\u3002\u5728Meta\u5168\u9762\u81ea\u52a8\u5316\u51fa\u4ef7\u548c\u5b9a\u5411\u540e\uff0c\u521b\u610f\u786e\u5b9e\u662f\u54c1\u724c\u6700\u540e\u53ef\u63a7\u7684\u6760\u6746\uff0c\u4f46\u5e02\u9762\u4e0a\u5df2\u6709\u592a\u591a\u201c\u9ed1\u7bb1\u201d\u751f\u6210\u5de5\u5177\uff0c\u8f93\u51fa\u6f02\u4eae\u4f46\u65e0\u6cd5\u89e3\u91ca\u3001\u65e0\u6cd5\u8fed\u4ee3\uff0c\u6700\u7ec8\u7684\u4fe1\u4efb\u6210\u672c\u6781\u9ad8\u3002\n            <\/p>\n<p class=\"ai-content\">\n                Adomate\u7684\u201c\u65e0\u9ed1\u7bb1\u201d\u7b56\u7565\uff0c\u672c\u8d28\u4e0a\u662f\u628a\u4eba\u5de5\u667a\u80fd\u4ece\u201c\u51b3\u7b56\u8005\u201d\u964d\u7ea7\u4e3a\u201c\u52a9\u7406\u201d\uff1a\u5b83\u4e0d\u66ff\u4f60\u5224\u65ad\u54ea\u4e2a\u521b\u610f\u4f1a\u8d62\uff0c\u800c\u662f\u544a\u8bc9\u4f60\u662f\u8c01\u5bb6\u7684\u54ea\u6761\u8bc4\u8bba\u3001\u54ea\u4e2a\u7ade\u54c1\u6307\u6807\u89e6\u53d1\u4e86\u8fd9\u4e2a\u60f3\u6cd5\u3002\u8fd9\u542c\u8d77\u6765\u7b80\u5355\uff0c\u5374\u51fb\u4e2d\u4e86\u7b56\u7565\u5e08\u6700\u6838\u5fc3\u7684\u4fe1\u4efb\u7126\u8651\u2014\u2014\u4ed6\u4eec\u53ef\u4ee5\u5426\u51b3AI\uff0c\u4f46\u5fc5\u987b\u57fa\u4e8e\u8bc1\u636e\uff0c\u800c\u975e\u731c\u7591\u3002\u5c06\u4fe1\u4efb\u6210\u672c\u8f6c\u5316\u4e3a\u53ef\u64cd\u4f5c\u7684\u6eaf\u6e90\u754c\u9762\uff0c\u8fd9\u662f\u5b83\u533a\u522b\u4e8e\u201cAI\u751f\u6210\u5668\u201d\u7684\u6839\u672c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u76ee\u524d\u5b58\u5728\u660e\u663e\u7684\u201c\u751c\u871c\u70b9\u201d\u5c40\u9650\uff1a\u5b83\u91cd\u5ea6\u4f9d\u8d56Meta\u751f\u6001\u548c\u4e9a\u9a6c\u900a\/Trustpilot\u7684B2C\u8bc4\u8bba\u6570\u636e\uff0c\u5bf9\u6570\u636e\u91cf\u5c0f\u7684\u521d\u521b\u54c1\u724c\u6216B2B\u573a\u666f\uff08\u5982LinkedIn+G2\uff09\u51e0\u4e4e\u65e0\u6cd5\u63d0\u4f9b\u6709\u6548\u4ef7\u503c\u3002\u56de\u590d\u4e2d\u627f\u8bfa\u201c\u8def\u7ebf\u56fe\u5185\u201d\u56fa\u7136\u5408\u7406\uff0c\u4f46\u4e5f\u66b4\u9732\u51fa\u5176\u521d\u671f\u5e02\u5360\u7387\u62d3\u5c55\u5c06\u4e25\u91cd\u4f9d\u8d56DTC\u5927\u5e7f\u544a\u4e3b\u3002\u6b64\u5916\uff0c\u8bc4\u8bba\u4e2d\u591a\u6b21\u63d0\u5230\u7684\u201c\u5982\u4f55\u533a\u5206\u5e7f\u544a\u6210\u529f\u7684\u771f\u5b9e\u539f\u56e0\uff08\u65f6\u5e8f\u3001\u5e02\u573a\u3001\u4fc3\u9500\uff09\u201d\uff0cAdomate\u7684\u56de\u5e94\u662f\u201c\u4ea4\u7ed9\u7528\u6237\u5224\u65ad\u201d\u3002\u8fd9\u65e2\u662f\u52a1\u5b9e\u4e4b\u4e3e\uff08\u907f\u514dAI\u5f52\u56e0\u8c2c\u8bef\uff09\uff0c\u4e5f\u662f\u80fd\u529b\u8fb9\u754c\u2014\u2014\u5b83\u80fd\u63d0\u4f9b\u7d20\u6750\uff0c\u4f46\u65e0\u6cd5\u63d0\u4f9b\u201c\u6218\u7565\u5224\u65ad\u201d\u7684\u81ea\u52a8\u5316\u3002\u5bf9\u4ee3\u7406\u5546\u6216\u7b56\u7565\u56e2\u961f\u800c\u8a00\uff0c\u5b83\u66f4\u50cf\u662f\u4e00\u4e2a\u9ad8\u6548\u7684\u201c\u521b\u610f\u7ebf\u7d22\u6316\u6398\u673a\u201d\uff0c\u800c\u975e\u201c\u521b\u610f\u51b3\u7b56\u5f15\u64ce\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cAdomate\u7528\u201c\u6570\u636e\u6eaf\u6e90\u201d\u7684\u5de7\u601d\uff0c\u5728\u62e5\u6324\u7684AI\u5e7f\u544a\u8d5b\u9053\u4e2d\u627e\u5230\u4e86\u4e00\u4e2a\u9ad8\u4ef7\u503c\u7684\u7ec6\u5206\u5207\u53e3\uff0c\u4ea7\u54c1\u5b9a\u4f4d\u7cbe\u51c6\u4e14\u514b\u5236\u3002\u4f46\u5b83\u7684\u5929\u82b1\u677f\u53d6\u51b3\u4e8e\u80fd\u5426\u5feb\u901f\u5ef6\u5c55\u6570\u636e\u6e90\u3001\u9002\u914d\u591a\u5e73\u53f0\uff0c\u4ee5\u53ca\u662f\u5426\u80fd\u5728\u201c\u63d0\u4f9b\u7ebf\u7d22\u201d\u548c\u201c\u8f85\u52a9\u5f52\u56e0\u201d\u4e4b\u95f4\u627e\u5230\u66f4\u624e\u5b9e\u7684AI\u80fd\u529b\u652f\u70b9\uff0c\u4ece\u800c\u771f\u6b63\u4ece\u201c\u5de5\u5177\u201d\u8fdb\u5316\u4e3a\u201c\u7b56\u7565\u57fa\u7840\u8bbe\u65bd\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\">Adomate<\/span>\n                <\/div>\n<div class=\"comment-content\">With Adomate you create ads from data, at scale. Take data from your Meta ad account, the ad library and reviews from Trustpilot and Amazon. Build creative research workflows that create branded ad concepts, the way you want. Fully traceable to their original data trigger, no blackbox.<\/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>Simon here, co-founder and CEO of <a href=\"https:\/\/www.adomate.com\/?ref=producthunt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Adomate<\/a>.<\/p>\n<\/p>\n<p>Before Adomate was a self-serve platform, Lucas and I ran it as a service, building and delivering Meta ad creatives by hand for DTC brands across Belgium and the Netherlands.<\/p>\n<\/p>\n<p>We wanted to feel the problem first:<\/p>\n<ul>\n<li>\n<p>Strategists losing 60-70% of their week to research instead of making<\/p>\n<\/li>\n<li>\n<p>Rebuilding context from zero every Monday<\/p>\n<\/li>\n<li>\n<p>No system connecting last week&#8217;s winner to what gets briefed next<\/p>\n<\/li>\n<\/ul>\n<p>Creative is the last lever you actually control on Meta now that targeting and bidding are automated, and most teams still run it like it&#8217;s 2019.<\/p>\n<\/p>\n<p><strong>The solution<\/strong><\/p>\n<p>We built Adomate. It puts your performance data, competitor intel, and consumer signals into one workflow you build and own. A few things it&#8217;s already done for early teams:<\/p>\n<\/p>\n<p>\u2192 Increased number of winners and ROAS<\/p>\n<p>\u2192 Volume: helped Nomige to meet creative demand and deliver the number or creatives required for testing<\/p>\n<p>\u2192 Golden nuggets: automatically found usable insights in thousands of customer reviews<\/p>\n<\/p>\n<p><strong>How it works<\/strong><\/p>\n<p>1. Feed in your performance data, brand brain, competitor ads, reviews, and consumer signals. One place, not ten tabs, so research time drops to minutes.<\/p>\n<\/p>\n<p>2. Build the workflow once. Every data point after that becomes an ad concept, so you stop starting from scratch every session.<\/p>\n<\/p>\n<p>3. Like the concept, skip it, or refine it in plain language. Point out a reference if you&#8217;ve got one. Every choice trains Adomate and saves a version, so getting from 80% to 100% takes minutes, not a new brief.<\/p>\n<\/p>\n<p><strong>Why it&#8217;s different<\/strong><\/p>\n<p>No black box. Every concept you see traces back to the exact data point that triggered it, the competitor ad, the review line, the performance metric. You can always see why.<\/p>\n<\/p>\n<p>Adomate doesn&#8217;t replace your judgment, it amplifies it.<\/p>\n<\/p>\n<p><strong>Who it&#8217;s for<\/strong><\/p>\n<p>Creative strategists and performance marketers at DTC and e-commerce brands running Meta ads, plus agencies managing creative across multiple accounts.<\/p>\n<\/p>\n<p>If briefing your designer feels slower than it should, this is for you.<\/p>\n<\/p>\n<p><strong>Special for the PH community<\/strong><\/p>\n<p>\u2192 30% off your first 3 months: PHMONTHLY30. 300 codes.<\/p>\n<p>\u2192 50% off your first year: PHANNUAL50. 100 codes.<\/p>\n<\/p>\n<p>Apply the code at checkout. Valid until Friday 11:59pm PT, or until the codes run out.<\/p>\n<\/p>\n<p><strong>Our ask<\/strong><\/p>\n<p>If you&#8217;re running paid social, tell us what&#8217;s broken in your workflow right now. That&#8217;s the input that shapes what we build next.<\/p>\n<\/p>\n<p>\ud83d\udc49 Get started for free to see what you can do with <a href=\"https:\/\/www.adomate.com\/?ref=producthunt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Adomate<\/a>.<\/p>\n<\/p>\n<p><a href=\"https:\/\/www.producthunt.com\/@lucas_desard\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"lucas_desard\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lucas_desard<\/a> and I will be here all day. \ud83d\udc47 Big thanks to <a href=\"https:\/\/www.producthunt.com\/@rohanrecommends\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a> for hunting us \ud83d\ude4f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>26<\/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\/@lucas_desard\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lucas_desard<\/a>&nbsp;<a href=\"https:\/\/www.producthunt.com\/@s_logghe\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@s_logghe<\/a>&nbsp;Good luck with 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<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@lucas_desard\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lucas_desard<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@rohanrecommends\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rohanrecommends<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@s_logghe\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@s_logghe<\/a>&nbsp;Really like that Adomate creates ad concepts from real performance data instead of relying on guesswork. The fully traceable workflow and transparent link back to the original data make it a compelling tool for marketers looking to scale creative production. Good luck with the 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<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@lucas_desard\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lucas_desard<\/a> <a href=\"https:\/\/www.producthunt.com\/@s_logghe\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@s_logghe<\/a>&nbsp;Trying to answer your q. i think the biggest nightmare for us is turning winning static ads into video briefs. Huge congrats\ud83d\ude4c on the launch supported.<\/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>Congrats on launching! We spend way too long digging through customer reviews to find angles for ads, so pulling Trustpilot and Amazon feedback into the same workspace as ad performance sounds really handy. How does it work for smaller brands that only have a handful of reviews and a modest ad account to learn from?<\/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\/@doganakbulut\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@doganakbulut<\/a>&nbsp;Hi Dogan, every brand needs to start somewhere! That&#8217;s why we allow users to draw on proven ads from more established brands. On top of that, competitor reviews can also serve as a data source, think of it as leveraging the frustrations customers express about your competitors and positioning yourself as the better alternative.<\/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>The traceability is the strongest part here. AI can generate endless ad ideas, but without knowing whether a concept came from a winning campaign, a competitor pattern, or an actual customer review, it is hard to trust or learn from the output. As someone doing more launch and marketing work, I can relate to rebuilding context across too many tabs and starting the creative process from zero every time. Curious how quickly Adomate learns a team&#8217;s taste from likes, skips, and refinements before the concepts start feeling genuinely tailored \ud83d\ude42<\/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\/@andrasczeizel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrasczeizel<\/a>&nbsp;Hi Andras, thank you for your comment. As always with data, the more the better :). So the more feedback Adomate can capture, the faster it goes. Users can also directly edit brand and taste settings themselves at the source.<\/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>Congrats on the launch!<\/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\/@mcarmonas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mcarmonas<\/a>&nbsp;Thank 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>Interesting Product, congratulations on the launch.<\/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\/@dhanrajchoudhary\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dhanrajchoudhary<\/a>&nbsp;Thank you!<\/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\">Congrats team! I like the idea of turning real performance data into creative ideas instead of relying on generic AI prompts. How quickly does it learn what actually matches a brand\u2019s style?<\/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\/@hamza_afzal_butt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hamza_afzal_butt<\/a>&nbsp;Every interaction with newly created content is captured on the backend, so the system can learn from the feedback users provide, think of it like swiping left or right on Tinder. Users can also access the brand brain directly, which contains all the visual style elements of the brand.<\/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 focus on solving the biggest bottleneck in Meta ads\u2014creative research. The traceable workflow and data-first approach really stand out. Congrats on the launch, Simon! Wishing the team a strong Product Hunt day \ud83d\ude80<\/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\/@suryansh_tiwari2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@suryansh_tiwari2<\/a>&nbsp;Thank you, creative strategy is the often overlooked part that we want to put front and center here. Image creation only follows after that. Thank you for the support!<\/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 #1 launch \ud83c\udf89 The part that stands out to me isn&#8217;t &#8220;AI generates ads&#8221; \u2014 it&#8217;s the &#8220;fully traceable to the original data trigger, no blackbox&#8221; framing. Most gen-creative tools hand you an output with zero lineage, so you can&#8217;t tell why a concept was made or how to steer the next one. Curious how granular that trace actually is: when a concept links back to a data trigger, does it point to the exact source item \u2014 this Trustpilot review, this ad-library creative \u2014 and can I act on it, e.g. &#8220;this hook came from these 3 reviews, regenerate weighting them differently&#8221;? Basically: is the traceability a provenance view, or an actual control surface you steer generation with? Really nice work either way \ud83d\ude4f<\/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\/@akbar_b\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@akbar_b<\/a>&nbsp;Hi Akbar, great question. At the moment, generation starts from a single data point, in your case, a single review. The system identifies the one review that best matches your self-defined criteria and builds from there. Steering from higher-level, aggregated insights is on our roadmap, but for now we work with one data entry at a time.<\/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\">Congrats Simon and Lucas! I run marketing at a B2B company, so here\u2019s the question from outside your DTC lane: is the engine fundamentally built around Meta\u2019s feedback volume, or could this work for B2B where the ad account is LinkedIn and the reviews live on G2 instead of Trustpilot and Amazon? Our review mining problem is identical, buyers say the golden lines in G2 reviews, but every tool in this category treats B2B as an afterthought. Would love to know if it\u2019s on the roadmap or out of scope by design.<\/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\/@ridhwikvinod\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ridhwikvinod<\/a>&nbsp;Hi Ridhwik, thanks for your question. Other platforms and data sources are definitely on our roadmap. DTC was our obvious first target, but we can and will replicate our methods to B2B as well.<\/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. The service-first route makes sense here. You usually learn much more by doing the work manually before trying to automate it. I&#8217;d like to understand is how Adomate decides what should influence the next brief. Performance data can tell you what won, but not always why it won. Can the team challenge the system\u2019s reasoning or add context when a creative worked because of timing, an offer, or something happening in the market? That seems important if the goal is to avoid turning last week\u2019s winner into next week\u2019s template.<\/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\/@os_ishmael\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@os_ishmael<\/a>&nbsp;Hi Os, great question. As a data-first company, we&#8217;re extremely careful about attributing the success of an ad to a specific cause. It would be easy to just ask an LLM and get a convincing-sounding answer, but in reality, you&#8217;d be attempting to reverse-engineer one of the most sophisticated commercial algorithms in the world. We&#8217;d rather show users the facts and all available data, and let them apply their own experience and market knowledge to draw the right conclusions. Adomate is built to extend the marketer, not replace them.<\/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>Seen a lot of ad generation tools, but nothing works on data. Adomate seems to be the first. Congrats!!<\/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\/@himani_sah1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himani_sah1<\/a>&nbsp;Thanks, Himani! We come from a data background first. Adomate is really the product we wished we had while running our own ad agency: a tool that learns from what\u2019s actually working instead of generating content at random.<\/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>Love the product and the team. From my previous launch, I met with Ozan (he is in Adomate team) and he showed me the demo of the Adomate. The most interesting part they are generate creatives by learning from your competitors. I&#8217;m planning to use it for my e-commerce business. Hopefully, in near future I can use for my apps too \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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@metehan_caliskan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@metehan_caliskan<\/a>&nbsp;Thank you for your input. Initial focus is on DTC and Saas, but apps are definitely a field we further want to explore!<\/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 traceability is amazing , knowing which data point triggered which concept makes it easier to kill bad directions without guessing<\/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\/@mohammed_messeguem\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mohammed_messeguem<\/a>&nbsp;Thank you! That&#8217;s exactly the workflow Adomate is built for. You stop debating opinions and start debating evidence.<\/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>Will it work with other platforms in the future? \ud83d\ude42<\/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;Hi Nika, currently we only connect with Meta. More platforms are on the roadmap: Linkedin, TikTok, Google, etc<\/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>Pulling from Meta ad data, the ad library, <em>and<\/em> Trustpilot\/Amazon reviews as raw material is a sharp approach, most ad generators start from a blank prompt, but the best-performing creative usually starts from what&#8217;s already resonating. The full traceability back to the original data trigger is the part that earns trust; &#8220;no blackbox&#8221; matters a lot when you&#8217;re trying to explain to a client why a concept exists. Curious how much control you get over brand guardrails so the output stays on-brand at scale. 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><a href=\"https:\/\/www.producthunt.com\/@kelly_king3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kelly_king3<\/a>&nbsp;Hi Kelly, to deliver on-brand output, we rely on best-in-class AI generation to get the design 80\u201390% of the way there, with the final touches handled through human edits.<\/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\">Congrats on the launch! How did you optimized the token uses?<\/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\/@arokamal_sethy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@arokamal_sethy<\/a>&nbsp;Thanks! Besides input token caching, we haven\u2019t done much optimization yet. At this stage, we\u2019re prioritizing output quality above everything else. We\u2019ll focus more on token efficiency and cost optimization as we scale, but it&#8217;s not a priority 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>the traceability and spend-data answers above cover picking winners, but what about the fatigue side &#8211; if the engine keeps spinning variants off the same proven winner, how do you stop Meta from showing near-identical creative to the same audience over and over. is pushing for stylistic variance built in, or is that still on the strategist to catch before it burns out an audience<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;A user will typically set up multiple workflows, some creating variants from their winners, others drawing on proven ads from other brands, or pulling in customer reviews. This variety of data sources alone already provides a meaningful level of creative diversity to combat ad fatigue. On top of that, we offer more than 25 built-in templates that are all visually distinct, making it easy for strategists to diversify their output. Strategists can also build their own templates directly in the 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the traceability pitch is what sold me too, but I&#8217;m curious about the agency case specifically. if I&#8217;m running Adomate across multiple client accounts, is the review\/competitor data and brand brain fully siloed per workspace, or is there any shared learning happening under the hood that could let one client&#8217;s insights bleed into another client&#8217;s concepts<\/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;Yes, 100%. None of this information is shared across brands. What agencies can replicate is the workflow itself, the process of researching data and turning those insights into new creative concepts.<\/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 looks useful. How do you check the ads before they go live and make sure they do not include anything misleading?<\/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\/@liana_preston\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@liana_preston<\/a>&nbsp;Hi Liana, all ads are reviewed and selected within the platform, nothing goes live without explicit human approval. We operate with a human-in-the-loop approach. The platform also allows users to edit designs directly if anything is off or needs correcting.<\/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 traceability angle is what caught my eye here. Most ad tools spit out concepts with zero explanation, so seeing exactly which review line or competitor ad triggered a suggestion is the part creative teams will actually care about. Does the attribution work in reverse too, meaning can I start from one specific Trustpilot review and ask it to generate concepts from just that?<\/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\/@adamkamaneh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adamkamaneh<\/a>&nbsp;Yes, that\u2019s possible. Every data point (review, competitor ad, etc.) can be used as a starting point for generating concepts from just that. We wanted marketers to stay in control, not hand everything over to a black box.<\/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\">Very cool, is it only accessible via meta?<\/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\/@thomas_digaetano\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thomas_digaetano<\/a>&nbsp;Hi Thomas, currently yes. More platforms are on the roadmap: Linkedin, TikTok, Google, etc<\/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>Not gonna lie, it looks really good.  <\/p>\n<p>Maybe the only thing I&#8217;d like to see is to get an analysis and then prepare an ad myself.  <\/p>\n<p>Is it possible?<\/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\/@kamil_infeld\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kamil_infeld<\/a>&nbsp;I\u2019m not sure I fully understand your question.<br \/>If you mean whether you can first analyze the data and then create the ads yourself, then yes, that\u2019s very much how Adomate works. You can collect and analyze data at scale, generate ad concepts and ideas in bulk based on those insights, and then refine the ones you like until they\u2019re just right. Once you\u2019re happy, you can launch them directly into Meta with the appropriate copy and creatives.<br \/>If I misunderstood, feel free to clarify.<\/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><a href=\"https:\/\/www.producthunt.com\/@s_logghe\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"s_logghe\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@s_logghe<\/a> You mention agencies managing creative across multiple accounts as one of your target users. For those teams, is there hard isolation between client brand brains, so one client&#8217;s reviews, competitor set, and performance data can never surface in another client&#8217;s generated concepts?<\/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\/@clement_avq\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clement_avq<\/a>&nbsp;Yes, 100%. None of this information is shared across brands. What agencies can replicate is the workflow itself, the process of researching data and turning those insights into new creative concepts.<\/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><a href=\"https:\/\/www.producthunt.com\/@s_logghe\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"s_logghe\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@s_logghe<\/a> Congratulations. And happy product 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><a href=\"https:\/\/www.producthunt.com\/@huisong_li\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@huisong_li<\/a>&nbsp;thank 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 run paid social on the buying side and support on the receiving side, so the thing that is broken for me sits downstream of yours.<\/p>\n<\/p>\n<p>Golden Nuggets is the feature I would watch. The review lines that make the best ads are almost always about an experience rather than a product. Arrived in two days. They replaced it, no questions asked. That is exactly why they sound authentic, and it is also the moment the ad stops describing the product and starts making an operational promise.<\/p>\n<\/p>\n<p>The trace tells you where the claim came from. It does not tell you whether you can still keep it. That review was true for one customer, in one country, under last year&#8217;s courier contract. Run it as an ad and you have made that promise to everyone who sees it.<\/p>\n<\/p>\n<p>And it does not fail where you are looking. ROAS goes up, because it is a good promise. It shows up two weeks later in the inbox as &#8220;your ad said two days&#8221;, and nobody connects that ticket back to the creative that caused it.<\/p>\n<\/p>\n<p>What I would want, and you are closer to it than anyone because you already hold the trigger: flag which concepts make a claim about time, price, returns or availability, as against a claim about how the thing looks or feels. The first kind needs one person to confirm it is still true before it runs. The second does not. Everything you need to tell them apart is already sitting in the data point you traced back to.<\/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\/@jernej_jan_kocica\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jernej_jan_kocica<\/a>&nbsp;Hi Jernej, your feedback is very true. Within the Review dataset in Adomate, you can slice and dice the data the way you want. Based on the use case you described, you could simply add a column that classifies every review in one of the categories you describe (time, price, returns, availability, product, etc). This way you can ignore the reviews that don&#8217;t make 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Ads game is changing and Adomate came to evolve it even more. Creatives are easier and more effective than ever!<\/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\/@german_merlo1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@german_merlo1<\/a>&nbsp;Exactly!<\/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>Most AI ad tools generate ads. This feels more like a creative strategy engine. Good stuff. <\/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\/@krutiparekh16\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@krutiparekh16<\/a>&nbsp;Appreciate it! That distinction means a lot, our goal has always been to help marketers go from data and market signals to creative strategy, with generation being just one part of the workflow.<\/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 much historical Meta data does Adomate need before the recommendations become genuinely 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@iamanantgupta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@iamanantgupta<\/a>&nbsp;Great question, Meta is actually just 1 of our 3 data sources. You can get started immediately using competitor and market data to build your first campaigns. Once your first Meta results start coming in, you run the Meta workflow to identify your best-performing ads and iterate on those. With a decent budget behind a campaign, you can often already identify the winners within 24\u201348 hours, so the feedback loop becomes very fast.<\/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>Simon, you asked what is broken, so here is mine. I run paid acquisition in healthcare, and the thing that breaks is upstream of creative.<\/p>\n<\/p>\n<p>The loop learns from whatever the ad account calls a winner, and in my market that label is wrong. The conversion I can actually fire is a trial signup, and trials and paying customers are not the same population, so my real cost per paying customer came out roughly double what the platform reported. A creative engine trained on that will confidently scale the concept that produces the cheapest signups, which is not the one that produces revenue.<\/p>\n<\/p>\n<p>Can Adomate learn from an outcome uploaded back later, a paid conversion at day 30 for instance, or does winner mean whatever Meta says it means?<\/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\/@clemente_lopez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clemente_lopez1<\/a>&nbsp;Great question, Clemente. This is actually something Meta already supports. You can send your downstream business events (e.g. a paid subscription 30 days later) back through the Conversions API, so Meta can optimize for the outcome that actually matters, not just the trial signup.<\/p>\n<p>If you have enough paid conversion volume, I\u2019d recommend optimizing directly for that event.<br \/>If volume is  limited, it can make sense to optimize for an earlier, high-quality event, ideally the best early signal for a conversion later (e.g. high product usage in the first few days after sign up) until Meta has enough signal.<\/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 thinkin this could help brands scale creative production without losing consistency. What reporting features help users understand which research sources influence successful ads the most?<\/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\/@darly_selby\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@darly_selby<\/a>Hi Darly, typically a mix of sources performs best. Iterating on your proven winners is a solid strategy, but it doesn&#8217;t bring much fresh thinking into your creative process. Consumer reviews and proven ads from other brands help increase creative diversity. And drawing inspiration from winning concepts in other industries has proven to be both highly effective and genuinely refreshing. We pull performance stats directly from the Meta ad Manager.<\/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\/OT2MF465VDKFTA\" class=\"app-title\">Artifacts by Databox<\/a><\/p>\n<div class=\"one-liner\">Ask your AI Analyst and get back a ready-to-share report<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">372<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Artifacts by Databox \u5c06\u7528\u6237\u4e0eAI\u5206\u6790\u5e08\u7684\u5bf9\u8bdd\uff0c\u4e00\u952e\u751f\u6210\u4e3a\u57fa\u4e8e\u5b9e\u65f6\u6570\u636e\u7684\u3001\u53ef\u76f4\u63a5\u5206\u4eab\u7684\u7cbe\u7f8e\u62a5\u544a\u3001\u5e7b\u706f\u7247\u6216\u4ea4\u4e92\u6587\u6863\uff0c\u89e3\u51b3\u4e86\u4ece\u6570\u636e\u6d1e\u5bdf\u5230\u53ef\u4ea4\u4ed8\u6210\u679c\u4e4b\u95f4\u7e41\u7410\u7684\u624b\u5de5\u5236\u4f5c\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\/190bc0a4-a6f8-4658-b9cd-8b1323bd66ee.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\/018e0dc7-96a7-4c6e-aa6a-fcf2f914ca75.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\/e44bceae-2af6-4fdb-896a-c96e517d08e7.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\/a69c09d8-dc9a-4078-a268-3971c23fd0df.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\/edf630d4-179c-467b-9402-8f6966f510e5.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\/777aef5d-4802-4ef2-b9ec-b88e06719258.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\/dc9854e4-9eb5-40a8-945c-2e60679afdcf.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\/8978eea7-2a25-47f5-a849-d9ab52ce884d.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\/07c14a42-62b9-4eb4-9e3a-d76767ae4259.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/f1zJA97ZrsA\"><source src=\"https:\/\/youtu.be\/f1zJA97ZrsA\" 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\">Marketing<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u62a5\u544a\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u5546\u4e1a\u667a\u80fd<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u62a5\u544a<\/span><br \/>\n            <span class=\"tag\">\u5e7b\u706f\u7247\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">SaaS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u53ef\u89c6\u5316<\/span><br \/>\n            <span class=\"tag\">\u8425\u9500\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u56e2\u961f\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u53d1\u5e03<\/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\u8d5e\u8d4f\u5176\u4ece\u6d1e\u5bdf\u5230\u53ef\u4ea4\u4ed8\u7269\u7684\u300c\u6700\u540e\u4e00\u516c\u91cc\u300d\u80fd\u529b\uff0c\u8ba4\u4e3a\u5b83\u89e3\u51b3\u4e86\u624b\u52a8\u91cd\u5efa\u62a5\u544a\u7684\u75db\u70b9\u3002\u6838\u5fc3\u95ee\u9898\u96c6\u4e2d\u5728\uff1a\u8de8\u5ba2\u6237\u62a5\u544a\u5982\u4f55\u5904\u7406\u7f3a\u5931\u6307\u6807\uff1b\u80fd\u5426\u70b9\u51fb\u6eaf\u6e90\u5206\u6790\u7ed3\u679c\u80cc\u540e\u7684\u5177\u4f53\u6570\u636e\u548c\u67e5\u8be2\uff1b\u4ee5\u53ca\u5bf9AI\u751f\u6210\u62a5\u544a\u7684\u53ef\u4fe1\u5ea6\u4e0e\u4eba\u5de5\u7f16\u8f91\u63a7\u5236\u6743\u7684\u5e73\u8861\u9700\u6c42\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                Artifacts \u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u6ca1\u6709\u8bd5\u56fe\u91cd\u65b0\u53d1\u660e\u6570\u636e\u5206\u6790\u7684\u8f6e\u5b50\uff0c\u800c\u662f\u7cbe\u51c6\u5730\u5207\u5165\u4e86\u300c\u5206\u6790\u5b8c\u6210\u4e4b\u540e\u300d\u90a3\u4e2a\u6700\u67af\u71e5\u3001\u6700\u8017\u65f6\u7684\u4ea4\u4ed8\u73af\u8282\u3002\u5728AI Agent\u6cdb\u6ee5\u7684\u5f53\u4e0b\uff0c\u5927\u591a\u6570\u4ea7\u54c1\u6b62\u6b65\u4e8e\u300c\u804a\u5929\u300d\uff0c\u800c Artifacts \u63d0\u4f9b\u4e86\u4e00\u4e2a\u4f18\u96c5\u7684\u7ec8\u7ed3\u65b9\u6848\u2014\u2014\u8ba9\u7b54\u6848\u4e0d\u518d\u6b7b\u5728\u5bf9\u8bdd\u6846\u91cc\uff0c\u800c\u662f\u76f4\u63a5\u53d8\u6210\u53ef\u6d88\u8d39\u7684\u8d44\u4ea7\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u770b\uff0c\u7528\u6237\u6700\u5173\u5fc3\u7684\u5e76\u975eAI\u7684\u6d1e\u5bdf\u662f\u5426\u60ca\u8273\uff0c\u800c\u662f\u300c\u6570\u636e\u4ece\u54ea\u6765\u300d\u548c\u300c\u6211\u80fd\u5426\u6539\u300d\u3002\u8fd9\u63ed\u793a\u4e86\u4e00\u4e2a\u6b8b\u9177\u7684\u73b0\u5b9e\uff1a\u5728B\u7aef\uff0cAI\u7684\u300c\u667a\u80fd\u300d\u8fdc\u4e0d\u53ca\u300c\u53ef\u63a7\u300d\u91cd\u8981\u3002Artifacts \u901a\u8fc7\u7ed1\u5b9aDatabox\u5df2\u9a8c\u8bc1\u7684\u6570\u636e\u6e90\u548c\u63d0\u4f9b\u300c\u53ef\u7f16\u8f91\u300d\u6a21\u5f0f\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u73a9\u4e00\u573a\u4fe1\u4efb\u6e38\u620f\u2014\u2014\u5b83\u544a\u8bc9\u7528\u6237\uff0c\u6211\u7b97\u7684\u6570\u662f\u51c6\u7684\uff0c\u800c\u4e14\u4f60\u6c38\u8fdc\u4fdd\u7559\u6700\u7ec8\u89e3\u91ca\u6743\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5f53\u7136\uff0c\u8fd9\u4e5f\u66b4\u9732\u4e86\u5b83\u7684\u5c40\u9650\u6027\u3002\u5b83\u7684\u6838\u5fc3\u4ef7\u503c\u5efa\u7acb\u5728Databox\u81ea\u8eab\u7684\u6570\u636e\u751f\u6001\u4e4b\u4e0a\uff0c\u662f\u4e00\u4e2a\u76f8\u5bf9\u5c01\u95ed\u7684\u589e\u5f3a\u7cfb\u7edf\uff0c\u800c\u975e\u901a\u7528\u578b\u5de5\u5177\u3002\u5bf9\u4e8e\u6ca1\u6709\u4f7f\u7528Databox\u7684\u7528\u6237\uff0c\u8fd9\u6761\u8def\u5f84\u5e76\u4e0d\u901a\u7545\u3002\u6b64\u5916\uff0c\u4ea7\u54c1\u8bc4\u8bba\u4e2d\u9c9c\u6709\u5bf9\u300c\u5206\u6790\u6df1\u5ea6\u300d\u7684\u8d28\u7591\uff0c\u66f4\u591a\u662f\u6d41\u7a0b\u4e0a\u7684\u60ca\u53f9\uff0c\u6697\u793a\u5176\u76ee\u524d\u7684AI\u5206\u6790\u53ef\u80fd\u66f4\u504f\u5411\u63cf\u8ff0\u6027\u7edf\u8ba1\uff08\u53d1\u751f\u4e86\u4ec0\u4e48\uff09\uff0c\u800c\u975e\u8bca\u65ad\u6027\u6216\u9884\u6d4b\u6027\u6d1e\u5bdf\uff08\u4e3a\u4ec0\u4e48\u53d1\u751f\u3001\u63a5\u4e0b\u6765\u4f1a\u53d1\u751f\u4ec0\u4e48\uff09\u3002\u5982\u679cArtifacts\u4e0d\u80fd\u5728\u300c\u5206\u6790\u529b\u300d\u4e0a\u6301\u7eed\u8fdb\u5316\uff0c\u5b83\u5f88\u5bb9\u6613\u6ca6\u4e3a\u300c\u9ad8\u7ea7\u6a21\u677f\u751f\u6210\u5668\u300d\uff0c\u8fd9\u4e0e\u5176\u300cAI Analyst\u300d\u7684\u5b9a\u4f4d\u8fd8\u6709\u5dee\u8ddd\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\">Artifacts by Databox<\/span>\n                <\/div>\n<div class=\"comment-content\">Turn any conversation with your AI Analyst into a polished report, slide deck, or interactive document built from your live data. Generate it from a single prompt, then share it via public link or download as a PDF.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt.<\/p>\n<p>I\u2019m Pete from Databox. Today we\u2019re shipping Artifacts inside Genie, our AI Analyst. An artifact is a report Genie generates from your connected data. It combines the charts you\u2019d normally build by hand with the analysis of what actually drove the numbers, in one shareable document.<\/p>\n<p>Reporting used to work like this&#8230; You\u2019d build a bunch of dashboards. You\u2019d compare performance to the previous period and to goal, try to understand how the work you did turned into the result you got. Then, you&#8217;d write out what happened and what you planned to do next.<\/p>\n<p>Whether you hit the goal, missed it, or crushed it, the manual process was the same. <\/p>\n<p>With Artifacts, none of that is necessary. It\u2019s a one-time setup. You connect your data and define your metrics once. After that, you tell Genie what you did, and it compares performance to the previous period, checks whether the work correlated with what you achieved, digs into why through statistical analysis, and recommends what to do next. Then it builds the report.<\/p>\n<\/p>\n<p>A \u201cwhat happened last month\u201d question becomes a finished report in minutes.<\/p>\n<p>A few very specific things it can do:<\/p>\n<ul>\n<li>\n<p>Turn the same report into a slide deck. One follow-up request, nothing rebuilt.<\/p>\n<\/li>\n<li>\n<p>Restyle a report to your own brand or a client\u2019s, mid-conversation.<\/p>\n<\/li>\n<li>\n<p>If you&#8217;re a professional services firm, build a cross-client report spanning every account, not one client at a time.<\/p>\n<\/li>\n<li>\n<p>Ship as a public link, with no login for whoever you send it to, or a PDF. Turn the link off whenever you want.<\/p>\n<\/li>\n<\/ul>\n<p>You might be asking, why not just use Claude or ChatGPT? Because Databox already has your data connected, understands how to calculate your metrics, and knows how to run statistical analysis on them. <\/p>\n<p>Three things the general chat tools don\u2019t have or don&#8217;t do consistently. Ask one of them for a report and you feed it the data yourself, every time, and hope it calculates and analyzes correctly. And when it gets something wrong, you\u2019re stuck. <\/p>\n<p>Databox artifacts are editable, so you add your own context and Genie refines it. Fine tuning, not redoing.<\/p>\n<p>Less time spent reporting means more time doing the work and more time thinking about how to do it better.<br \/>If you\u2019re not on Databox yet, I challenge you to automate your next report in three steps. <\/p>\n<p>1. Start a trial, <br \/>2. connect your data, <br \/>3. and ask Genie to \u201ccreate a report analyzing what happened last month and why.\u201d<\/p>\n<p>No coding, no spreadsheet-wrangling required. <\/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\/@pc4media\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pc4media<\/a>&nbsp;how do cross client reports handle missing metrics? does genie partially render the artifact or flag the missing source before building the pdf?<\/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\/@pc4media\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pc4media<\/a>&nbsp;Half my week used to be someone rebuilding the same report because a stakeholder wanted one metric framed differently. My worry with an AI analyst is trust: when it flags a dip, can I click through to the exact query and rows behind it? That &#8220;where did this number come from&#8221; moment is what breaks these for execs.<\/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>This is the part of the job I&#8217;ve spent years fixing manually. <\/p>\n<p>Reporting systems that actually get used are rare, most of them just create more work downstream. Being able to ask for a report and get back something client-ready, built on the live data, is the direction this space needed to go. Excited to see how agencies and marketing teams use this to stop rebuilding the same deck every month.<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@lexi_morgan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lexi_morgan<\/a>&nbsp;That&#8217;s exactly the pattern we kept seeing too, reporting systems that generate more work than they save. The bar we held ourselves to was: if it doesn&#8217;t end in something you&#8217;d actually hand to a client without touching it first, it doesn&#8217;t count. Would love to hear how it holds up once you try it on a real client report.<\/p>\n<\/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>Marketing analytics person here \u2014 the biggest benefit of this is not being the human BI layer anymore. You can ask for a report and get something narrative-ready back. And it&#8217;s based on verified data (something that really matters but many marketers forget about). Super useful!<\/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\/@carmenstrelec\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@carmenstrelec<\/a>&nbsp;The &#8220;human BI layer&#8221; line is a good way to put it, that&#8217;s the exact job we were trying to take off people&#8217;s plates. And you&#8217;re right that the data part matters more than it sounds, since a narrative-ready report is only useful if the numbers under it are the ones your team already trusts. <\/p>\n<\/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>One thing I&#8217;d add from the marketing perspective: the most useful thing about Artifacts is that it closes the &#8220;I have an answer&#8221; to &#8220;I have something shareable&#8221; gap. <\/p>\n<p>For example, ask the AI Analyst to build you a report or deck, and it does so using your real data. Then you can hand it off via public link or PDF and there&#8217;s no login needed on the other end.<\/p>\n<p>I know this is HUGE for anyone who&#8217;s ever had to rebuild the same client report by hand every month, and it&#8217;s a great way to add a supporting doc to your quick answer. Happy to answer questions if useful!<\/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<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The problem with most AI generated reports is you still have to check them before sending, since the AI didn&#8217;t actually see your numbers. Artifacts skips that step because Genie pulls straight from your connected data. I asked for a quick performance overview for a stakeholder update and the numbers matched the dashboard exactly, because it&#8217;s the same data.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>7<\/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 Hunt!<\/p>\n<p>We kept seeing the same problem: AI analysts got good at answering questions, but the answer dies in the chat. You still have to copy numbers into a deck, rebuild charts, format a report, and by the time you share it, the data is stale.<\/p>\n<p>Artifacts closes that gap. You ask Genie a question, and instead of just an answer, you get back a finished, ready-to-share output. A report, a slide deck, an interactive document. Built from your live data, generated from a single prompt, shareable via public link or PDF.<\/p>\n<p>The chat was never the deliverable. The report is. Now you get both in one step.<\/p>\n<p>This is our fourth launch this year (Genie in March, MCP in June, Skills Marketplace in July), and they all stack: connect your data, chat with it anywhere, apply expert skills, and now walk away with something you can actually put in front of a client or your exec team.<\/p>\n<p>Artifacts is also another important building block in our agentic analytics direction. We&#8217;re building toward a world where the analyst work happens end to end: the agent pulls the data, runs the analysis, applies the right expertise, and delivers the finished output, with you directing the work instead of doing it. Every launch this year has been a piece of that. Artifacts is the delivery layer.<\/p>\n<p>Try it and tell us where it breaks. That feedback is worth even more to us than the upvote.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>7<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I usually find the analysis itself is only half the work. Turning the result directly into something you can share with a team or client is the more useful part here. Congrats on the launch!<\/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\/@etiennegarcia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@etiennegarcia<\/a>&nbsp;That&#8217;s the split we kept coming back to as well, getting the answer is only step one, turning it into something you can actually hand off is the part that eats the time. Thanks for the kind words, glad it landed.<\/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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Every team I talk to has some version of the same Friday afternoon task: turn the week&#8217;s numbers into something presentable and pass it around. Artifacts replaces that with a prompt. You ask Genie for the report, get back a finished document, and either share the link or download the PDF. You skip the whole assemble-and-format slog in the middle.<\/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\/@thomas_bossee1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thomas_bossee1<\/a>&nbsp;Exactly the moment we built this for. That Friday afternoon &#8220;turn the numbers into something presentable&#8221; task shouldn&#8217;t take longer than the analysis itself. Ask Genie, get the doc, share the link. That&#8217;s the whole workflow now.<\/p>\n<\/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 hardest question we had to answer while building Artifacts wasn&#8217;t technical, it was about control: when AI writes your report, what still belongs to you? Our answer: Genie builds the document from your live data (with a real design system behind it and a deterministic engine doing the math, so numbers are computed, never guessed), and you keep the last word, literally. Edit any text directly, and Genie knows about your edits, so its next update builds on your version instead of overwriting it. Would love your take on whether we drew that line in the right place. I&#8217;ll be around all day for questions.<\/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\/@grega_cej\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@grega_cej<\/a>&nbsp;That control question came up in almost every internal review too. The edit mode is the answer we kept landing on: type mode for the words, prompt mode for anything structural like charts or layout. Small thing, but it means you&#8217;re never stuck rewriting a whole report just to fix one sentence.<\/p>\n<\/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>I tested this by asking Genie for a report, then asking it to turn that same report into a slide deck. Same data, same analysis, different format, one follow-up prompt. That&#8217;s the kind of thing that used to mean rebuilding the whole thing in a different tool. Here it just carried over.<\/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\/@tadej_kelc\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tadej_kelc<\/a>&nbsp;That follow-up prompt trick is honestly my favorite part too. No re-uploading data, no rebuilding charts in a new tool, just &#8220;turn this into slides&#8221; and it carries the whole analysis over. Glad it held up when you tried it yourself.<\/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>Turning live data into a polished, shareable document in seconds is pretty incredible.<\/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\/@mihael_kegl1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mihael_kegl1<\/a>&nbsp;Thanks Mihael. The &#8220;in seconds&#8221; part is what took the most work honestly, going from a question to something client-ready without any manual assembly in between.<\/p>\n<\/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>I don\u2019t touch reporting for clients, so I wasn\u2019t expecting to use this much. I asked Genie to put together a slide deck for our all-hands update and it just built it, no design help needed. Took me a few minutes instead of the usual back and forth with someone on the team.<\/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\/@aljaz_godec\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aljaz_godec<\/a>&nbsp;That&#8217;s a great example actually, someone who doesn&#8217;t normally touch reporting getting a usable deck without needing design help. That&#8217;s exactly the gap we wanted to close, not just faster for people who already build these, but usable for people who&#8217;d normally have to ask someone else.<\/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>Congrats on shipping this. <\/p>\n<p>The gap between &#8216;I have a question about my data&#8217; and &#8216;I have something polished to hand my boss&#8217; has always been the part no AI tool solved well. <\/p>\n<p>This closes it. Looking forward to seeing where the format list goes next.<\/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\/@gino_battestin1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gino_battestin1<\/a>&nbsp;Thanks Gino. That gap is exactly the one we kept coming back to while building this. On the format list, reports, decks, and calculators are live today, and format conversion means you&#8217;re not stuck picking the right one upfront. Curious what you&#8217;d want to see added next.<\/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>Congratulations on the launch. The connection to live data is what separates this from a generic AI document writer. What you share is grounded in the same numbers your dashboards already show. Well done to the team.<\/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\/@gregor_sulcer1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gregor_sulcer1<\/a>&nbsp;Thanks Gregor. That was the core bet we made, an AI document is only as useful as the numbers behind it, so grounding it in the same data your dashboards already trust felt non-negotiable. Appreciate you calling that out.<\/p>\n<\/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>This would save client-facing teams hours every month rebuilding the same presentation for recurring client meetings. Solid update. <\/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\/@krutiparekh16\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@krutiparekh16<\/a>&nbsp;That&#8217;s exactly the use case we had agencies in mind for. Recurring client decks are the most repetitive part of the job, and also the easiest to get wrong when you&#8217;re doing it by hand every month. Appreciate you checking it out.<\/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>I really like that the reports stay connected to live data instead of becoming outdated static documents or PDFs. <\/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\/@divya_kothari1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@divya_kothari1<\/a>&nbsp;Good catch to flag, though worth being precise on what &#8220;live&#8221; means here. An artifact itself is a snapshot, once it&#8217;s generated, the data inside it is frozen and won&#8217;t auto-update. But you can re-trigger the same report anytime, and it&#8217;ll pull fresh, live data from your source with no extra setup, no reconnecting, no rebuilding the prompt. So each generation reflects your current numbers, it&#8217;s just that a single artifact doesn&#8217;t refresh in place. Appreciate you digging into the details.<\/p>\n<\/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>How customizable are the generated reports for agencies with strict client branding requirements?<\/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\/@ankur_jeswani\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ankur_jeswani<\/a>&nbsp;Pretty flexible, actually. You can ask Genie to restyle colors, fonts, layout, and charts to match a specific client&#8217;s brand, and it rebuilds the artifact to match. Since it&#8217;s all prompt-based, you can do this per client without touching a design tool, so the same report structure can look completely different for each account.<\/p>\n<\/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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The part worth explaining is how the artifact actually gets built. It&#8217;s not assembled from a template or a databoard, Genie authors the layout, structure, and visuals fresh for each request, following a shared design spec so it comes out on brand by default. The data inside it is pulled live from your connected metrics at generation time, so what you get is a real document backed by your real sources, not a paraphrase of a chart you pasted in.<\/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\/@jakobzmrzlikar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jakobzmrzlikar<\/a>&nbsp;Exactly this. And the part I&#8217;d add: the model doesn&#8217;t do the math either. Every number in the artifact is computed by a deterministic query engine before the model writes a word around it. Funny how the least glamorous piece of the stack, essentially a calculator, made the biggest difference in how accurate the numbers are. Authored fresh, never improvised.<\/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>I saw the artifacts preview when you had created the PH forum post last week. Good update!<\/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\/@himani_sah1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himani_sah1<\/a>&nbsp;Glad it&#8217;s been on your radar for a bit, appreciate you following along and checking out the launch.<\/p>\n<\/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>One implementation detail I&#8217;m particularly happy with is how Artifacts evolve through a conversation.<\/p>\n<\/p>\n<p>When Genie generates a report, you don&#8217;t have to start over if you want something different.<\/p>\n<\/p>\n<p>Need another section? Just ask.<\/p>\n<\/p>\n<p>Want a different chart? Ask.<\/p>\n<\/p>\n<p>Need to adjust the branding for a client? Ask.<\/p>\n<\/p>\n<p>Those kinds of changes happen directly on the existing artifact, so you&#8217;re refining what you&#8217;ve already built instead of starting from scratch.<\/p>\n<\/p>\n<p>For bigger transformations, like turning a report into a slide deck, Genie creates a <strong>new<\/strong> artifact while keeping the original report intact. Both versions are available to share, and because they&#8217;re built from the same connected data and conversation, you don&#8217;t lose the context that got you there.<\/p>\n<\/p>\n<p>We didn&#8217;t want AI to feel like a series of disconnected prompts. We wanted it to feel like working on a living document that evolves with you.<\/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>Congrats on the launch!<\/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\/@mcarmonas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mcarmonas<\/a>&nbsp;thanks Marti! We really appreciate your support<\/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>For teams migrating from existing BI tools, how seamless is the process of importing historical datasets and custom metrics, and does Databox offer any AI assisted mapping to speed up that transition?<\/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\/@aymi_malik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aymi_malik<\/a>&nbsp;Good question, though worth separating two things here. Artifacts itself pulls from data you&#8217;ve already connected to Databox (130+ native integrations), so no import step for that part. For historical datasets and custom metrics, we also have an Ingestion API, so you can push data from any other tool, or even directly from an AI client like Claude, straight into Databox. That covers a lot of migration cases without needing a native integration to exist first. I don&#8217;t want to overstate the mapping side though, there&#8217;s no AI-assisted mapping for that step yet.<\/p>\n<\/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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on the launch!<\/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\/@fedulovelena\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fedulovelena<\/a>&nbsp;thank you! your support means a lot!<\/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>Worth flagging for anyone who tried an earlier version of this: you can now edit text and titles directly inside the artifact panel, no prompt needed for small fixes. And every artifact you make is saved to its own gallery with search and favorites, so finding last month&#8217;s report doesn&#8217;t mean digging through chat history anymore.<\/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=\"comment-item\">\n<div class=\"comment-content\">\n<p>Looks cool!!<\/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\/@louislecat\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@louislecat<\/a>&nbsp;Thanks! Here is the live example of one Artifact in action &#8211; no login needed, just open it: <a href=\"https:\/\/app.databox.com\/shared\/artifacts\/8cc805b913e00e1c4641a177acf11867\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/app.databox.com\/shared\/artifacts\/8cc805b913e00e1c4641a177acf11867<\/a> <\/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>The question I get most on calls is some version of &#8216;so once Genie answers, then what.&#8217; Before, the answer was a chat message. Now it&#8217;s a finished report or slide deck with your actual data in it, shareable with a link. For prospects who need to show something to their team after a demo, that&#8217;s a much easier story to tell.<\/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\/@kenneth_won\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kenneth_won<\/a>&nbsp;Love that framing, &#8220;so what happens after Genie answers&#8221; is exactly the gap we were closing. Nice callback for the calls, thanks for jumping in on the thread today.<\/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>This is interesting. What&#8217;s the most surprising query users didn&#8217;t think to ask?<\/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\/@dhiraj_patel5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dhiraj_patel5<\/a>&nbsp;Good question. Honestly the reports themselves aren&#8217;t the surprising part, most people expect that. What catches people off guard is turning that same report into a slide deck with one follow-up prompt, or asking for something like an interactive calculator or projection tool instead of a static document. People come in thinking &#8220;AI report generator&#8221; and don&#8217;t realize the format list goes well beyond reports.<\/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>I find this release shows how adaptable and mature Databox is becoming as a company. It already has a pretty sophisticated Databoards feature that has been polished to be pixel-perfect over the years. When users shared data outside of Databox, they shared those Databoards. And we made sure they always made an impression. That they always looked Databox-ish. Years were spent improving them. Loud conference room meetings were spent over positioning pixels on them. It was something we were proud of, and, of course, still are.<\/p>\n<p>Today, we handed some if that control over to our customers through AI (Genie). Building what they share with the outside world. The Artifacts still look Databox-ish, colleagues made sure of that. And it does come with lots of upsides &#8211; building Artifact with a prompt is way faster than placing and configuring blocks on a Databoard, plus AI has a lot of knowledge built-in. But still, we had to let go of some of the control we had over what can be shared. What carries our logo.<\/p>\n<p>At the end of the day, that&#8217;s what customers wanted. And that&#8217;s what &#8220;bites&#8221; in today&#8217;s fast-paced world. Adapting to that need, while knowing it might cannibalise our own prized feature.<br \/>That has to mean maturity. <\/p>\n<p>GG Team!<\/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\/@aljaazm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aljaazm<\/a>&nbsp;This sums up the tradeoff better than I could have. We spent years making sure anything shared out of Databox looked polished and unmistakably ours, and handing that pixel-level control to a prompt was the harder internal conversation than any technical build. Landed on &#8220;still look Databox-ish, just faster to get there&#8221; as the line we were comfortable with. Appreciate you putting it this way, GG team indeed.<\/p>\n<\/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>What makes Genie useful is that it&#8217;s working from the source data, not trying to interpret a screenshot. It connects to 130+ tools and pulls the numbers directly. So when the report is going to a client or the board, you don&#8217;t have to manually check every figure before sending it.<\/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\/@mateja_verlic_bruncic\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mateja_verlic_bruncic<\/a>&nbsp;That&#8217;s the part we didn&#8217;t want to compromise on. An AI report is only worth sending if you don&#8217;t have to fact-check it first, so pulling straight from the same 130+ connected sources instead of interpreting a screenshot was the whole point.<\/p>\n<\/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>Big congrats to the team. What stands out is that the document is built fresh each time, from your real connected data, instead of assembled from a template. That&#8217;s the part that makes it trustworthy enough to send without double checking.<\/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\/@rene_kolednik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rene_kolednik<\/a>&nbsp;Thanks for the kind words. That &#8220;built fresh each time&#8221; part is exactly why we didn&#8217;t go the template route, templates answer the same shape of question every time, and the moment someone asks something slightly different, you&#8217;re back to rebuilding by hand.<\/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<\/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\/IU2TVFNFIUECW4\" class=\"app-title\">Claude Opus 5<\/a><\/p>\n<div class=\"one-liner\">Near-Fable 5 intelligence at half the price<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">365<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Claude Opus 5 \u901a\u8fc7\u964d\u4f4e\u9876\u5c16\u63a8\u7406\u6a21\u578b\u7684\u6210\u672c\uff0c\u4f7f\u5f00\u53d1\u8005\u80fd\u7528\u66f4\u4f4e\u4ef7\u683c\u8fd0\u884c\u957f\u65f6\u95f4\u4efb\u52a1\u7684\u667a\u80fd\u4f53\uff08Agent\uff09\uff0c\u5728\u7f16\u7801\u3001\u4ee3\u7801\u5ba1\u67e5\u548c\u4e13\u4e1a\u5de5\u4f5c\u573a\u666f\u4e2d\u5b9e\u73b0\u63a5\u8fd1\u201cFable 5\u201d\u6c34\u5e73\u7684\u9ad8\u8d28\u91cf\u8f93\u51fa\uff0c\u89e3\u51b3\u4e86AI\u63a8\u7406\u6210\u672c\u9ad8\u3001\u96be\u4ee5\u6295\u5165\u751f\u4ea7\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                <video class=\"media-content\" poster=\"https:\/\/ph-files.imgix.net\/af2e1709-0bf5-423a-9513-c3b33278fa07.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=2eiKnt9Hi6I\"><source src=\"https:\/\/www.youtube.com\/watch?v=2eiKnt9Hi6I\" 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\/3e27ff5d-0612-4506-ad3b-c935991b517e.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\/d4cf3475-2df4-49f3-b104-47eb48208fde.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\/dde1a712-3418-401f-afdd-b7ff3dec9944.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\/a377216a-4ce1-4549-b031-21389ea56e8d.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\/9977ef50-f231-4a9c-9056-bef7769577bf.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\/c6abd918-dd5d-481d-af2f-a9928b054f2a.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\/ff0a4c48-3864-4af1-979d-bc1b231268be.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\/5f8dc24a-7d1b-44d5-a4c4-211edbde6523.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\">Messaging<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u6a21\u578b<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4f53\u7f16\u7a0b<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u5ba1\u67e5<\/span><br \/>\n            <span class=\"tag\">\u957f\u4e0a\u4e0b\u6587<\/span><br \/>\n            <span class=\"tag\">\u964d\u4f4e\u63a8\u7406\u6210\u672c<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387<\/span><br \/>\n            <span class=\"tag\">\u591a\u667a\u80fd\u4f53\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u89c6\u89c9\u7406\u89e3<\/span><br \/>\n            <span class=\"tag\">\u4efb\u52a1\u81ea\u52a8\u5316<\/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\u53efOpus 5\u964d\u4f4e\u6210\u672c\u540e\u66f4\u6613\u843d\u5730\uff0c\u4f46\u6838\u5fc3\u7591\u8651\u5728\u4e8e\u957f\u4e0a\u4e0b\u6587\uff081M tokens\uff09\u7684\u7a33\u5b9a\u6027\u3001\u5b50\u667a\u80fd\u4f53\u7ba1\u7406\u673a\u5236\uff08\u4f55\u65f6\u7531\u8c01\u51b3\u5b9a\u521b\u5efa\uff09\uff0c\u4ee5\u53ca\u5b9a\u4ef7\u662f\u5426\u968f\u4e0a\u4e0b\u6587\u957f\u5ea6\u9636\u68af\u53d8\u5316\u3002\u6b64\u5916\uff0c\u90e8\u5206\u7528\u6237\u6b63\u5c06\u5176\u4e0eFable 5\u5bf9\u6bd4\u6d4b\u8bd5\uff0c\u5173\u6ce8\u6548\u7387\u548c\u8d28\u91cf\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                Claude Opus 5 \u7684\u53d1\u5e03\uff0c\u672c\u8d28\u4e0a\u662f\u4e00\u573a\u201c\u6027\u4ef7\u6bd4\u9769\u547d\u201d\u800c\u975e\u201c\u6027\u80fd\u9769\u547d\u201d\u3002\u5b83\u7684\u6838\u5fc3\u53d9\u4e8b\u903b\u8f91\u5f88\u6e05\u6670\uff1a\u4ee5\u4e00\u534a\u7684\u4ef7\u683c\u63d0\u4f9b\u903c\u8fd1\u6700\u9ad8\u6c34\u51c6\u7684\u63a8\u7406\u80fd\u529b\uff0c\u4ece\u800c\u8ba9\u957f\u65f6\u8fd0\u884c\u7684\u667a\u80fd\u4f53\u4ece\u201cDemo\u73a9\u5177\u201d\u771f\u6b63\u53d8\u6210\u201c\u751f\u4ea7\u5de5\u5177\u201d\u3002\u8fd9\u79cd\u5b9a\u4ef7\u7b56\u7565\u7cbe\u51c6\u523a\u4e2d\u4e86\u5f53\u524dAI\u843d\u5730\u4e2d\u6700\u81f4\u547d\u7684\u75db\u70b9\u2014\u2014\u6210\u672c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u6211\u4eec\u5fc5\u987b\u51b7\u9759\u770b\u5f85\u5176\u201cNear-Fable 5 intelligence\u201d\u7684\u4fee\u8f9e\u3002\u4ece\u7528\u6237\u53cd\u9988\u6765\u770b\uff0c\u771f\u6b63\u7684\u60ac\u5ff5\u5728\u4e8e\u4e24\u70b9\uff1a\u4e00\u662f\u90a3\u5907\u53d7\u5439\u6367\u76841M\u4e0a\u4e0b\u6587\u7a97\u53e3\uff0c\u5728\u5b9e\u9645\u590d\u6742\u7684\u3001\u957f\u6d41\u7a0b\u4efb\u52a1\u4e2d\u662f\u5426\u80fd\u5982\u5ba3\u4f20\u822c\u201c\u4fdd\u6301\u4e00\u81f4\u6027\u201d\uff0c\u8fd8\u662f\u4f1a\u5728\u5c3d\u5934\u5904\u6084\u6084\u964d\u667a\uff1b\u4e8c\u662f\u6240\u8c13\u7684\u201c\u591a\u667a\u80fd\u4f53\u534f\u8c03\u201d\u7a76\u7adf\u8fdb\u5316\u4e86\u591a\u5c11\uff0c\u662f\u6a21\u578b\u81ea\u4e3b\u51b3\u7b56\u59d4\u6d3e\u5b50\u667a\u80fd\u4f53\uff0c\u8fd8\u662f\u4ecd\u9700\u8981\u5f00\u53d1\u8005\u624b\u52a8\u8c03\u5ea6\u3002\u5982\u679c\u8fd9\u4e9b\u6280\u672f\u7ec6\u8282\u53ea\u662f\u65e7\u74f6\u88c5\u65b0\u9152\uff0c\u90a3\u4e48\u964d\u4ef7\u5c31\u53ea\u662f\u53d8\u76f8\u7684\u4ef7\u683c\u6218\uff0c\u96be\u4ee5\u6784\u7b51\u957f\u671f\u58c1\u5792\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u7684\u771f\u6b63\u4ef7\u503c\uff0c\u5728\u4e8e\u5b83\u6562\u4e8e\u627f\u8ba4\u201c\u6548\u7387\u8c03\u8282\u201d\u7684\u91cd\u8981\u6027\u3002\u5b98\u65b9\u6307\u5357\u660e\u786e\u6307\u51fa\u201c\u4f4e\/\u4e2d\u7b49Effort\u6a21\u5f0f\u80fd\u5728\u5927\u5e45\u8282\u7701Token\u7684\u60c5\u51b5\u4e0b\u4fdd\u6301\u9ad8\u8d28\u91cf\u201d\uff0c\u8fd9\u662f\u5728\u5f15\u5bfc\u7528\u6237\u4ece\u201c\u65e0\u8111\u5f00\u6700\u9ad8\u6863\u201d\u8f6c\u5411\u7cbe\u7ec6\u5316\u6210\u672c\u63a7\u5236\u3002\u8fd9\u6807\u5fd7\u7740AI\u4ea7\u54c1\u6b63\u5728\u4ece\u5355\u7eaf\u6bd4\u62fc\u53c2\u6570\uff0c\u8fdb\u5165\u5230\u201c\u8fd0\u8425\u4f18\u5316\u201d\u7684\u6210\u719f\u9636\u6bb5\u3002\u5bf9\u4e8e\u5f00\u53d1\u8005\u800c\u8a00\uff0cOpus 5\u4e0d\u662f\u6551\u4e16\u4e3b\uff0c\u800c\u662f\u4e00\u4e2a\u66f4\u5212\u7b97\u7684\u87ba\u4e1d\u5200\u2014\u2014\u5b83\u552f\u4e00\u7684\u4ef7\u503c\uff0c\u5c31\u662f\u770b\u4f60\u80fd\u5426\u5728\u4efb\u52a1\u590d\u6742\u5ea6\u4e0e\u6210\u672c\u4e4b\u95f4\uff0c\u627e\u5230\u90a3\u4e2a\u6700\u4f18\u89e3\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\">Claude Opus 5<\/span>\n                <\/div>\n<div class=\"comment-content\">Opus 5 is a step change improvement for the Opus tier powering long-running agents while delivering improvements in coding and professional work.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>To get the most out of this model, here&#8217;s the <a href=\"https:\/\/platform.claude.com\/docs\/en\/build-with-claude\/prompt-engineering\/prompting-claude-opus-5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">new prompting guide<\/a>:<\/p>\n<ul>\n<li>\n<p><strong>Agentic coding:<\/strong> Claude Opus 5 is strongest on difficult coding tasks: multi-file features, larger refactors, and end-to-end feature work. It completes full tasks rather than leaving stubs or placeholders, and it performs best when given the complete task specification up front and left to run. It also performs well on easier tasks like single-turn edits, where the difference from prior models is smaller.<\/p>\n<\/li>\n<li>\n<p><strong>Code review and bug-finding:<\/strong> Claude Opus 5 reviews code with high precision and recall: it finds real bugs at a high rate per pass, and its additional findings are mostly real issues rather than false positives. Accuracy holds at lower effort settings, which supports a fast pass at review time and a more thorough pass later. If your review prompt says &#8220;only report high-severity issues&#8221; or &#8220;be conservative,&#8221; the model may follow that instruction literally and report less; ask it to report everything and filter in a separate pass instead.<\/p>\n<\/li>\n<li>\n<p><strong>Efficiency at lower effort:<\/strong> low and medium <a href=\"https:\/\/platform.claude.com\/docs\/en\/build-with-claude\/effort\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">effort<\/a> produce strong quality at a fraction of the tokens and latency of higher settings, and they perform above the same settings on prior Opus models. Use them liberally as your primary control for token cost and response time wherever your evals show quality holds; for coding and agentic work, xhigh remains the recommended starting point. If you carried effort defaults over from a prior model, re-run an effort sweep on your own evals. See <a href=\"https:\/\/platform.claude.com\/docs\/en\/build-with-claude\/effort#recommended-effort-levels-for-claude-opus-5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Effort<\/a> for the full recommendations.<\/p>\n<\/li>\n<li>\n<p><strong>Vision:<\/strong> Claude Opus 5 is strong on chart, document, and diagram understanding, and on UI and frontend visual replication. Re-validate any prompt-side vision workarounds you tuned for prior models; they may no longer be needed. Vision performance is strongest when the model has tools to iteratively analyze, crop, and visually verify its work, and tool use is a more cost-effective lever than thinking alone.<\/p>\n<\/li>\n<li>\n<p><strong>Long-context work:<\/strong> Claude Opus 5 has a <a href=\"https:\/\/platform.claude.com\/docs\/en\/build-with-claude\/context-windows\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">1M token context window<\/a> as both the default and the maximum, and its instruction following, tool calling, and reasoning stay consistent throughout the window.<\/p>\n<\/li>\n<li>\n<p><strong>Office and document tasks:<\/strong> Claude Opus 5 generates and works with complex, multi-sheet spreadsheets with non-trivial formulas, and it produces well-structured slide decks. Prompt it with any specific styles or templates it needs to follow.<\/p>\n<\/li>\n<li>\n<p><strong>Multi-agent coordination:<\/strong> Claude Opus 5 coordinates teams of subagents well, with effective writer-verifier patterns and few cases of agents overwriting each other&#8217;s work. For cost-sensitive workloads, cap delegation; see <a href=\"https:\/\/platform.claude.com\/docs\/en\/build-with-claude\/prompt-engineering\/prompting-claude-opus-5#controlling-subagent-spawning\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Controlling subagent spawning<\/a>.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>7<\/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\/@chrismessina\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@chrismessina<\/a>&nbsp;Claude Opus 5 showcases how advanced AI can improve productivity, automate workflows, and deliver intelligent solutions for users across different industries. Similarly, the <a href=\"https:\/\/allyonostorein.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Yono App<\/a> simplifies everyday banking by providing secure access to financial services, digital payments, account management, and convenient transactions through a user-friendly mobile 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<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">@chrismessina That bit about lower\/medium efforts producing strong quality at a fraction of the cost is super helpful. Managing token costs while maintaining output quality has always been a tightrope definitely eager to run some sweeps on this.<\/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>Been running it in Claude Code. Not sure yet if it&#8217;s better or worse than Fable 5 for what I do, but the token efficiency alone is a big win.<\/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 nice. Here&#8217;s a comment generated by Opus 5 posted on a launch page for Opus 5.<\/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>Claude has been huge for me. I understand tech well but I&#8217;m not a developer, and it&#8217;s helped me take ideas that used to just live in my head and turn them into real working software I can put in front of test users. It walked me through publishing a live website and even setting up a proper dev environment with GitHub, stuff I never would have figured out on my own. Excited to use opus 5 and see how it compares to fable 5. <\/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>alright &#8211; Opus 5 is a banger. Fable 5-level reasoning at half the price, <a href=\"https:\/\/www.producthunt.com\/products\/claude\" target=\"_blank\" rel=\"noopener\">@Claude by Anthropic<\/a> is killing it. it&#8217;s already running on <a href=\"https:\/\/www.producthunt.com\/products\/kilocode\" target=\"_blank\" rel=\"noopener\">@Kilo Code<\/a>, and early traction shows similar performance to GPT-5.6. <\/p>\n<p>the real question now isn&#8217;t whether AI can write good code, it&#8217;s <a href=\"https:\/\/www.producthunt.com\/p\/claude\/what-s-the-best-ai-model-for-coding\" target=\"_blank\" rel=\"noopener\">which model <\/a>fits the task and at what cost. LFG<\/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>Congrats on the launch. The price move matters more than the benchmark bump &#8211; halving the cost of the top tier is what decides whether long-running agents stay a demo or actually go to production. Nice work to the team.<\/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 claim I want to poke at is the 1M context holding up consistently, since that is usually where things quietly degrade. Multi-file refactors landing end to end instead of stopping halfway matters more to me day to day than benchmark numbers. How does the subagent management differ from before, is the parent model deciding when to spawn them now or is that still on the developer?<\/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>Half the price for close to the same quality is the kind of update that actually shows up on the bill. Most of what I throw at it is long messy work that runs for an hour, so the end to end feature work angle is what I care about. Does the lower pricing hold across the whole 1M context window, or does the cost step up once you go past a certain point?<\/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>That&#8217;s nice. How does it handle long-context reasoning compared to Fable 5?<\/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\/TSDAGJRI6E3MV7\" class=\"app-title\">Webhound<\/a><\/p>\n<div class=\"one-liner\">A research engine for your agent<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">347<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Webhound \u662f\u4e00\u6b3e\u8ba9AI\u7814\u7a76\u4ee3\u7406\u6309\u9884\u7b97\u201c\u70e7\u94b1\u201d\u67e5\u8bc1\u7684\u7814\u7a76\u5f15\u64ce\uff0c\u89e3\u51b3\u7684\u662f\u7528\u6237\u65e0\u6cd5\u63a7\u5236\u7814\u7a76\u6df1\u5ea6\u548c\u4f55\u65f6\u505c\u6b62\u7684\u75db\u70b9\uff0c\u786e\u4fdd\u6bcf\u6b21\u6295\u5165\u90fd\u6709\u5bf9\u5e94\u7684\u8bc1\u636e\u56de\u62a5\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\/c01be36b-c9ae-49c7-8eb9-190e122839c2.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\/1bc021db-26e4-45b1-94c1-b40fc1e6d0d7.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\/fc30945c-cf05-4200-aaa8-68896224dde9.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\/74744cd9-f841-479a-b364-deda1cdbd52b.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\/fd830e09-0ccb-4146-b10a-1b5deccd2a24.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\/4e196897-2230-4ea9-9235-45952072e5d5.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\/3ae452ed-5979-44a8-a56e-c1ae6b5f33e9.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\/e1ada36e-53c6-4cce-8fab-4b921b11ea15.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=JT70Q5qp15g\"><source src=\"https:\/\/www.youtube.com\/watch?v=JT70Q5qp15g\" 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\">Search<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7814\u7a76\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u9884\u7b97\u63a7\u5236<\/span><br \/>\n            <span class=\"tag\">\u505c\u6b62\u95ee\u9898<\/span><br \/>\n            <span class=\"tag\">\u4e8b\u5b9e\u6838\u67e5<\/span><br \/>\n            <span class=\"tag\">\u4fe1\u6e90\u900f\u660e<\/span><br \/>\n            <span class=\"tag\">\u5f15\u7528\u62a5\u544a<\/span><br \/>\n            <span class=\"tag\">MCP\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u9884\u7b97\u9a71\u52a8<\/span><br \/>\n            <span class=\"tag\">\u6df1\u5ea6\u7814\u7a76<\/span><br \/>\n            <span class=\"tag\">\u5de5\u4f5c\u6587\u6863<\/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\u201c\u9884\u7b97\u4f5c\u4e3a\u505c\u6b62\u673a\u5236\u201d\u7684\u521b\u65b0\uff0c\u5173\u6ce8\u51b2\u7a81\u4fe1\u6e90\u5982\u4f55\u5904\u7406\uff08\u662f\u5426\u660e\u786e\u6807\u8bb0\u5206\u6b67\u800c\u975e\u63a9\u76d6\uff09\uff1b\u8be2\u95ee\u80fd\u5426\u4f7f\u7528\u79c1\u6709\u6587\u6863\uff08\u53ef\u4ee5\uff09\uff1b\u5173\u5fc3\u5bf9\u590d\u6742\u591a\u76ee\u6807\u4efb\u52a1\u7684\u62c6\u5206\u80fd\u529b\uff08\u80fd\u62c6\u5206\u4f46\u53d7\u9884\u7b97\u9650\u5236\uff09\uff1b\u5efa\u8bae\u63d0\u4f9b\u65ad\u70b9\u7eed\u8dd1\u3001\u5bfc\u51faMarkdown\/Notion\u53ca\u5bfc\u51fa\u63a8\u7406\u75d5\u8ff9\u529f\u80fd\uff0c\u7528\u4e8e\u5ba1\u8ba1\u548c\u534f\u4f5c\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                Webhound\u7684\u201c\u7f8e\u5143\u9884\u7b97\u5373\u505c\u6b62\u539f\u8bed\u201d\u662f\u8fd1\u534a\u5e74AI\u7814\u7a76\u5de5\u5177\u4e2d\u6700\u5177\u52a1\u5b9e\u4e3b\u4e49\u7684\u521b\u65b0\u3002\u5b83\u6ca1\u6709\u6389\u8fdb\u201c\u8ba9AI\u66f4\u806a\u660e\u201d\u7684\u9677\u9631\uff0c\u800c\u662f\u7cbe\u51c6\u5207\u4e2d\u4e86AI\u7814\u7a76\u4ee3\u7406\u7684\u201c\u865a\u5047\u5b8c\u6210\u611f\u201d\u75fc\u75be\u2014\u2014\u90a3\u79cd\u7528\u81ea\u4fe1\u7684\u8bed\u6c14\u63a9\u76d6\u8bc1\u636e\u4e0d\u8db3\u7684\u6bdb\u75c5\u3002\u5c06\u7814\u7a76\u6210\u672c\u91cf\u5316\u5230\u6bcf\u4e00\u5206\u94b1\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u903cAI\u56de\u7b54\u4e00\u4e2a\u7ec8\u6781\u95ee\u9898\uff1a\u4f60\u505a\u7684\u8fd9\u4ef6\u4e8b\u503c\u4e0d\u503c\u8fd9\u4e2a\u4ef7\uff1f\u8fd9\u8fdc\u6bd4\u8ba9\u4e00\u4e2aLLM\u5f53\u88c1\u5224\u6765\u5224\u65ad\u201c\u662f\u5426\u5b8c\u6210\u201d\u8981\u8bda\u5b9e\u5f97\u591a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u7528\u6237\u53cd\u9988\u770b\uff0c\u6838\u5fc3\u8d28\u7591\u96c6\u4e2d\u5728\u201c\u9884\u7b97\u673a\u5236\u80fd\u5426\u771f\u6b63\u5e26\u6765\u51b3\u7b56\u8d28\u91cf\u7684\u63d0\u5347\u201d\u3002Webhound\u7ed9\u51fa\u7684\u7b54\u6848\u662f\u201c\u80fd\uff0c\u4f46\u6709\u9650\u201d\u3002\u5b83\u80fd\u900f\u660e\u5730\u6807\u8bb0\u672a\u89e3\u51b3\u51b2\u7a81\uff0c\u66b4\u9732\u5ba1\u8ba1\u94fe\uff0c\u751a\u81f3\u5141\u8bb8\u4e2d\u9014\u8ffd\u52a0\u9884\u7b97\uff0c\u8fd9\u4e9b\u90fd\u8bc1\u660e\u4e86\u56e2\u961f\u5bf9\u201c\u7814\u7a76\u8d28\u91cf\u201d\u7684\u5b9a\u4e49\u662f\u6e05\u6670\u7684\uff1a\u4e0d\u662f\u5b57\u6570\u7684\u5806\u780c\uff0c\u800c\u662f\u5bf9\u4e89\u8bae\u8bc1\u636e\u7684\u8986\u76d6\u548c\u6eaf\u6e90\u3002\u7136\u800c\uff0c\u8fd9\u4e5f\u66b4\u9732\u4e86\u5176\u5e95\u5c42\u6a21\u578b\u7684\u6839\u672c\u5c40\u9650\u2014\u2014\u5982\u679c\u6a21\u578b\u672c\u8eab\u5728\u7406\u89e3\u590d\u6742\u4e0a\u4e0b\u6587\u6216\u7504\u522b\u6743\u5a01\u4fe1\u6e90\u4e0a\u5b58\u5728\u7f3a\u9677\uff0c\u9884\u7b97\u8d8a\u9ad8\uff0c\u53ef\u80fd\u53ea\u662f\u66f4\u9ad8\u6548\u5730\u6269\u5199\u9519\u8bef\u3002\u540c\u65f6\uff0c\u201c\u9884\u7b97\u201d\u8fd9\u4e00\u51b7\u51b0\u51b0\u7684\u5ea6\u91cf\uff0c\u5728\u9762\u5bf9\u9700\u8981\u7075\u5149\u4e4d\u73b0\u6216\u5b9a\u6027\u5224\u65ad\u7684\u6df1\u5ea6\u7814\u7a76\u65f6\uff0c\u53ef\u80fd\u4f1a\u627c\u6740\u771f\u6b63\u7684\u63a2\u7d22\u8def\u5f84\uff0c\u56e0\u4e3a\u6700\u77ed\u8def\u5f84\u672a\u5fc5\u662f\u6700\u4f18\u8def\u5f84\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u4e2a\u66f4\u503c\u5f97\u63a2\u8ba8\u7684\u6697\u7ebf\u5728\u4e8e\u8054\u5408\u521b\u59cb\u4ebaTheo\u5bf9\u201c\u4e3a\u4ee3\u7406\u8bbe\u8ba1\u201d\u7684\u53cd\u601d\u3002\u4ed6\u6307\u51fa\u5f53\u524d\u6700\u5927\u7684\u7528\u6237\u7fa4\u7adf\u662f\u4ee3\u7406\uff0c\u800c\u975e\u4eba\u7c7b\u672c\u4eba\u3002\u8fd9\u610f\u5473\u7740Webhound\u7684\u771f\u6b63\u6218\u573a\u4e0d\u662f\u66ff\u4ee3\u4eba\u7c7b\u8c03\u7814\uff0c\u800c\u662f\u6210\u4e3aAI\u4ee3\u7406\u751f\u6001\u7684\u201c\u5ba1\u8ba1\u4e0e\u8bc1\u636e\u4f9b\u5e94\u94fe\u201d\u3002\u5982\u679c\u65e0\u6570AI\u4ee3\u7406\u901a\u8fc7MCP\u8c03\u7528\u5b83\u6765\u201c\u57ab\u4ed8\u201d\u8bc1\u636e\uff0cWebhound\u5c31\u6210\u4e86AI\u4e16\u754c\u7684\u201c\u5fb7\u52e4\u201d\u2014\u2014\u770b\u4f3c\u5c45\u4e8e\u5e95\u5c42\uff0c\u5b9e\u5219\u638c\u63e1\u7740\u6574\u4e2aAI\u51b3\u7b56\u94fe\u7684\u4fe1\u7528\u547d\u8109\u3002\u4f46\u8fd9\u4e5f\u8ba9\u4ed6\u62c5\u5fe7\u7684\u201c\u63a5\u53e3\u6536\u655b\u201d\u95ee\u9898\u66f4\u503c\u5f97\u8b66\u60d5\uff1a\u5982\u679c\u4ee3\u7406\u7684\u4e16\u754c\u6700\u7ec8\u6536\u655b\u5230\u5c11\u6570\u51e0\u4e2a\u8d85\u7ea7\u754c\u9762\uff0cWebhound\u80fd\u5426\u907f\u514d\u6ca6\u4e3a\u67d0\u4e2a\u5927\u6a21\u578b\u5185\u90e8\u7684\u4e00\u4e2a\u4ed8\u8d39\u63d2\u4ef6\uff1f\u7b54\u6848\u662f\uff0c\u5b83\u5fc5\u987b\u5c3d\u5feb\u5efa\u7acb\u57fa\u4e8e\u201c\u53ef\u5ba1\u8ba1\u8bc1\u636e\u201d\u7684\u4e0d\u53ef\u66ff\u4ee3\u6027\uff0c\u5426\u5219\u5c31\u4f1a\u88ab\u5e73\u53f0\u541e\u5e76\u3002\u65e0\u8bba\u5982\u4f55\uff0c\u7528\u94b1\u8bf4\u8bdd\uff0c\u662f\u76ee\u524d\u89e3\u51b3AI\u4e71\u8bf4\u6700\u786c\u7684\u624b\u6bb5\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\">Webhound<\/span>\n                <\/div>\n<div class=\"comment-content\">Research has no natural finish line. An agent can spend ten minutes or ten hours on the same question, and both answers can look finished. Webhound lets you choose how much work the question deserves. Give it a question and a dollar budget. It follows leads and checks weak claims until the budget is consumed, then returns a cited report or sourced dataset with the sources and working documents behind it. Run Webhound yourself or call it from your agent through MCP or the API.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi Product Hunt, I\u2019m Moe, the founder of Webhound. I\u2019ve worked on AI research since 2023.<\/p>\n<p>I started Webhound because research agents have a stopping problem.<\/p>\n<p>A coding agent can stop when the tests pass. Research has no equivalent finish line. An agent can spend ten minutes, two hours, or twenty hours on the same question, and each answer can look complete. Research agents tend to stop once they have enough evidence to sound confident.<\/p>\n<p>You still do not know which leads they skipped, where sources disagreed, or whether another hour would uncover the fact that changes your decision. The agent makes that stopping decision for you.<\/p>\n<p>Our thesis is that budget should be a research primitive. In plain English, your prompt tells Webhound what to investigate. Your dollar budget tells it how much work to put in and caps what you can spend. At our current rate, $5 funds about 75 minutes of research.<\/p>\n<\/p>\n<p>Search finds sources for the query in front of it. Research reads those sources and follows the leads they reveal. One source can change what Webhound needs to search for next.<\/p>\n<\/p>\n<p>You get a cited report or sourced dataset, along with the sources and research notes behind it. You can inspect how Webhound reached its conclusions and where the investigation still has gaps.<\/p>\n<\/p>\n<p>Extra budget must earn its cost. We judge a larger run by the useful evidence it adds and whether that evidence improves your decision. Extra length does not count.<\/p>\n<\/p>\n<p>You can run Webhound in the app or use it behind Codex, Claude Code, Cursor, Manus, or your own software. Your agent can hand off a question, continue working, and retrieve the finished research later.<\/p>\n<p>New accounts include one $5 Report or Dataset. There is no subscription.<\/p>\n<\/p>\n<p>I want blunt feedback on the core idea: does a dollar budget feel like a useful way to control how much research gets done? Do the sources and research notes help you decide what to trust?<\/p>\n<\/p>\n<p>If you have a question where missing information could cost more than the research, leave it below. We\u2019ll run a few in public today.<\/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=\"comment-item\">\n<div class=\"comment-content\">\n<p>dollar budget as the stopping primitive is a genuinely clean idea, most research tools just stop when the output sounds confident rather than when it&#8217;s actually verified. one thing I didn&#8217;t see covered &#8211; when two sources genuinely disagree on a claim and the budget isn&#8217;t there to fully resolve it, does the final report surface that disagreement explicitly, or does it pick a side (majority source, more authoritative domain, etc) and present one answer? for a cited research tool I&#8217;d actually want to see the unresolved conflict called out rather than smoothed over<\/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\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Thanks for asking, this is something we feel very strongly about. Yes, Webhound surfaces the disagreement. It will usually try to resolve it by checking primary records, publication dates, methodology, and independent evidence.<\/p>\n<\/p>\n<p>If it does find one source more credible, it gives its conclusion and explains why, while still surfacing all the conflicting information it found. If the conflict remains unresolved, it shows both sides and marks the claim as uncertain. You can click into any claim to see each source that contributed to it, the evidence it contributed, and the caveats.<\/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>Does it search only public websites, or can it also work with my own documents and internal knowledge base?<\/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\/@vijay_gorfad2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vijay_gorfad2<\/a>&nbsp;It can use private documents too. You can attach PDFs, documents, spreadsheets, or text files, and Webhound will use them as source material alongside public web research.<\/p>\n<\/p>\n<p>Through MCP, your agent can also pass Webhound material from systems it already has access to. For an internal knowledge base, you can save its API key or token under Secrets. Webhound can then call Notion, a database, or your own internal API during the run and use that information in its research.<\/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\">The transparency aspect really caught my attention. Is there a limit to how much of the research process and reasoning it actually exposes to the user?<\/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\/@harithavijayakumar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@harithavijayakumar<\/a>&nbsp;Thanks, and great question! On the agent side, you can inspect the chain of reasoning and every tool call. <\/p>\n<\/p>\n<p>In the report, you can open any claim to see the original source, exact supporting evidence, how Webhound found it, any potential caveats or biases, and its confidence score. You can also inspect the working documents from the run.<\/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 Product Hunt, I&#8217;m Theo, the other founder of Webhound.<\/p>\n<p>Since Moe has already covered a bunch about our product I wanted to give some of my (admittedly messy) thoughts on what I&#8217;ve learned from designing this more agent-facing version.<\/p>\n<p>Recently my cofounder and I have been noticing that a lot of our most consistent users are actually agents, and that share is only growing. As our discussions started to trend towards designing for agents, my question started to become: should we be?<\/p>\n<p>I don\u2019t think we should be designing for agents just yet. And this is not (entirely) because of my tendency to favor human centered design, but rather an attribution problem \/ thesis.<\/p>\n<p>When we talked to the users behind the agents with carte blanche to our product, we kept hearing \u201cI don\u2019t want to have to leave my second brain.\u201d Memory, context, and integrations are creating the same kind of lock-in as social graphs did with social media.<\/p>\n<p>Many founders I talk to are of the belief that this will change, and that we will all be using a bunch of different AI interfaces in the future. My counterpoint to that is to harken back to the myriad of apps I used to have on my iPod touch (in comparison to the 3-4 apps I use today, not even mentioning all of the hardware products that got condensed into the iPhone).<\/p>\n<p>This process of divergence in tools seems to happen every time a new technology explodes, and then we converge back to the single interface model.<\/p>\n<p>If we assume that people are going to be working from a single centralized interface, the model I start to think about is heavily reliant on the control surface, how human intent is injected into it, and what steps exist within that platform \/ tool that are beyond my view.<\/p>\n<p>When I talk about designing for agents, I am not talking about agents as the end users. As an HCI major I am still thinking about the human as the end user. There are just more layers of abstraction between human will and silicon execution. This is why I think it\u2019s important to factor the control surface into the mental model \/ think about where human goals \/ input enter the system.<\/p>\n<p>With that as the precedent, here are some of the more practical things I\u2019ve learned so far.<\/p>\n<p>For open ended tasks, budget can be a better stopping primitive than subjective completion criteria + an LLM as a judge (contractor).<\/p>\n<p>Memory and workspaces \/ file structure + integrations create lock in. Try to build something that requires users to leave their second brain as infrequently as possible.<\/p>\n<p>Error messages should be verbose and imply fixes. Since a lot of failures and behaviors sit on the user agent side, it can be hard to view these failure modes. Try to capture them with error logging.<\/p>\n<p>Define your rules of engagement \/ best practices for agents to interact with your tool \/ when to call.<\/p>\n<p>Don\u2019t block when you don\u2019t need to. Make state and status visible to avoid hangs \/ blocking the main agent.<\/p>\n<p>Onboarding should be an MCP endpoint and should be done through the user\u2019s agent. When they create a key, give the user a text prompt to copy to set up the MCP with their agent.<\/p>\n<p>In this prompt, ask the agent to state what environment it is in (Claude Code, Codex, etc), use that client\u2019s supported global MCP configuration unless the user wants it to be project level, save the exact server configuration you give it, call the health endpoint so that you don\u2019t have false positives for successful installs, and then call your onboarding endpoint.<\/p>\n<p>We\u2019ve found this works best when the onboarding endpoint returns steps serially and you ask the user\u2019s agent to keep calling \u201cnext step\u201d until it returns that there aren\u2019t any remaining.<\/p>\n<p>There is also intent monitoring, where you have tool search and can see what people are asking their agent for your tool to do. We decided against doing this because it felt too sketchy, but it is something we thought about.<\/p>\n<p>These are the learnings from a couple week deep dive and I hope they are useful to some of you, though I expect them to be relatively fleeting as the interface evolves.<\/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\/@theo_schmidt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@theo_schmidt<\/a>&nbsp;Hey Theo!<\/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 Webhound decide when to stop digging deeper versus continue researching, especially for open ended or ambiguous topics?<\/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\/@aymi_malik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aymi_malik<\/a>&nbsp;Good question. Research stops whenever it reaches the budget you set, rather than when the answer first sounds complete.<\/p>\n<\/p>\n<p>At our current rate, $1 corresponds to about 15 minutes of research, so a $5 budget keeps Webhound working for about 75 minutes. If the question deserves more work, you can add budget and keep going.<\/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>probe real submit pathBudget as the stopping rule makes sense, especially when another agent is waiting on the answer. The trust layer I\u2019d want is a short handoff note: what was checked, what was intentionally skipped, and which unresolved claims could change the decision if someone spends another hour.<\/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\/@krekeltronics\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@krekeltronics<\/a>&nbsp;Thanks. Yeah I think budget it the best option we have so far, unless we can find an indicator \/ primitive that is more representative of how much work has been done. Also yes, that is the information that is included in the handoff, although it can be hard to identify every &#8220;unknown unknown&#8221;<\/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>Interesting! That framing of budget-as-stopping-primitive is definitely worth attention. Most research tools stop when the prose sounds finished rather than when the work is actually done. Curious whether you guys plan the search tree up front and rank leads by expected payoff? Is it greedy step by step and just stops when the meter hits zero?<\/p>\n<\/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\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;Webhound plans coverage first, then revises the plan as sources reveal new leads. The executor works each batch, and the verifier can reopen weak or unsupported claims. The budget controls the run without locking Webhound into its initial plan or a greedy path.<\/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>How well does it handle complex prompts with multiple research objectives in a single request?<\/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\/@voyager21\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@voyager21<\/a>&nbsp;Very well! It turns every prompt into a research plan, breaks each objective into it&#8217;s own task, and gathers evidence for each one.<\/p>\n<p>The main constraint is the budget. A broad prompt with a small budget forces tradeoffs, so Webhound shows which objectives received less coverage and suggests follow-up research for the remaining gaps. You can also tell it which objectives matter most in the prompt.<\/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>Really like the &#8220;onboarding should be an MCP endpoint&#8221; framing \u2014 that serial next-step pattern is clean. One edge case I&#8217;d be curious about: if the health check passes but step 3 of 5 fails on a config mismatch, does the endpoint expect the agent to retry from that step, or restart the whole sequence? Partial-failure handling in a multi-step handshake like this seems like it&#8217;d need its own design pass separate from the happy path.<\/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\/@m_abdullah_ai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@m_abdullah_ai<\/a>&nbsp;Good question. The onboarding endpoint gives the agent a structured brief with the steps, checks, and completion criteria. The agent handles the execution.<\/p>\n<\/p>\n<p>If a configuration check fails, the agent reads the error, fixes the mismatch, reruns that check, and continues. It would only revisit an earlier step if the change invalidated something it had already completed. Agents can handle that recovery when you give them clear instructions and the right tools.<\/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 Webhound handle conflicting sources? If two credible references disagree on a fact does the report flag that discrepancy or try to weight one more heavily based on the research trail?<\/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\/@aiden_pearce7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aiden_pearce7<\/a>&nbsp;Webhound does both, depending on the evidence. It looks at where each claim originated, how current the information is, and whether primary records support it. If that gives Webhound a clear reason to trust one source more, the report uses that source and explains the choice. It will also flag the existence of the conflicting source in the report, with reasoning on why it chose not to use it.<\/p>\n<\/p>\n<p>If the evidence remains split, Webhound flags the discrepancy instead of forcing a conclusion. You can open the claim to see both sources, the evidence from each, and Webhound\u2019s confidence in its assessment.<\/p>\n<p>More budget gives it more time to look at as many possible conflicting sources as possible, and as a result more transparent coverage of the topic.<\/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 a $5 run hits a dead end early, does the user get to adjust the budget mid-stream or is it strictly set at the start?<\/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\/@freya_jensen_d\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@freya_jensen_d<\/a>&nbsp;Yes, you can increase the budget while Webhound is researching. You can also stop the run early if you no longer think the question deserves more work.<\/p>\n<\/p>\n<p>Having said that, we\u2019ve seen many examples of runs where the fourth or fifth lead got past what first looked like a dead 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>A nice direction, especially the cited reports angle. One thing that would make this more useful for me as a user: a way to pause a long-running agent and resume later without losing the work it has already done, plus an export to plain markdown or a Notion page so I can drop the output straight into my team&#8217;s knowledge base. Right now I worry about kicking off a multi-hour run and having it vanish if I close my laptop.<\/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>It would be really helpful to have a way to export the agent&#8217;s reasoning trace or intermediate findings, not just the final report. Sometimes I want to dig into how the agent arrived at a particular conclusion, especially when I&#8217;m using it for due diligence work where I need to show my 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>The budget dial is the right primitive. We maintain a pricing dataset where the answers change monthly and every number needs a source you can defend &#8211; and the failure mode of most research tools is a confident summary over dead or circular citations. If the reports really keep the working documents attached, that&#8217;s the part worth paying for: auditing the claim afterwards, not just reading 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The budget dial is a smart framing. Research has no natural finish line, and looking finished is exactly how a shallow answer slips through.<\/p>\n<\/p>\n<p>The thing I would want in the output is a fetch date on every source, so a report from last month can be re-checked instead of trusted forever. Does the dataset mode keep a timestamp per row?<\/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>makes sense, flagging the lack of evidence as a limitation instead of just going quiet is the right default. thanks for the answer<\/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 budget-based depth control is an interesting way to make research effort explicit. How does Webhound decide when a claim needs further verification, and can users inspect why the agent stopped researching a particular lead?<\/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>Moe \u2014 the disagreement-surfacing answer to Gal is solid. My research problem&#8217;s different though: federal contract award data and past-performance records aren&#8217;t scattered across the open web, they&#8217;re stuck behind a clunky government portal with no public API or real search. Does Webhound handle sources like that, or is it built for open-web research?<\/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\/@medal411\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@medal411<\/a>&nbsp; Right now, Webhound works best with open-web sources and services reachable through an API. You can save credentials for APIs you have access to. A government portal with no usable API or indexable pages is a limitation today, and support depends on the portal.<\/p>\n<p>Which systems are you using, and which records do you need from them? Federal procurement data is something we\u2019d look at building direct support 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<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The dollar budget is a clever constraint, but the stronger idea might be making research depth explicit. Most tools hide the stopping decision behind a confident-looking paragraph. Here, at least, I can decide whether a question deserves five dollars or five minutes. I like that \u201cnot enough evidence\u201d can be a valid output.<\/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\/@ra5tadark\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ra5tadark<\/a>&nbsp;Thanks Rasulz! Completely agree, \u201cnot enough evidence\u201d should be a valid result. Webhound keeps its sources, limitations, and unresolved claims visible, so you can still see what the budget established when the research results are uncertain.<\/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>Budget as the stopping primitive answers how much, and there&#8217;s a second question sitting under it: how much does the same $5 vary? Two runs on one question at one budget follow different leads, and an agent that follows leads is path-dependent by construction \u2014 whichever source it happens to open early reshapes everything after it. The report is a function of the budget and of which door it went through first.<\/p>\n<p>That lands hardest exactly where Clemente was pointing, on the MCP path. A human feels a thin answer and re-runs it. An agent takes the first report as ground truth. I do eval work on my own app&#8217;s generated output, and the number that changed how I ship wasn&#8217;t the average score \u2014 it was the spread across identical inputs. The mean looked healthy for weeks while the bottom of the distribution was quietly unusable.<\/p>\n<p>Have you measured that spread on a fixed question and budget? And does the per-claim confidence score reflect run-to-run stability, or only the evidence inside the single run that produced 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@narek_keshishyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@narek_keshishyan<\/a>&nbsp;This is a very salient point and yes, there definitely is a large path dependent variance with seemingly silent failure modes. One interesting thing is that it tends to decrease as budget increases. I haven&#8217;t done enough measurement of the stability of confidence scores, but from the few tests I have run in the space they seem pretty stable in spite of not explicitly pulling anything on the run-to-run scale.<\/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>Depth over speed is a refreshing pitch when everything else is racing to answer in two seconds. Exposing budget as the control on research quality is smarter than hiding it behind a vague quality slider. When it builds a dataset rather than a report, how does it handle two sources that contradict each other, does the row keep both values or does the agent pick 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@adamkamaneh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adamkamaneh<\/a>&nbsp;by default the agent will pick one, but the cell level sourcing will tell you that there were contradicting sources. However, if you specify in your prompt, contradictions can be handled however you want (include all answers with confidence scores for example).<\/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 looks useful, I lose hours copying company details off websites into a spreadsheet by hand. Having the choice between a clean dataset and a fully cited report covers pretty much every research job that lands on my desk. If I ran the same query again next month, would it give me a fresh dataset I could diff against the old one to see what changed?<\/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\/@doganakbulut\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@doganakbulut<\/a>&nbsp;Yes. A rerun creates a fresh sourced dataset using current information. We don&#8217;t have a native one-click diff view today, but you can export both runs or have your agent compare them through MCP or the API. Each cell keeps its source and extraction time, so you can audit why a value changed.<\/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 <\/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\/@madalina_barbu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madalina_barbu<\/a>&nbsp;Thank you, Madalina! Appreciate the 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>I&#8217;d love to see how Webhound handles edge cases, like sources with paywalls or outdated information. How do the research agents adapt to these challenges?<\/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\/@aymnart\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aymnart<\/a>&nbsp;Webhound does not cite a page it could not inspect. When it hits a paywall, it looks for an accessible primary source or open version; if none exists, it flags the gap. You can also give it an API key if you&#8217;re already paying for the source, and it can access it programatically. For stale information, it checks publication dates and current primary records while preserving conflicts it finds.<\/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 see that this is positioned as the &#8220;research engine&#8221; behind your AI agent, but it wasn&#8217;t clear to me how this is different than getting the frontier model to do deep research and continually prompting it to continue researching after the default stopping point. <\/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\/@rich_sun\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rich_sun<\/a>&nbsp;It is different, but not entirely, especially now with \/goal and the likes&#8211; you are right to make the association. I would say some of the biggest differences stem from  Webhound being a multi agent system where the chain of thought, artifacts, and memory are designed around web research.<\/p>\n<p>That being said, I also personally don&#8217;t want to be constantly prompting my frontier model to dig deeper&#8211; I want to be able to tell it how much compute to use and have it come back once it has finished, not earlier. <\/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\">I am curious to learn what inspired your idea.<\/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\/@ishwarjha\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ishwarjha<\/a>&nbsp;I kept trying to use coding agents to run research, and it felt like I had to manually force them to keep digging deeper and deeper, and even then they rarely ever got past a shallow pass of what&#8217;s out there. We built Webhound so that I could decide how much work the research needed at the start, then let it cook. It&#8217;s built on top of our harness which is specifically made for research, so it goes way deeper than anything else out there.<\/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>Budget as the stopping rule makes sense, especially when another agent is waiting on the answer. The trust layer I\u2019d want is a short handoff note: what was checked, what was intentionally skipped, and which unresolved claims could change the decision if someone spends another hour.<\/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\/@krekeltronics\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@krekeltronics<\/a>&nbsp;Totally agree! Both the MCP handoff and the web app include the output, working documents, claims, sources, limitations, and structured completion recommendations with suggested follow-up budgets. The end user can see what remains thin and decide whether more work is worth the cost.<\/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 budget-as-stopping-primitive idea makes sense to me. curious about the opposite failure mode though &#8211; what happens when a topic just doesn&#8217;t have much written about it, like an internal process at a small company or something too new to have coverage. does it recognize early that more budget won&#8217;t surface anything and stop, or does it keep spending trying to find sources that don&#8217;t exist? that seems like the case where the dial wouldn&#8217;t actually save you money.<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;Good question. Today, Webhound continues until the budget is used unless you stop it. A few failed searches do not prove that nothing exists; we\u2019ve seen apparent dead ends break after multiple failed approaches.<\/p>\n<\/p>\n<p>It changes tactics instead of repeating the same search. If evidence remains sparse, the report shows what it tried and flags the lack of evidence as a limitation. For private topics, you would need to give it access to the relevant internal sources.<\/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, Moe.<br \/>Webhound is tackling a really interesting problem with AI research the stopping problem is definitely something that gets overlooked. I especially like the idea of using a dollar budget as a research primitive instead of letting agents run indefinitely. I will defiently try 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@neha_8\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@neha_8<\/a>&nbsp;Thanks a lot! Let me know if you have any 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<\/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\">#5<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/W2RTSYZ2NVMVFH\" class=\"app-title\">Robynn AI<\/a><\/p>\n<div class=\"one-liner\">Websites that improve and heal with self-learning<\/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>Robynn AI\u662f\u4e00\u6b3e\u8fde\u63a5\u73b0\u6709\u7f51\u7ad9\u3001\u65e0\u9700\u91cd\u5efa\u8fc1\u79fb\uff0c\u5373\u53ef\u901a\u8fc7AI\u4ee3\u7406\u6301\u7eed\u5ba1\u8ba1\u3001\u4fee\u590d\u3001\u6d4b\u91cf\u5e76\u4f18\u5316\u7f51\u7ad9\u6027\u80fd\u7684\u667a\u80fd\u8fd0\u8425\u5de5\u5177\uff0c\u89e3\u51b3\u7f51\u7ad9\u4e0a\u7ebf\u540e\u6301\u7eed\u8870\u8d25\uff08\u5982\u6b7b\u94fe\u3001\u9875\u9762\u9648\u65e7\u3001\u6392\u540d\u4e0b\u6ed1\uff09\u7684\u6838\u5fc3\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\/9587486c-2cd6-4995-a2bd-325378e4621e.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\/c02bd7d6-0732-4b5e-a505-1d60c31e3959.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\/151239aa-f01a-4a47-b80a-adb095a74657.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\/2f83ee4e-4059-4aa9-8551-22d716338e70.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\/73e4dc04-f3f4-4611-a146-32eb9672cd6e.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\/8d759982-40a2-41fe-a8aa-eb615614f7ec.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\/5b260002-28d8-4b54-a826-11be007b7013.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/fSzgVyVfQRs\"><source src=\"https:\/\/youtu.be\/fSzgVyVfQRs\" 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\">SEO<\/span><br \/>\n            <span class=\"tag\">Website Builder<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7f51\u7ad9\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u7f51\u7ad9\u81ea\u52a8\u4fee\u590d<\/span><br \/>\n            <span class=\"tag\">SEO\u5ba1\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u54c1\u724c\u4e00\u81f4\u6027<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u8870\u51cf<\/span><br \/>\n            <span class=\"tag\">Google Analytics\u95ed\u73af<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u65e0\u8fc1\u79fb\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u7f51\u7ad9\u6301\u7eed\u8fd0\u8425<\/span><br \/>\n            <span class=\"tag\">AI\u7f16\u8f91\u5668<\/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\u201c\u6307\u5411\u5143\u7d20\u81ea\u7136\u8bed\u8a00\u4fee\u6539\u201d\u5de5\u4f5c\u6d41\u548c\u201cGA\u6d4b\u91cf\u81ea\u52a8\u56de\u6eda\u201d\u95ed\u73af\u3002\u7591\u95ee\u805a\u7126\u4e8e\uff1a\u5ba1\u8ba1\u5bf9ChatGPT\u7b49AI\u641c\u7d22\u53ef\u89c1\u6027\u7684\u6df1\u5ea6\uff1b\u54c1\u724c\u8bed\u8c03\u4e00\u81f4\u6027\u63a7\u5236\uff1b\u53d8\u52a8\u6548\u679c\u5224\u65ad\u9608\u503c\u53ca\u6d41\u91cf\u4f4e\u65f6\u7684\u566a\u58f0\u95ee\u9898\uff1b\u5ba1\u6279\u7c92\u5ea6\uff08\u5f53\u524d\u4e3a\u9875\u9762\u7ea7\uff09\uff1b\u56de\u6eda\u89e6\u53d1\u6761\u4ef6\u53ca\u7b49\u5f85\u7a97\u53e3\uff08\u5f53\u524d7\u5929\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                Robynn AI\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u6ca1\u6709\u9677\u5165\u201cAI\u5efa\u7ad9\u201d\u7684\u6df7\u6218\uff0c\u800c\u662f\u7cbe\u51c6\u5207\u5165\u4e86\u201c\u8001\u7f51\u7ad9\u7ef4\u62a4\u201d\u8fd9\u4e2a\u6bd4\u201c\u5efa\u4e00\u4e2a\u65b0\u7ad9\u201d\u66f4\u75db\u82e6\u3001\u66f4\u9ad8\u9891\u3001\u5229\u6da6\u66f4\u8584\u7684\u6c89\u9ed8\u5e02\u573a\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u662f\u201c\u505a\u5f97\u66f4\u597d\u201d\uff0c\u800c\u662f\u201c\u6301\u7eed\u6d3b\u7740\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u6765\u770b\uff0c\u4ea7\u54c1\u4eae\u70b9\u4e5f\u6070\u662f\u5b83\u7684\u8f6f\u808b\u3002\u9996\u5148\uff0c\u201c\u8fde\u63a5\u73b0\u6709\u7f51\u7ad9\u201d\u7684\u8f7b\u91cf\u5316\u627f\u8bfa\u542c\u8d77\u6765\u5f88\u7f8e\uff0c\u4f46\u73b0\u5b9e\u4e2d\uff0c\u5bf9\u4e8e\u4e0d\u5728WordPress\u6216Shopify\u751f\u6001\u7684\u5b9a\u5236\u7ad9\uff0c\u901a\u8fc7\u201c\u690d\u5165\u51e0\u884cJavaScript\u201d\u6765\u89e3\u51b3\u5168\u5c40UI\/UX\u6539\u52a8\uff0c\u5b58\u5728\u5de8\u5927\u7684\u517c\u5bb9\u6027\u548c\u6027\u80fd\u98ce\u9669\uff0c\u6280\u672f\u58c1\u5792\u8fdc\u6bd4\u63cf\u8ff0\u5f97\u9ad8\u3002\u5176\u6b21\uff0c\u95ed\u73af\u903b\u8f91\u4f9d\u8d56GA\u6570\u636e\uff0c\u4f46SEO\u6548\u679c\u662f\u5178\u578b\u7684\u957f\u5468\u671f\u3001\u6df7\u6742\u53d8\u91cf\u7684\u4e8b\u4ef6\u30027\u5929\u7a97\u53e3\u671f\u5bf9\u4e8e\u9ad8\u6d41\u91cf\u7ad9\u70b9\u5c1a\u53ef\uff0c\u800c\u5bf9\u5360\u7edd\u5927\u591a\u6570\u7684\u957f\u5c3e\u5c0f\u7ad9\uff0c\u5355\u6b21\u6d41\u91cf\u6ce2\u52a8\u53ef\u80fd\u662f\u566a\u97f3\u800c\u975e\u4fe1\u53f7\uff0c\u5f3a\u884c\u81ea\u52a8\u56de\u6eda\u53cd\u800c\u53ef\u80fd\u5f15\u53d1\u201c\u7cfb\u7edf\u6296\u52a8\u201d\uff0c\u8ba9\u7f51\u7ad9\u9677\u5165\u201c\u4fee\u590d-\u56de\u6eda-\u518d\u4fee\u590d\u201d\u7684\u6b7b\u5faa\u73af\u3002\u6700\u540e\uff0c\u4f5c\u4e3a\u524dCMO\u9a71\u52a8\u7684\u4ea7\u54c1\uff0c\u5176\u5185\u7f6e\u7684\u201c\u8425\u9500\u5b9e\u8df5\u201d\u662f\u4e00\u628a\u53cc\u5203\u5251\u2014\u2014\u5b83\u80fd\u751f\u4ea7\u5408\u683c\u7684\u5185\u5bb9\uff0c\u4f46\u53ef\u80fd\u627c\u6740\u5dee\u5f02\u5316\u3002\u5f53\u6240\u6709AI\u90fd\u57fa\u4e8e\u7c7b\u4f3c\u7684\u201c\u6700\u4f73\u5b9e\u8df5\u201d\u53bb\u4f18\u5316\u54c1\u724c\u8c03\u6027\u65f6\uff0c\u5b83\u4eec\u8f93\u51fa\u7684\u6700\u7ec8\u4f1a\u8d8b\u4e8e\u5e73\u5eb8\u7684\u201c\u673a\u5668\u4eba\u98ce\u683c\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                Robynn\u771f\u6b63\u6709\u4ef7\u503c\u7684\u4ea7\u54c1\u62a4\u57ce\u6cb3\uff0c\u5728\u4e8e\u5176\u201c\u54c1\u724c\u4e66\u201d\uff08Brand.md\uff09\u548c\u81ea\u5b66\u4e60\u56de\u8def\uff0c\u8fd9\u8d4b\u4e88\u4e86AI\u57fa\u4e8e\u4e0a\u4e0b\u6587\u201c\u8bb0\u5fc6\u201d\u7684\u80fd\u529b\u3002\u4f46\u76ee\u524d\u6765\u770b\uff0c\u5b83\u66f4\u50cf\u4e00\u4e2a\u9ad8\u7ea7\u7684\u3001\u5e26\u81ea\u52a8\u64a4\u9500\u529f\u80fd\u7684A\/B\u6d4b\u8bd5\u5de5\u5177\uff0c\u800c\u975e\u771f\u6b63\u7684\u7f51\u7ad9\u201c\u4e3b\u6cbb\u533b\u751f\u201d\u3002\u5bf9\u4e8e\u9884\u7b97\u6709\u9650\u3001\u4eba\u624b\u4e0d\u8db3\u7684\u5c0f\u56e2\u961f\u548c\u4e2d\u5c0f\u578b\u7535\u5546\uff0c\u5b83\u80fd\u89e3\u51b3\u201c\u6ca1\u4eba\u7ba1\u201d\u7684\u71c3\u7709\u4e4b\u6025\uff0c\u4f46\u82e5\u671f\u671b\u51ed\u6b64\u5b9e\u73b0\u7f51\u7ad9\u8d28\u7684\u98de\u8dc3\uff0c\u53ef\u80fd\u8fd8\u9700\u8981\u66f4\u6210\u719f\u7684\u5f52\u56e0\u6a21\u578b\u548c\u5bf9\u590d\u6742\u573a\u666f\u7684\u5bb9\u9519\u80fd\u529b\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\">Robynn AI<\/span>\n                <\/div>\n<div class=\"comment-content\">Your website starts decaying the day it ships. Broken links, stale pages, slipping rankings, invisible to ChatGPT. Robynn connects to your live site \u2014 no rebuild, no migration. It audits every page against your brand, ICP, and competitors, then proposes evidence-backed fixes. Point at any element, describe a change in plain English. Agents stage it, you approve, Robynn publishes and measures what moved in GA. Wins get reinforced. Regressions roll back. First audit is free.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Point at an element, describe the fix in plain English, that workflow alone would save me hours every week.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>37<\/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\/@sulemna_ola\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sulemna_ola<\/a>&nbsp;Yes, plus you don&#8217;t have to migrate your site. It stays in its place.<\/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 &#8220;invisible to ChatGPT&#8221; concern is real for me right now. I run a small content site, and I&#8217;ve noticed referral traffic from AI search growing while my usual SEO metrics stay flat. Curious how deep Robynn&#8217;s audit goes on that front.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>37<\/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\/@nancy_philip\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nancy_philip<\/a>&nbsp;list it on bing \ud83d\ude09<\/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\/@nancy_philip\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nancy_philip<\/a>&nbsp;ChatGPT and perplexity etc also use SEO principles to rank sites and it looks at weighs human generated content from Reddit etc higher. Robynn looks at what is being cited and offers recommendations to improve the visibility for those and other data points.<\/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&#8217;m curious how it handles brand voice specifically. My site has a pretty distinct tone, and I don&#8217;t want fixes that flatten it.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>30<\/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\/@ramish_saje\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ramish_saje<\/a>&nbsp;Robynn builds a brand book initially (voice, tone, design tokens) and any new generation is in that voice. For content including images anything Robynn does always stick to that brand book (aka brand.md) but users can override with sub-brands and personal style at point of generation.<\/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\/@ramish_saje\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ramish_saje<\/a>&nbsp; see example. We build a brand context first seeded with public knowledge then you the user can steer it and put it on auto-reflections mode. This is what is used for all recommendations and other tasks in the platform<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/9351de91-c4be-442d-8e6a-baf715e535b2.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>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\">How does Robynn decide whether a change genuinely improved performance before reinforcing it?<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>26<\/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;You connect your google analytics at each page so any change is measured against a set goal for example, organic traffic, form fills etc.<\/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 this isn&#8217;t positioned as a redesign tool. Most of my site doesn&#8217;t need a redesign, it needs someone paying attention to it consistently, which I haven&#8217;t had time to do myself. If the audit genuinely benchmarks against my actual competitors rather than generic best practices, that&#8217;s the difference between useful and just noise.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>24<\/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 the first pitch I&#8217;ve read that treats website upkeep as ongoing care instead of a one-time project.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>23<\/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\/@lanfranco_iwanaga\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lanfranco_iwanaga<\/a>&nbsp;thanks. Yes, thats the learning from working in tech for 2 decades as a former CMO\/PM. Companies rarely change their website stacks by creating new ones<\/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>he part that caught me is the rollback on regressions. I&#8217;ve used tools that let you publish changes but never actually track if they helped or hurt. Measuring against GA and reversing bad calls is the real differentiator here.<\/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\/@kimberly_west\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kimberly_west<\/a>&nbsp;thanks. The platform is built on a very opinionated marketing practices (based on my former CMO learnings). In marketing agents should <strong>never<\/strong> do 100% of the work &#8211; only 90% of grunt work so marketers add the true taste and judgement. Second, strong feedback loops that lead to better learnings and reflections over time<\/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 agency and stale pages are my biggest headache, clients ship a site, then forget it exists. What I like about it is the &#8220;no rebuild, no migration&#8221; promise. Most audit tools want you to move platforms first. Does it work across custom-built sites or mainly on standard CMS platforms like WordPress?<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@grayson_carter3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@grayson_carter3<\/a>&nbsp;Wordpress and Shopfiy have direct connectors so also supports new pages in same brand design. For all others we host the changes then give you a few lines of javasscript to install on your website and once you do, your visitors automatically start seeing the changes.<\/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&#8217;ve tested a handful of &#8220;AI website&#8221; tools over the past year, and most either overpromise or require a full migration before they&#8217;re useful. It connecting directly to a live site is a smart call. My question is around approval, when you say &#8220;agents stage it, you approve,&#8221; how granular is that review? Can I approve individual copy changes separately from structural ones, or is it all-or-nothing per page?<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@david_grunwald1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@david_grunwald1<\/a>&nbsp;Right now it is a per page level.<\/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>Broken links and slipping rankings are exactly what quietly kill a website. Glad someone&#8217;s building for that specific problem.<\/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<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey Product Hunt! \ud83d\udc4b Madhukar here, co-founder of Robynn.<\/p>\n<p>My co-founder, Rafiq and I both worked at Interwoven, the company behind the first generation of web content management (TeamSite\/LiveSite \u2014 still running inside OpenText decades later). That generation made websites possible to publish. But it froze an assumption in place: a website is a project with an end date. Launch day is the finish line, and then the site quietly decays \u2014 broken links, stale pages, rankings that slip, and now invisibility in ChatGPT answers nobody is watching for.<\/p>\n<p>Big companies solve this with people: web engineers, agencies, SEO retainers. Small teams get a to-do list that never shrinks. Robynn is that engineering muscle for every marketing team. Connect your existing site (no rebuild, no migration), get a continuous diagnosis against your brand and ICP, point at anything and describe the change in plain English. Agents rewrite and stage it; nothing goes live until you approve. Then we measure what moved in GA \u2014 wins get reinforced, regressions roll back.<\/p>\n<p>The design principle we won&#8217;t budge on: the machine does the labor, you keep the judgment. The first diagnosis is free and takes minutes. Would love your feedback \u2014 I&#8217;ll be here all day answering questions!<\/p>\n<p>PS: A quick note about pricing. When you sign up you get 300 free credits. Reach out to me over DM on LinkedIn or X if you are interested in more and we are happy to add more if you need them.<\/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\/@madhukar_kumar1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madhukar_kumar1<\/a>&nbsp;Congrats on the lauch! After trying it out, I found it very useful! Robynn AI helped me identify details I often overlook during web development, making it an excellent tool for refining website construction.<\/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\/@madhukar_kumar1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madhukar_kumar1<\/a>&nbsp;I like that changes are staged before going live. How long does it usually take before users can see whether a change actually worked?<\/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>Staging changes for approval before anything publishes is the detail that makes this usable on a real site, auto publishing would have been a hard no for me. Closing the loop through Google Analytics and rolling back regressions on its own is a nice touch. What actually triggers a rollback, is there a minimum traffic threshold before it decides a change hurt performance?<\/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\/@adamkamaneh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adamkamaneh<\/a>&nbsp;Yes you can set a goal at each page that is measurable like organic traffic, bounce rate etc. If the results are negative it triggers learning and rollback.<\/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 &#8220;website starts decaying the day it ships&#8221; framing is painfully accurate. as someone preparing a product launch, I know how quickly pages, copy, links, SEO, and docs can fall behind once the team moves on to the next thing. I like that Robynn works on the existing site instead of forcing a rebuild, and the stage -&gt; approve -&gt; measure -&gt; rollback loop feels like the right balance between automation and control. Curious how it decides which changes are actually worth proposing instead of turning every small issue into more work for the team \ud83d\ude42<\/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\/@andrasczeizel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrasczeizel<\/a>&nbsp;We built our agent with a lot of learnings from my own personal career as a CMO (and former PM) that is now codified into its skills and workflow. In addition, recently we added a self-learning loop at the org level. As you use it for other things like content generation or even campaigns, those rules and reflections are put back into website recommendations.<\/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 wins-get-reinforced, regressions-roll-back loop is the interesting part to me. GA signal is noisy and slow, especially for a lower-traffic site where a real ranking or conversion shift can take weeks to separate from normal variance. how long does Robynn wait before it calls a change a win or a regression, and does that window scale with the site&#8217;s traffic volume so a small site doesn&#8217;t get a false rollback from noise alone<\/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\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Right now it is 7 days per change. We are also adding PostHog as an analytics\/events collection and measurement.<\/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! I ran my site through the free audit, and the findings were clear and actionable.<\/p>\n<p>SEO audits themselves are already a crowded space, so for me the most interesting part is the closed loop: diagnosing an issue, staging the actual change, publishing it after approval, measuring the result, and rolling it back if performance drops.<\/p>\n<p>That could make Robynn much more useful than another checklist or SEO score. I\u2019d be curious to learn how you isolate the impact of a specific change from seasonality, campaigns, or other updates happening on the website at the same time.<\/p>\n<p>Great execution and a very polished experience!<\/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\/@andrey_ivanchenko\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@andrey_ivanchenko<\/a>&nbsp;thank you. We look at each data point from the point of view of the org&#8217;s growth cortex aka org context and all changes today rely on one measurable goal (not multi-variate). In the future we plan to add multi-variate analysis as well but requires a lot more learning data <\/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 rollback is the part that got me. Most of these stop at telling you what&#8217;s wrong, which just hands you another backlog. Closing the loop is the hard half &#8211; and once reverting is automatic you don&#8217;t have to be right about any single change, just reversible. That&#8217;s the whole trick.<\/p>\n<\/p>\n<p>One thing I&#8217;d want: a holdout. I run a metrics dashboard for my own stuff and got burned by this recently &#8211; download numbers are weekday-driven, weekends run 40-60% below midweek, so every Monday looks like a win and every Saturday looks like a regression. Nothing to do with anything I shipped. Without a control slice you end up reinforcing the calendar.<\/p>\n<\/p>\n<p>Congrats on the launch.<\/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\/@ryan_davis23\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryan_davis23<\/a>&nbsp;As a former CMO I looked at a lot of dashboards that were un-actionable. My goal is to connect the analytics to action in a tight feedback loop at the web page level.<\/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>Nice launch. We have no web engineer and our site slowly rots, broken links and pages nobody has touched in a year, so a free audit that runs in minutes is tempting. Pointing at an element and describing the change in plain English sounds much better than filing a ticket and waiting. Does it work on a site built in a visual builder like Webflow, or does it need direct access to the code?<\/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\/@doganakbulut\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@doganakbulut<\/a>&nbsp;Publish works through a pixel install (a few lines of js you need to install on your website) but we are also building a direct connector to Webflow and Framer next<\/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 believe the first free audit is a smart way to build trust. Real findings often convience people fatser than promises. What are the most common issues discovered during those first audits? <\/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\/@donna_gerrard\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@donna_gerrard<\/a>&nbsp;We will publish a report but for now we see a lot of broken forms and missing meta data and some keyword cannabalizations across slightly older sites. <\/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>Continuous improvement feels much more realistic than treating websites as one-time projects. \ud83d\udc4f Do you have plans for multiple websites? <\/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\/@iamanantgupta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@iamanantgupta<\/a>&nbsp;Yes, we do support multiple websites out of the box.<\/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 rollback on regressions is underrated. Plenty of tools help you publish changes but almost none actually admit when a change didn&#8217;t work and undo 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the rollback part is what caught my eye. it&#8217;d be really cool if u could also explain <em>why<\/em> a change got rolled back so teams can actually learn from it instead of just seeing &#8220;it didnt work.&#8221;<\/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\/@ishm6m\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ishm6m<\/a>&nbsp;Yes of course<\/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 email digest with a default-publish timeout is a fair middle ground honestly, at least it forces someone to actively ignore it rather than never seeing it at all. curious if the digest highlights which changes are lower-risk copy tweaks vs actual layout\/pricing changes, since I&#8217;d guess most of the rubber-stamping risk comes from lumping trivial and consequential changes into one daily email<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;Not right now but we will add this. Thank you for the feedback \ud83d\ude4f<\/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><a href=\"https:\/\/www.producthunt.com\/@madhukar_kumar1\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"madhukar_kumar1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madhukar_kumar1<\/a> How quickly do customers usually notice measureable improvements after deploment?<\/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\/@hana_salazars\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hana_salazars<\/a>&nbsp;Usually 7 days to know if\/what direction has data moved before next iteration.<\/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. Sounds like a great product. A couple of quick questions though. Does it support split testing and CRO? I know you can&#8217;t &#8220;split test&#8221; for SEO but other on-page elements and UX are also very important. Also how do you connect your website, do you have a WP plugin that makes it easy?<\/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\/@jn263\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jn263<\/a>&nbsp;We don&#8217;t have a split testing yet (on roadmap). Today you can set a goal at page level that is measurable against web analytics (traffic, bounce rates, form fills etc.). The recommendations and actions are looped against the goals you choose. <\/p>\n<p>In terms of website connect. Today we have 2 direct connectors &#8211; WordPress and Shopify (webflow and framer coming next). For everything else we provide a few lines of javascript that you can install on your website and it automatically shows the improved content at render time. Feel free to sign up and request additional credits (DM me) and we are happy to answer\/help with additional requests.<\/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 approve-before-publish step is the part I&#8217;m skeptical of, not the audits themselves. for a small team that&#8217;s already stretched thin, isn&#8217;t that approval queue going to turn into a rubber stamp after the first few weeks, the same way cookie banners and permission prompts do once people get used to clicking through them. if that happens the whole you keep the judgment pitch quietly stops being true even though the UI still shows an approve button.<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;Yes there is that risk but the alternate of having agents directly make changes and publish on your behalf without human intervention imo is far more risky. A middle ground is it can tell you the changes it is going to make every day by email and if you dont respond it publishes on its own but still edgy tbh<\/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 rollback feature immediately builds confidence. Nobody wants AI publishing changes without a safety net. \ud83d\ude00<\/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>It&#8217;s refreshing to see AI focused on maintaining websites instead of just helping people build them. Too many websites become outdated as soon as they go live. <\/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\/@divya_kothari1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@divya_kothari1<\/a>&nbsp;Thanks. Yes, our goal is to not have users rip and replace what they already have. We know what that entails especially for established companies.<\/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 Robynn distinguish between temporary ranking fluctuations and changes that actually need intervention?<\/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\/@ankur_jeswani\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ankur_jeswani<\/a>&nbsp;We simply look at the web analytics metrics every 7 days.<\/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 often see sites with outdated privacy policy and copyright pages. Robynn could now take care of these \ud83d\ude00 <\/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\/@himani_sah1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@himani_sah1<\/a>&nbsp;Yes. <\/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>As someone who is not a marketer but loves to blog and has a personal website, I would like to try Robynn to increase traffic to my blog, I am tired of Linkedin as a way to share my writings, I would like something that persists. I would like people to read my blog six months after I have posted it, and hopefully Robynn can help me with better SEO and GEO rankings, does it do that? <\/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\/@mani_pande\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mani_pande<\/a>&nbsp;Yes, one of the goals is to increase searchability and visibility of sites.<\/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\">#6<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/R3HSYEBN3DTVVZ\" class=\"app-title\">superfile<\/a><\/p>\n<div class=\"one-liner\">A modern, visual file manager for the terminal<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">170<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Superfile \u662f\u4e00\u6b3e\u5728\u7ec8\u7aef\u4e2d\u63d0\u4f9b\u591a\u9762\u677f\u3001\u5b9e\u65f6\u9884\u89c8\u548c\u952e\u76d8\u9a71\u52a8\u64cd\u4f5c\u7684\u53ef\u89c6\u5316\u6587\u4ef6\u7ba1\u7406\u5668\uff0c\u89e3\u51b3\u5f00\u53d1\u8005\u9891\u7e41\u5207\u6362\u76ee\u5f55\u65f6\u6548\u7387\u4f4e\u3001\u7f3a\u4e4f\u4e0a\u4e0b\u6587\u611f\u77e5\u7684\u75db\u70b9\uff0c\u8ba9\u7ec8\u7aef\u6587\u4ef6\u7ba1\u7406\u50cf\u684c\u9762\u7aef\u4e00\u6837\u76f4\u89c2\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\/7d5b519b-8b22-4837-803d-c56515ee1db9.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\/992eb3d8-08b0-4ea8-97c4-858fb6acbf83.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\/3fb20bed-8cf2-4e24-b0fd-8c67009b2850.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\/db815286-8a2e-4fd0-ac17-142af7c947fb.gif?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\">Productivity<\/span><br \/>\n            <span class=\"tag\">Open Source<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u7ec8\u7aef\u6587\u4ef6\u7ba1\u7406\u5668<\/span><br \/>\n            <span class=\"tag\">TUI\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u591a\u9762\u677f<\/span><br \/>\n            <span class=\"tag\">\u952e\u76d8\u9a71\u52a8<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u9884\u89c8<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u6548\u7387<\/span><br \/>\n            <span class=\"tag\">\u6587\u4ef6\u64cd\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u7f8e\u5316<\/span><br \/>\n            <span class=\"tag\">\u547d\u4ee4\u884c\u66ff\u4ee3<\/span><br \/>\n            <span class=\"tag\">\u6587\u4ef6\u6d4f\u89c8<\/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\u591a\u9762\u677f\u548c\u9884\u89c8\u529f\u80fd\uff0c\u4e3b\u8981\u95ee\u9898\u96c6\u4e2d\u5728\uff1a\u5927\u91cf\u6587\u4ef6\u76ee\u5f55\u4e0b\u7684\u6027\u80fd\u3001SSH\u5ef6\u8fdf\u573a\u666f\u7684\u6e32\u67d3\u6d41\u7545\u5ea6\uff1b\u5efa\u8bae\u5305\u62ecGit\u72b6\u6001\u96c6\u6210\u3001\u51b2\u7a81\u5904\u7406\u3001\u52a8\u6001\u6309\u952e\u91cd\u8f7d\u3001\u5b58\u50a8\u7ba1\u7406\uff08\u5927\u6587\u4ef6\/\u91cd\u590d\u6587\u4ef6\u67e5\u627e\uff09\u548c\u914d\u7f6e\u793e\u533a\u751f\u6001\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                Superfile \u5728\u201c\u7ec8\u7aef\u7f8e\u5316\u201d\u548c\u201c\u6548\u7387\u5de5\u5177\u201d\u7684\u4ea4\u6c47\u70b9\u4e0a\u7cbe\u51c6\u5361\u4f4d\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u5e76\u975e\u53d6\u4ee3 ls\/cd\uff0c\u800c\u662f\u5c06\u684c\u9762\u6587\u4ef6\u7ba1\u7406\u7684\u89c6\u89c9\u6d41\u7545\u5ea6\u4e0e\u7ec8\u7aef\u952e\u76d8\u539f\u6559\u65e8\u4e3b\u4e49\u7f1d\u5408\u2014\u2014\u591a\u9762\u677f+\u5b9e\u65f6\u9884\u89c8\u7684\u7ec4\u5408\u786e\u5b9e\u51fb\u4e2d\u4e86\u5f00\u53d1\u8005\u9891\u7e41\u8de8\u76ee\u5f55\u64cd\u4f5c\u3001\u538c\u6076\u9f20\u6807\u548cGUI\u5207\u6362\u7684\u75db\u70b9\u3002\u4f46\u8bc4\u8bba\u4e2d\u66b4\u9732\u7684\u786c\u4f24\u540c\u6837\u660e\u663e\uff1a\u6027\u80fd\u77ed\u677f\uff08\u4e07\u7ea7\u6587\u4ef6\u76ee\u5f55\u3001SSH\u5ef6\u8fdf\u573a\u666f\uff09\u76f4\u63a5\u51b3\u5b9a\u5b83\u80fd\u5426\u4ece\u201c\u672c\u5730\u73a9\u5177\u201d\u5347\u7ea7\u4e3a\u201c\u751f\u4ea7\u5de5\u5177\u201d\uff0c\u800c\u76ee\u524d\u56e2\u961f\u5bf9\u6781\u7aef\u573a\u666f\u7684\u4f18\u5316\u627f\u8bfa\u7f3a\u5931\u3002\u66f4\u81f4\u547d\u7684\u662f\uff0c\u5f53\u524d\u529f\u80fd\u4ecd\u505c\u7559\u5728\u201c\u6d4f\u89c8\u201d\u5c42\u9762\uff0c\u7f3a\u4e4f\u5b58\u50a8\u6e05\u7406\u3001\u51b2\u7a81\u5904\u7406\u3001Git\u72b6\u6001\u96c6\u6210\u7b49\u6df1\u5ea6\u5de5\u4f5c\u6d41\u652f\u6301\u2014\u2014\u8fd9\u4e9b\u624d\u662f\u7528\u6237\u201c\u6bcf\u5929\u7528\u201d\u800c\u975e\u201c\u5076\u5c14\u70ab\u201d\u7684\u58c1\u5792\u3002\u6b64\u5916\uff0c\u9ad8\u5ea6\u53ef\u5b9a\u5236\u7684\u6309\u952e\u5f15\u64ce\u548c\u793e\u533a\u914d\u7f6e\u751f\u6001\u7684\u7f3a\u5931\uff0c\u4f1a\u8ba9\u5b83\u50cf\u5176\u4ed6TUI\u5de5\u5177\u4e00\u6837\u9677\u5165\u201c\u53d1\u5e03\u5373\u9ad8\u5cf0\uff0c\u70ed\u5ea6\u540e\u6c89\u5bc2\u201d\u3002\u4ea7\u54c1\u65b9\u5411\u6b63\u786e\uff0c\u4f46\u82e5\u4e0d\u5728\u6027\u80fd\u5e95\u7ebf\u4e0a\u505a\u5230\u6781\u81f4\uff0c\u5e76\u5feb\u901f\u5207\u5165\u5f00\u53d1\u8005\u5b9e\u9645\u5de5\u4f5c\u6d41\uff08\u5982Git\u3001\u6279\u91cf\u64cd\u4f5c\u5b89\u5168\u3001\u5b58\u50a8\u6cbb\u7406\uff09\uff0cSuperfile \u5f88\u53ef\u80fd\u53ea\u662f\u53c8\u4e00\u4e2a\u201c\u622a\u56fe\u5f88\u7f8e\u201d\u7684\u7ec8\u7aef\u82b1\u74f6\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\">superfile<\/span>\n                <\/div>\n<div class=\"comment-content\">Superfile is a modern terminal file manager with a polished multi-panel interface, strong previews, and deep customization. It lets you browse, preview, and move files across panes the way a desktop file manager would, while staying fully keyboard-driven and fast.<\/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>Superfile brings a proper file-management workspace to the terminal.<\/p>\n<p>Run <em>spf<\/em> and you can keep several directories open at once, move files between panels, search quickly, handle bulk operations, and preview code or images without leaving the terminal.<\/p>\n<p>The interface is what makes it work so well. The layout is clear, the keyboard flow is easy to follow, and it already feels polished before you touch the config!<\/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\/@zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a>&nbsp;Congrats on the lauch! The multi-panel workflow looks great, but how do you prevent users from getting lost when several directories are open at once? Is there any plan to improve orientation or context awareness?<\/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>looks nice. one thing id be curious about is storage management. like can it help me find huge files, duplicate folders, old downloads, or other junk i dont need anymore? thats probably a workflow id use way more often than just browsing files.<\/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>the multi-panel + live preview combo is the part I&#8217;d actually use daily over plain ls\/cd. curious how it holds up in two scenarios that tend to break TUI file managers: a directory with tens of thousands of files (does listing and search stay snappy or does it need to index first), and running it over a laggy SSH connection where redrawing a rich UI can get janky compared to a bare-bones tool. those are the two things that&#8217;d decide whether this replaces my terminal workflow or just becomes a local-only nice-to-have<\/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>multi-panel plus real previews without leaving the terminal is genuinely the thing I miss from GUI file managers, nice to see it done keyboard-first instead of bolted on. question outside the performance stuff already asked &#8211; is there a shared theme\/config gallery or plugin registry forming around this, the kind of thing where people post their dotfiles setup. that ecosystem is usually what decides if a TUI tool becomes a daily driver people customize for years or just a neat launch that fades<\/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>Love seeing modern TUI tools get this level of polish <a href=\"https:\/\/www.producthunt.com\/@zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zac_zuo<\/a>! Breaking away from single-panel terminal navigation saves so much context-switching.<\/p>\n<p>For keyboard-heavy workflows, how flexible is the keybinding engine? Can users configure Vim-like modal navigation (like relative line jumps or custom motion macros between panes), and does config reloading happen dynamically on file save without needing to restart the session?<\/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 multi-panel workflow looks genuinely useful for moving between projects without leaving the terminal. How does superfile handle conflicts or interrupted operations when moving large batches of files between panels?<\/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>Congrats on the launch! The UI looks incredibly clean for a terminal tool. I&#8217;m always looking for ways to reduce context switching when navigating through different projects and repositories. Are there any plans to integrate Git status directly into the file views (like highlighting modified or untracked files)? That would be a massive time-saver. Upvoted! \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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;m already loving the way this looks even though I haven&#8217;t tried it out yet&#8230;. We need more TUI tools like 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<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The multi-panel preview that actually renders images, videos, and code side by side without breaking a sweat is exactly what makes this feel like a real desktop manager in the terminal. 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>This is awesome maybe I can push more friends to linux if they had this in the terminal xD<\/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 superfile brings a true multi-panel workspace to the terminal, keeping everything keyboard-driven means I never break flow to reach for the mouse.<\/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>been wanting a proper file manager that lives in my terminal and this actually delivers, the multi panel setup feels really natural to navigate<\/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 it. I still remember using Norton Commander back in the day. Or actually xtree, which I loved, and none of my friends could comprehend \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<\/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\/3FJJ4M5M5IRALN\" class=\"app-title\">Grok 4.5<\/a><\/p>\n<div class=\"one-liner\">SpaceXAI&#8217;s model for coding, agentic tasks &#038; knowledge work<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">151<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Grok 4.5 \u662f\u4e00\u6b3e\u4e13\u4e3a\u7f16\u7801\u3001\u5de5\u7a0b\u3001\u6570\u5b66\u4e0e\u79d1\u5b66\u77e5\u8bc6\u5de5\u4f5c\u573a\u666f\u8bbe\u8ba1\u7684AI\u6a21\u578b\uff0c\u901a\u8fc7\u5b9e\u65f6\u641c\u7d22\u6574\u5408\u4e0e\u9ad8\u6548\u63a8\u7406\uff0c\u89e3\u51b3\u4e86\u5f00\u53d1\u8005\u9700\u8981\u5feb\u901f\u83b7\u53d6\u6700\u65b0\u4e0a\u4e0b\u6587\u3001\u5b8c\u6210\u590d\u6742\u5de5\u7a0b\u4efb\u52a1\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\/ee3cc408-d3cf-4b98-a2b6-74066f002240.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\/b1a6842a-7a31-4ea5-8c06-fedf88376cd8.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\/1f89398b-dc63-493e-b19f-7d40011eeac6.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\/70d49d00-b97f-4601-bbd7-936c1f0fd4c6.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\/c51cdd2e-cdfc-4388-8dfd-ab4390444f4d.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\/ca97ef21-babf-4686-b389-7b9a92146218.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\/7b246583-6bdd-413f-893d-6b575d6ea9a4.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\/e611d9ae-1aca-45f2-a90f-601669355895.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\/7f795a53-63b9-4233-bde0-8ce5018deeea.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\/911496f4-f398-401c-afb6-d849c7923430.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\/e0142bba-46c3-404d-b6e0-40adda142743.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\/114c81b3-922c-4b99-9e0f-f309020861c1.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\/bd33f225-2f07-4a0f-959a-6166eabe97f5.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\">Android<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Bots<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7f16\u7801\u6a21\u578b<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u641c\u7d22<\/span><br \/>\n            <span class=\"tag\">\u5de5\u7a0b\u4efb\u52a1<\/span><br \/>\n            <span class=\"tag\">\u77e5\u8bc6\u5de5\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u63a8\u7406<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u6784\u5efa<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u79d1\u6280\u524d\u6cbf<\/span><br \/>\n            <span class=\"tag\">\u6a21\u578b\u5bf9\u6bd4<\/span><br \/>\n            <span class=\"tag\">SpaceXAI<\/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\u53cd\u9988\u5b9e\u65f6\u641c\u7d22\u529f\u80fd\u5b9e\u7528\uff0c\u80fd\u62c9\u53d6\u5206\u949f\u7ea7\u6700\u65b0\u8d8b\u52bf\u4fe1\u606f\uff0c\u8bed\u6c14\u8bd9\u8c10\u6709\u8da3\u3002\u4f46\u6709\u4eba\u6307\u51fa\u6b64\u524d\u7248\u672c\u6548\u679c\u4e0d\u7406\u60f3\uff0c\u4e0e\u9886\u5148\u6a21\u578b\u6709\u5dee\u8ddd\uff0c\u9700\u89c2\u5bdf4.5\u662f\u5426\u771f\u6b63\u6539\u8fdb\u3002\u53e6\u63d0\u53ca\u4e0eCursor\u8bad\u7ec3\u6574\u5408\u53ca\u5f00\u6e90\u4eae\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                Grok 4.5 \u8bd5\u56fe\u5728\u62e5\u6324\u7684AI\u7f16\u7801\u8d5b\u9053\u4e2d\u6253\u51fa\u5dee\u5f02\u5316\u2014\u2014\u5f3a\u8c03\u5b9e\u65f6\u641c\u7d22\u4e0e\u201c\u7c7bCursor\u201d\u7684\u5de5\u7a0b\u5316\u8bad\u7ec3\u3002\u4f46151\u7968\u7684\u4e0d\u6e29\u4e0d\u706b\uff0c\u4e0e\u7528\u6237\u201c\u4e4b\u524d\u7248\u672c\u4e0d\u591f\u597d\u201d\u7684\u5766\u767d\u5f62\u6210\u5c34\u5c2c\u5bf9\u7167\u3002\u5176\u6838\u5fc3\u5356\u70b9\u201c\u5b9e\u65f6\u6574\u5408\u5206\u949f\u7ea7\u8d8b\u52bf\u201d\u786e\u5b9e\u72ec\u7279\uff0c\u5c24\u5176\u9002\u5408\u9700\u8981\u7d27\u8ddf\u6700\u65b0API\u6216\u6f0f\u6d1e\u52a8\u6001\u7684\u5f00\u53d1\u8005\uff0c\u8fd9\u6bd4\u7eaf\u9759\u6001\u8bad\u7ec3\u6a21\u578b\u66f4\u5177\u65f6\u6548\u4f18\u52bf\u3002\u7136\u800c\u95ee\u9898\u4e5f\u5f88\u660e\u663e\uff1a\u5982\u679c\u5e95\u5c42\u63a8\u7406\u80fd\u529b\u672c\u8eab\u65e0\u6cd5\u5339\u654cClaude\u6216GPT-4o\uff0c\u90a3\u5b9e\u65f6\u641c\u7d22\u5145\u5176\u91cf\u53ea\u662f\u201c\u65b0\u95fb\u805a\u5408\u5668\u201d\uff0c\u800c\u975e\u751f\u4ea7\u529b\u5de5\u5177\u3002\u66f4\u81f4\u547d\u7684\u662f\uff0c\u7528\u6237\u53cd\u9988\u4e2d\u7f3a\u4e4f\u5bf9\u5b9e\u9645\u7f16\u7801\u6548\u7387\u3001\u4ee3\u7801\u8d28\u91cf\u7b49\u786c\u6307\u6807\u7684\u6b63\u9762\u8bc4\u4ef7\u3002Grok Build\u5f00\u6e90\u503c\u5f97\u80af\u5b9a\uff0c\u4f46\u5f00\u6e90\u5e76\u4e0d\u7b49\u4e8e\u597d\u7528\u3002\u6574\u4f53\u6765\u770b\uff0cGrok 4.5\u66f4\u50cf\u4e00\u6b21\u201c\u8865\u77ed\u677f\u201d\u7684\u7248\u672c\u8fed\u4ee3\uff0c\u800c\u975e\u98a0\u8986\u6027\u7a81\u7834\u3002\u5bf9SpaceXAI\u800c\u8a00\uff0c\u82e5\u4e0d\u80fd\u5728\u4e0b\u4e00\u6b21\u66f4\u65b0\u4e2d\u8bc1\u660e\u5176\u63a8\u7406\u7cbe\u5ea6\u548c\u5de5\u7a0b\u4efb\u52a1\u5b8c\u6210\u5ea6\u80fd\u4e0e\u4e00\u7ebf\u6a21\u578b\u786c\u78b0\u786c\uff0c\u8fd9\u6bb5\u201c\u5b9e\u65f6\u641c\u7d22\u201d\u7684\u526f\u6b4c\u5f88\u5feb\u5c31\u4f1a\u88ab\u66f4\u6210\u719f\u7684\u4ea7\u54c1\u6df9\u6ca1\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\">Grok 4.5<\/span>\n                <\/div>\n<div class=\"comment-content\">Grok 4.5 was trained on datasets spanning knowledge in coding, science, engineering, and math. With both intelligent and efficient reasoning, Grok 4.5 excels at real engineering tasks and exceeds comparable leading models at these tasks.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Grok 4.5 is the first &#8220;model trained alongside <a href=\"https:\/\/www.producthunt.com\/products\/cursor\" data-node-type=\"mention\" data-mention-type=\"product\" data-mention-id=\"cursor\" target=\"_blank\" rel=\"noopener\">@Cursor<\/a>&#8220;.<\/p>\n<\/p>\n<p><a href=\"https:\/\/github.com\/xai-org\/grok-build\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Grok Build<\/a> is also now <a href=\"https:\/\/x.ai\/open-source\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">open source<\/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\">\n<p>The real-time search integration feels genuinely useful, especially how it pulls in trend context without making you dig through tabs.<\/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>been using Grok for a few days and the real-time search actually feels live, like it pulls in stuff minutes old. the tone is snarkier than I expected, which is fun for casual questions.<\/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>Honestly surprised to see only one comment on <strong>Grok 4.5<\/strong> release as of now. I\u2019ve tried Grok several times but never managed to get results good enough to keep using it, especially compared with other models. I\u2019m interested to see whether 4.5 genuinely changes that.<\/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\">#8<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/GSPE3HHD2AHU47\" class=\"app-title\">Estera<\/a><\/p>\n<div class=\"one-liner\">AI Receptionist that Answers Calls &#038; WhatsApp 24\/7<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">135<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Estera\u662f\u4e00\u4e2a\u4e13\u4e3a\u670d\u52a1\u4e0e\u9152\u5e97\u884c\u4e1a\uff08\u5982\u623f\u5730\u4ea7\u3001\u9152\u5e97\u3001\u9910\u996e\u3001\u8bca\u6240\u7b49\uff09\u8bbe\u8ba1\u7684AI\u63a5\u5f85\u5458\uff0c\u80fd\u57285\u79d2\u5185\u81ea\u52a8\u63a5\u542c\u7535\u8bdd\u548cWhatsApp\u6d88\u606f\uff0c\u5e76\u5b8c\u6210\u7ebf\u7d22\u7b5b\u9009\u3001\u9884\u7ea6\u9884\u8ba2\u548c\u81ea\u52a8\u8ddf\u8fdb\uff0c\u89e3\u51b3\u5546\u5bb6\u56e0\u54cd\u5e94\u4e0d\u53ca\u65f6\u800c\u6d41\u5931\u5ba2\u6237\u7684\u5b9e\u9645\u75db\u70b9\u3002<\/p>\n<p>&#8212;<\/p><\/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\/f4215933-a5cc-4db9-b4fb-90ec0d2d7e24.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\/c8b3e0ef-cbb4-4bb6-8785-54785a915c25.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\/511f6e31-7990-42b4-a2f1-76576d588214.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\/1c76d228-e7c4-4e46-ab32-4283212a5c65.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\/508f71dc-e48d-4775-8f06-568c4ef6ef43.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\/7a258d64-5ebc-4f92-a600-a95d5be0934c.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\/f8793a03-89e4-4831-a0a7-afaded22daa0.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\/fb7a5050-b46b-4504-8bee-f2cbfd38a14e.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=uTtXhqZktGI\"><source src=\"https:\/\/www.youtube.com\/watch?v=uTtXhqZktGI\" 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\">Customer Success<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u63a5\u5f85\u5458<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u8bed\u97f3<\/span><br \/>\n            <span class=\"tag\">WhatsApp\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u9884\u7ea6\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u7ebf\u7d22\u7b5b\u9009<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u8ddf\u8fdb<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u65e5\u5386\u540c\u6b65<\/span><br \/>\n            <span class=\"tag\">\u591a\u8bed\u8a00\u652f\u6301<\/span><br \/>\n            <span class=\"tag\">\u670d\u52a1\u884c\u4e1a\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u96f6\u4ee3\u7801\u914d\u7f6e<\/p>\n<p>&#8212;<\/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\u8bbe\u7f6e\u5feb\u3001\u8bed\u97f3\u81ea\u7136\u3002\u6838\u5fc3\u8d28\u7591\u96c6\u4e2d\u5728\uff1a\u5608\u6742\u73af\u5883\u4e0e\u53e3\u97f3\u5904\u7406\uff1b\u975e\u6587\u672c\u6d88\u606f\uff08\u8bed\u97f3\u7b14\u8bb0\u3001\u56fe\u7247\uff09\u7684\u5e94\u5bf9\uff1bHIPAA\u5408\u89c4\u4e0e\u6570\u636e\u9690\u79c1\uff1b\u5373\u65f6\u62a5\u4ef7\u51c6\u786e\u6027\u4e0e\u9632\u91cd\u590d\u9884\u8ba2\u673a\u5236\uff1b\u5ba2\u6237\u8981\u6c42\u8f6c\u63a5\u771f\u4eba\u65f6\u7684\u5904\u7406\u65b9\u5f0f\u3002\u521b\u59cb\u4eba\u56de\u5e94\u79f0\u7cfb\u7edf\u901a\u8fc7\u201c\u4e0d\u786e\u8ba4\u5219\u4e0d\u4e0b\u51b3\u5b9a\u201d\u7684\u903b\u8f91\u89c4\u907f\u9519\u8bef\uff0c\u800c\u975e\u4e8b\u540e\u544a\u8b66\u3002<\/p>\n<p>&#8212;\n            <\/p><\/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                Estera\u7684\u767b\u573a\uff0c\u7cbe\u51c6\u547d\u4e2d\u4e86\u670d\u52a1\u884c\u4e1a\u201c\u54cd\u5e94\u5373\u751f\u5b58\u201d\u7684\u6b8b\u9177\u6cd5\u5219\u2014\u2014\u4f46\u5b83\u7684\u771f\u6b63\u4ef7\u503c\u4e0d\u5728\u201c\u5feb\u201d\uff0c\u800c\u5728\u4e8e\u91cd\u65b0\u5b9a\u4e49\u4e86AI\u5728\u5546\u4e1a\u573a\u666f\u4e2d\u7684\u89d2\u8272\u8fb9\u754c\u3002\u8fd9\u5e76\u975e\u4e00\u4e2a\u5671\u5934\u5f0f\u7684\u804a\u5929\u673a\u5668\u4eba\uff0c\u800c\u662f\u4e00\u5957\u5c06\u201c\u63a5\u5f85\u5458\u201d\u8fd9\u4e2a\u9ad8\u4eba\u529b\u6210\u672c\u3001\u9ad8\u60c5\u5546\u8981\u6c42\u7684\u5c97\u4f4d\uff0c\u62c6\u89e3\u4e3a\u534f\u8bae\u5904\u7406\u3001\u77e5\u8bc6\u5e93\u8c03\u7528\u3001\u5b9e\u65f6\u8c03\u5ea6\u5f15\u64ce\u7684\u5de5\u4e1a\u7ea7\u65b9\u6848\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u6838\u5fc3\u4f18\u52bf\u5728\u4e8e\u201c\u77e5\u9053\u81ea\u5df1\u4e0d\u77e5\u9053\u201d\uff1a\u4ece\u521b\u59cb\u4eba\u56de\u5e94\u770b\uff0c\u7cfb\u7edf\u5904\u7406\u4ef7\u683c\u53d8\u66f4\u3001\u91cd\u590d\u9884\u8ba2\u7b49\u9ad8\u98ce\u9669\u573a\u666f\u65f6\uff0c\u4e0d\u662f\u9760\u201c\u4e8b\u540e\u544a\u8b66\u201d\u7684\u88ab\u52a8\u5bb9\u9519\uff0c\u800c\u662f\u901a\u8fc7\u5b9e\u65f6\u6e90\u6821\u9a8c\u4e0e\u4e0d\u786e\u5b9a\u6027\u65f6\u81ea\u52a8\u8ba9\u6e21\u7ed9\u771f\u4eba\u2014\u2014\u8fd9\u6bd4\u5e02\u9762\u4e0a\u591a\u6570\u201c\u4e07\u80fd\u7b54\u9898\u201d\u7684AI\u806a\u660e\u5f97\u591a\u3002\u8fd9\u79cd\u8bbe\u8ba1\u601d\u7ef4\uff0c\u5b9e\u9645\u4e0a\u5c06AI\u5b9a\u4f4d\u4e3a\u201c\u589e\u5e45\u5668\u201d\u800c\u975e\u201c\u66ff\u4ee3\u8005\u201d\uff0c\u65e2\u4fdd\u8bc1\u6548\u7387\uff0c\u53c8\u515c\u4f4f\u5e95\u7ebf\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u6279\u8bc4\u540c\u6837\u81f4\u547d\u3002HIPAA\u5408\u89c4\u7684\u56de\u7b54\u66b4\u9732\u4e86\u5176\u5782\u76f4\u6df1\u8015\u7684\u6df1\u5ea6\u4e0d\u8db3\uff0c\u533b\u7597\u573a\u666f\u7684\u975e\u5bf9\u79f0\u98ce\u9669\uff08WhatsApp\u65e0\u6cd5\u7b7e\u7ea6BAA\uff09\u4f7f\u5176\u5728\u6700\u9ad8\u5229\u6da6\u7684\u8d5b\u9053\u5f62\u540c\u88f8\u5954\u3002\u6b64\u5916\uff0c\u8bc4\u8bba\u4e2d\u53cd\u590d\u63d0\u53ca\u7684\u201c\u975e\u6587\u672c\u6d88\u606f\u5904\u7406\u201d\u4e0e\u201c\u5608\u6742\u73af\u5883\u8868\u73b0\u201d\u662fAI\u8bed\u97f3\u4ea7\u54c1\u7684\u786c\u9aa8\u5934\uff0c\u4ec5\u9760\u201c\u5347\u7ea7\u6a21\u578b\u201d\u65e0\u6cd5\u89e3\u51b3\u2014\u2014\u8fd9\u610f\u5473\u7740Estera\u79bb\u201c\u5168\u54c1\u7c7b\u901a\u7528\u201d\u8fd8\u6709\u660e\u663e\u77ed\u677f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u8fd9\u662f\u4e00\u6b3e\u601d\u8def\u6e05\u6670\u3001\u5de5\u7a0b\u624e\u5b9e\u7684\u5782\u76f4\u5de5\u5177\uff0c\u800c\u975e\u4e07\u80fd\u836f\u3002\u5b83\u66f4\u9002\u5408\u4e1a\u52a1\u903b\u8f91\u76f8\u5bf9\u6807\u51c6\u3001\u5bb9\u9519\u7a7a\u95f4\u8f83\u5927\u7684\u573a\u666f\uff08\u5982\u623f\u4ea7\u7ecf\u7eaa\u3001\u9910\u996e\u9884\u8ba2\uff09\uff0c\u4f46\u5728\u5f3a\u76d1\u7ba1\u6216\u4fe1\u606f\u8026\u5408\u590d\u6742\u7684\u73af\u5883\u4e0b\uff0c\u624b\u52a8\u7684\u201c\u4ea4\u63a5\u68d2\u201d\u4ecd\u4e0d\u53ef\u6216\u7f3a\u3002\u521b\u4e1a\u8005\u9700\u8981\u5728\u201c\u66ff\u4ee3\u4eba\u529b\u201d\u7684\u53d9\u4e8b\u70ed\u6d6a\u4e2d\u51b7\u9759\u5224\u65ad\uff1aAI\u63a5\u5f85\u5458\u7684\u672c\u8d28\uff0c\u662f\u8fc7\u6ee4\u6389\u4f4e\u4ef7\u503c\u91cd\u590d\u52b3\u52a8\uff0c\u8ba9\u771f\u4eba\u4e13\u6ce8\u4e8e\u771f\u6b63\u7684\u201c\u5ba2\u6237\u5f02\u5e38\u201d\u4e0e\u201c\u4ef7\u503c\u77ac\u95f4\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\">Estera<\/span>\n                <\/div>\n<div class=\"comment-content\">Meet Estera, the AI receptionist built for real estate, hotels, restaurants, and more. AI agent receptionist that answers every phone call and WhatsApp message in under 5 seconds, qualifies leads, books appointments, and follows up automatically. Built for real estate, hotels, restaurants, dental clinics, and more. Create your own AI agent assistant in under 3 minutes.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Introducing <a href=\"https:\/\/tryestera.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Estera<\/a> &#8211; the AI receptionist that answers every phone call and WhatsApp message for your business, 24\/7.<\/p>\n<p>Service and hospitality businesses &#8211; salons, clinics, restaurants, real estate, hotels, dealerships &#8211; live and die by response time. But most calls come in while staff are with a customer, and most WhatsApp messages arrive after hours. Every missed one is a booking that quietly walks to a competitor.<\/p>\n<p>\u2753 The obvious fix is &#8220;just add a chatbot.&#8221; But anyone who&#8217;s tried it knows how that feels: a robotic bot that answers an FAQ, doesn&#8217;t know your prices, can&#8217;t actually book anything, and makes customers ask for a human by the second message.<\/p>\n<p>\ud83e\udd14 Turns out a receptionist is the hard part, not the chat. It has to know your services, policies and pricing, speak your customer&#8217;s language, handle a real back-and-forth, and write the appointment straight into your calendar &#8211; not just talk.<\/p>\n<p>So we built Estera to be exactly that, live in under 3 minutes with zero technical setup:<\/p>\n<p>\u2705 Answers inbound calls and WhatsApp instantly, 24\/7<br \/>\u2705 Trained on your business &#8211; services, pricing, policies, FAQs<br \/>\u2705 Books appointments directly into your existing calendar \/ PMS \/ CRM<br \/>\u2705 Qualifies leads and follows up automatically on no-shows<br \/>\u2705 Uses your existing phone number &amp; WhatsApp Business number &#8211; no new hardware<br \/>\u2705 Speaks 50+ languages<\/p>\n<p>Estera ships as three connected tools: Concierge (inbound WhatsApp), Voice (inbound calls), and Messages (outbound WhatsApp campaigns) &#8211; one AI assistant across all of them.<\/p>\n<p>Try the live demo (no signup) or spin up your own agent in a minute at tryestera.com.<\/p>\n<p>We&#8217;d love to hear your feedback \ud83d\ude4c<\/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>HI <a href=\"https:\/\/www.producthunt.com\/@fredyandrei\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fredyandrei<\/a>&nbsp; answering  your question about trust.. I think our biggest hesitation with voice AI is how it handles noisy backgrounds or heavy accents. Congrats\ud83d\ude4c Upvoted hope you crush it on PH today&#8230;.<\/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\/@fredyandrei\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fredyandrei<\/a>&nbsp;We ran an answering service last year and WhatsApp was the failure point: people send voice notes or photos of a broken part and the bot couldn&#8217;t triage them. How does Estera handle non-text messages, and when does it hand off to a human instead of looping the caller?<\/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>Congrats on the launch <a href=\"https:\/\/www.producthunt.com\/@fredyandrei\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"fredyandrei\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fredyandrei<\/a> <a href=\"https:\/\/www.producthunt.com\/@toma_rares\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"toma_rares\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@toma_rares<\/a> ! I&#8217;ve tested it and it was very simple to setup and use. All the flows and visual look were great! Love it!<\/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\/@toma_rares\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@toma_rares<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@axelut\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@axelut<\/a>&nbsp;Thank you a lot, Alex! I am happy to hear that!<\/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>Fredy, your answer to Gal about the agent knowing when not to decide is the strongest thing in this thread, so I will push on the vertical list instead.<\/p>\n<\/p>\n<p>Clinics do not behave like salons or restaurants. A patient calling to book usually says why, and that reason becomes regulated health data the moment it lands in a transcript, a CRM field or a follow up message. In the US that also rules out the channel you lead with, because Meta does not sign a business associate agreement for WhatsApp, so a clinic running patient conversations there is exposed no matter how careful your agent is.<\/p>\n<\/p>\n<p>Is a clinic a separate configuration for you, or the same agent with a different script?<\/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 for your support, <a href=\"https:\/\/www.producthunt.com\/@clemente_lopez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clemente_lopez1<\/a>! We don&#8217;t have a US medical client today, so this hasn&#8217;t come up in practice yet. HIPAA would mean a BAA-covered setup, and WhatsApp doesn&#8217;t offer that, so clinics there would need a separate channel built around that requirement. It&#8217;s on our radar for when we go after that market.<\/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, Fredy!<\/p>\n<\/p>\n<p>I saw you how you were sharing updates the past few months and I respect the consistency.<\/p>\n<\/p>\n<p>In a world where businesses can improve their services with products like Estera, it&#8217;s a no brainer.<\/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 lot, <a href=\"https:\/\/www.producthunt.com\/@zoltanszogyenyi\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"zoltanszogyenyi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zoltanszogyenyi<\/a>! Means a lot coming from someone who&#8217;s been following the journey. Appreciate you sticking around through the updates, more to come.<\/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 pricing and human handoff approach is practical. How does Estera prevent double-bookings when two customers try to claim the same slot at nearly the same time across calls and WhatsApp?<\/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\/@adityaharish2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adityaharish2002<\/a>&nbsp;Two layers, really. Say someone books a consultation over the weekend, the business can double check it&#8217;s actually free when they&#8217;re back Monday, that part&#8217;s standard no matter the channel, because unpredictable human problems can appear outside Estera system. On top of that Estera holds the slot in real time the moment someone&#8217;s booking it, so if a second request comes in on the other channel seconds later, it sees it as taken. These types of situations are already rare, but that&#8217;s the bit that covers 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>the trust question that&#8217;d matter most to me isn&#8217;t accents or background noise, it&#8217;s what happens when Estera gets something wrong mid-booking &#8211; quotes a price that&#8217;s since changed, or double-books a slot your calendar already had held. does the business get a heads up to catch that before the customer shows up, or is the first anyone hears of it when the customer&#8217;s standing at the counter confused? for something handling money and scheduling unsupervised, the failure path matters more than the happy path demo<\/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 for your comment, <a href=\"https:\/\/www.producthunt.com\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>! Our system doesn&#8217;t work by catching the mistake after it happens and alerting you. It works by not letting the agent commit to something it isn&#8217;t sure of in the first place. Pricing comes from a live source, either pulled directly from your site or from a document you keep current. That&#8217;s not an add on, it&#8217;s a baseline requirement for the agent to do its job. A wrong price is a sales problem, not a technical footnote.<\/p>\n<p>When there&#8217;s a gray area, a discrepancy, something it can&#8217;t confirm with certainty, it doesn&#8217;t guess. It tells the customer someone will follow up with the exact details and hands the conversation to a real person. So, the customer doesn&#8217;t end up confused at the counter because the agent never promised something it couldn&#8217;t back up. The risk isn&#8217;t removed by monitoring after the fact, it&#8217;s removed by the agent knowing when not to decide on its own. Hope this answers your question!<\/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&#8217;m curious what makes businesses switch from a traditional receptionist to Estera. When does a human intervene ?<\/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>Set it up for our front desk in like three minutes and it actually picked up on the first ring, which already beats our old system. Qualifying leads part feels solid so far, going to let it run for a week.<\/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>Timely for us \u2014 we run a healthcare directory where most patient\u2013clinic contact happens over WhatsApp, and the hard part isn&#8217;t answering, it&#8217;s knowing when to hand off to a human. How does Estera decide when to escalate? Also curious how you handle regulated verticals where you can&#8217;t store health details in the transcript.<\/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 real estate use case is interesting \u2014 I manage rental properties, and the after-hours call problem is real. Tenants call at 10 PM about a leaking pipe, and you&#8217;re choosing between answering every call or missing something urgent. How does Estera handle triage? Can it distinguish between &#8220;my faucet drips a little&#8221; and &#8220;water is coming through the ceiling&#8221; and route those differently? That escalation logic is where most AI receptionists fall flat.<\/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>Setup was genuinely fast, had my agent handling test calls within minutes. The natural-sounding responses caught me off guard, way better than the robotic assistants I&#8217;ve tried before.<\/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>Your website link is not working at the 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@otman_alami\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@otman_alami<\/a>&nbsp;<a href=\"https:\/\/www.tryestera.com\/?ref=producthunt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">tryestera.com<\/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>It looks good. But I can imagine that Estera will need to handle some edge cases when it won&#8217;t be able to answer.  <\/p>\n<p>Then what? Would it be able to create some kind of ticket, ready to be answered by a real person?<\/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>Estera the website is cool and easily understandable i like that and would love to test this agent how perfectly it can handle calls and disputes and how much data i have to give him and does it remember things and learns from the mistakes it did?<\/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>This is nice. How does it handle callers who specifically demand to speak to a human?<\/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\/@dhiraj_patel5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@dhiraj_patel5<\/a>&nbsp;Right now if a caller asks to speak to a human, the agent lets them know someone will call back as soon as possible.<\/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 not letting the agent commit when it&#8217;s unsure approach is a smart way to frame the risk. curious about the other trigger for handoff though &#8211; what if the customer just isn&#8217;t happy talking to a bot and asks for a real person directly, nothing to do with pricing or a gray area. does Estera hand off immediately on that kind of request, or does it try to keep resolving things itself for a bit first? for hospitality especially that could matter as much as the pricing accuracy does.<\/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 build on the support side so take the bias into account. Calls and WhatsApp look like one inbox and they are not, and the follow-up promise is where that shows.<\/p>\n<\/p>\n<p>On a call the conversation has a beginning and an end. On WhatsApp it has neither. The customer replies four hours later in the same thread expecting you to remember, so it is really a record that never closes. That is a different data model to a call transcript, not a variation on one.<\/p>\n<\/p>\n<p>The specific thing I would check is the follow-up. WhatsApp only allows free-form messages inside the service window after the customer&#8217;s last message. Outside it you are on approved templates. So automatic follow-up either lands inside that window, or it goes out as a template and reads like one, which for a dental clinic chasing a booking is the wrong tone.<\/p>\n<\/p>\n<p>The other one is handover. Estera answers at 2am, a human picks the thread up at 9am, and the customer has no idea a shift changed. Whatever was promised overnight has to be sitting in front of that human, or they contradict their own receptionist and the customer just sees a business changing its mind.<\/p>\n<\/p>\n<p>Neither is a reason not to build it. They are the two places where one feature behaves differently per channel, and both are cheaper to design for now than to retrofit..<\/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 under-5-second answer time is the spec I&#8217;d zero in on, because with voice the delay before the first word matters more to callers than the raw quality of the response. I build voice AI that calls aging parents daily, and getting reliable pickup plus natural turn-taking over real phone lines turned out to be harder than the model work itself. How are you handling barge-in when a caller talks over the agent mid-sentence? That one detail tends to decide whether a voice agent feels human 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<\/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\/CUKYCRD6ZIYKTQ\" class=\"app-title\">Rescript<\/a><\/p>\n<div class=\"one-liner\">A free, open source, Descript alternative. Runs in-browser.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">124<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Rescript\u662f\u4e00\u6b3e\u514d\u8d39\u5f00\u6e90\u7684\u6d4f\u89c8\u5668\u7aef\u89c6\u9891\u7f16\u8f91\u5668\uff0c\u901a\u8fc7\u76f4\u63a5\u7f16\u8f91\u8f6c\u5f55\u6587\u672c\u6765\u526a\u89c6\u9891\uff0c\u89e3\u51b3\u4e86\u7528\u6237\u5bf9\u6602\u8d35\u8ba2\u9605\u5236\u5de5\u5177\uff08\u5982Descript\uff09\u7684\u4f9d\u8d56\uff0c\u4ee5\u53ca\u672c\u5730\u9690\u79c1\u548c\u79bb\u7ebf\u4f7f\u7528\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\/6f4dd5eb-5be0-4392-819e-c5e296ada3cf.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\/6ae865ef-2559-4270-bfde-2c086b1d35fc.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\/afc5ceef-a2ed-4e3c-96fb-bf1577d4b8c6.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\/7680f1d4-50f2-41da-b7c4-e841f9e32e8c.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\/4795746e-6ecf-4603-8b10-fefbf4f852a1.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/nfcNoqSR5e8\"><source src=\"https:\/\/youtu.be\/nfcNoqSR5e8\" 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\">Open Source<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Photo &#038; Video<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u89c6\u9891\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">\u8f6c\u5f55\u7f16\u8f91<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u7aef<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u79bb\u7ebf<\/span><br \/>\n            <span class=\"tag\">\u514d\u8d39\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">Descript\u66ff\u4ee3<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">AI\u526a\u8f91<\/span><br \/>\n            <span class=\"tag\">\u6587\u672c\u9a71\u52a8<\/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\u8d5e\u8d4f\u5176\u8f6c\u5f55\u7f16\u8f91\u548c\u672c\u5730\u79bb\u7ebf\u7279\u6027\uff0c\u4f46\u63d0\u51fa\u591a\u9879\u5efa\u8bae\uff1a\u9700\u652f\u6301\u591a\u8f68\u9053\u7f16\u8f91\u3001\u5355\u8bf4\u8bdd\u4eba\u7247\u6bb5\u5206\u5272\u5feb\u6377\u952e\u3001\u70e7\u5f55\u5b57\u5e55\u5bfc\u51fa\uff1b\u5173\u5fc3\u957f\u89c6\u9891\uff08\u598290\u5206\u949f\uff09\u7684\u6027\u80fd\u4e0a\u9650\u30014K\u5bfc\u51fa\u8d28\u91cf\u662f\u5426\u65e0\u635f\uff1b\u8ffd\u95ee\u662f\u5426\u5b8c\u5168\u672c\u5730\u8f6c\u5f55\uff08\u9690\u79c1\u5173\u952e\u70b9\uff09\u3001\u4ec5\u652f\u6301\u82f1\u6587\u8fd8\u662f\u591a\u8bed\u8a00\uff0c\u4ee5\u53ca\u662f\u5426\u5305\u542b\u9664\u526a\u8f91\u5916\u7684\u5168\u90e8Descript\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                Rescript\u5728\u201c\u5468\u672b\u9879\u76ee\u201d\u5149\u73af\u4e0b\u5207\u4e2d\u4e86\u7528\u6237\u5bf9\u9ad8\u6210\u672c\u8ba2\u9605\u5de5\u5177\u7684\u53cd\u611f\uff0c\u5176\u201c\u6d4f\u89c8\u5668\u5185\u672c\u5730\u8fd0\u884c\u201d\u7684\u9690\u79c1\u53d9\u4e8b\u6781\u5177\u6740\u4f24\u529b\u2014\u2014\u5c24\u5176\u5bf9\u4e8e\u5904\u7406\u654f\u611f\u8bbf\u8c08\u6216\u4e2a\u4eba\u7d20\u6750\u7684\u7528\u6237\u3002\u4f46\u51b7\u9759\u6765\u770b\uff0c\u8fd9\u66f4\u50cf\u4e00\u4e2a\u7cbe\u608d\u7684\u201c\u6982\u5ff5\u9a8c\u8bc1\u201d\u800c\u975e\u6210\u54c1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6838\u5fc3\u4ef7\u503c\u5728\u4e8e\u4e24\u70b9\uff1a\u4e00\u662f\u7528\u6781\u4f4e\u7684\u5f00\u53d1\u6210\u672c\u9a8c\u8bc1\u4e86\u201c\u8f6c\u5f55\u5373\u526a\u8f91\u201d\u5de5\u4f5c\u6d41\u7684\u53ef\u884c\u6027\uff0c\u4e8c\u662f\u901a\u8fc7Web\u6280\u672f\u5c06\u9690\u79c1\u548c\u514d\u8d39\u505a\u5230\u6781\u81f4\u3002\u7136\u800c\uff0c\u8bc4\u8bba\u533a\u5bc6\u96c6\u51fa\u73b0\u7684\u6280\u672f\u7591\u95ee\uff08\u957f\u89c6\u9891\u5185\u5b58\u6ea2\u51fa\u3001\u591a\u8f68\u9053\u7f3a\u5931\u3001\u5355\u8bf4\u8bdd\u4eba\u5206\u6bb5\u3001\u70e7\u5f55\u5b57\u5e55\u3001\u591a\u8bed\u8a00\u652f\u6301\uff09\u6070\u6070\u66b4\u9732\u4e86\u5176\u4e0eDescript\u7b49\u6210\u719f\u5de5\u5177\u7684\u9e3f\u6c9f\u3002\u4e00\u4e2a\u53ea\u80fd\u5904\u74065\u5206\u949f\u77ed\u89c6\u9891\u7684\u5355\u8f68\u526a\u8f91\u5668\uff0c\u5728\u4e13\u4e1a\u573a\u666f\u4e0b\u51e0\u4e4e\u65e0\u6cd5\u5f62\u6210\u5de5\u4f5c\u95ed\u73af\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u95ee\u9898\u662f\uff1a\u5f53\u7528\u6237\u62e5\u62b1\u672c\u5730\u6267\u884c\u65f6\uff0c\u8ba1\u7b97\u74f6\u9888\u4ece\u201c\u670d\u52a1\u5668\u6210\u672c\u201d\u8f6c\u79fb\u4e3a\u201c\u5ba2\u6237\u7aef\u786c\u4ef6\u201d\uff0c\u800c\u6d4f\u89c8\u5668\u5185\u5b58\u548cWebAssembly\u7684\u7b97\u529b\u5929\u82b1\u677f\u662f\u7269\u7406\u6027\u7684\u3002\u5982\u679cRescript\u4e0d\u80fd\u5728\u672c\u5730\u8f6c\u5f55\uff08\u5f88\u591a\u6240\u8c13\u672c\u5730\u65b9\u6848\u4f9d\u8d56Web Workers\u8c03\u7528\u8fdc\u7a0bAPI\uff09\uff0c\u5176\u9690\u79c1\u62a4\u57ce\u6cb3\u5c06\u5f62\u540c\u865a\u8bbe\u3002\u5b83\u73b0\u5728\u7684\u4eae\u773c\uff0c\u66f4\u591a\u662f\u4f5c\u4e3a\u5bf9\u8d44\u672c\u9a71\u52a8\u578b\u5de5\u5177\u751f\u6001\u7684\u4e00\u6b21\u53cd\u8bbd\u2014\u2014\u7528\u6781\u4f4e\u6210\u672c\u64ac\u52a8\u4e86\u4e00\u4e2a\u88ab\u9ad8\u4ef7\u5ffd\u89c6\u7684\u5e02\u573a\u8bc9\u6c42\uff0c\u4f46\u80fd\u5426\u4ece\u201c\u5468\u672b\u73a9\u5177\u201d\u8fdb\u5316\u4e3a\u201c\u65e5\u5e38\u5de5\u5177\u201d\uff0c\u53d6\u51b3\u4e8e\u5f00\u53d1\u8005\u662f\u5426\u6709\u52c7\u6c14\u548c\u8d44\u6e90\u53bb\u89e3\u51b3\u90a3\u5806\u771f\u6b63\u7684\u201c\u7b28\u91cd\u201d\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\">Rescript<\/span>\n                <\/div>\n<div class=\"comment-content\">\ud83c\udfac Open source, transcript-based video editor that lives in the browser. Edit videos by simply editing the transcript text. Runs fully in the browser: Local, free and offline!<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Descript costs $24\/mo, I built this over a single weekend with Fable to jump on the personal software bandwagon.<\/p>\n<p>Introducing Rescript: edit videos by simply editing the transcript text. <\/p>\n<p>\u2192 Github <a href=\"https:\/\/github.com\/wassgha\/rescript\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/wassgha\/rescript<\/a><\/p>\n<p>Runs fully in the browser: Local, free, offline and open source!<\/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>Editing by transcript is such a clever idea, and running it fully offline is a huge plus. One thing I&#8217;d love to see is a way to export with burned-in subtitles directly from the editor so the captions stay synced without needing a separate tool.<\/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>honestly the transcript-based editing is such a clever idea, but it would be really helpful if you could split a single speaker&#8217;s turn into two clips without having to insert weird text. like a hotkey to cut mid-sentence right where the cursor is, kind of like hitting enter in a doc.<\/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>Editing video by tweaking the transcript sounds genuinely clever, especially the local-only angle. One thing that would make it way more useful for me though is multi-track support, since most real projects have narration, music and B-roll that need separate timing rather than living on one timeline.<\/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>Editing video by just fixing typos in the transcript feels like cheating in the best way. Loved that it runs offline with zero setup.<\/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 transcript editing idea is honestly so smart, cut a sentence and the video just trims to match. loaded a clip and it ran fine without any setup.<\/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>Editing a transcript instead of a timeline is one of those ideas that feels obvious only after someone builds it. Keeping everything local makes the pitch much stronger for interviews and personal footage. And a weekend project that puts a real workflow on the table is more interesting than another polished roadmap.<\/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>How does it handle languages other than English?<\/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>Running fully in-browser is a strong differentiator for this category, since the thing that makes people hesitate about editing tools is uploading raw footage of themselves to someone else&#8217;s server.<\/p>\n<p>The tradeoff I&#8217;d want measured is where the tab gives up. Browser memory limits are real, and a 90-minute recording is a very different ask than a 5-minute one. Do you have a rough ceiling in practice? And does transcription run locally too, or does that step reach out \u2014 because if it does, the privacy story quietly changes for the part people care about most.<\/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>How do you handle longer videos or really dense transcripts in the browser? I&#8217;m curious if there&#8217;s a practical file size limit before things start getting sluggish, since everything&#8217;s running locally.<\/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>Transcript-based editing in the browser is a strong idea, especially with everything staying local.<\/p>\n<p>How does Rescript handle edits beyond cuts, such as removing filler words or tightening pauses without making the final video feel unnatural?<\/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 this is a weekend project and fully local, that&#8217;s a rare combo for video editing tools. curious how it holds up on longer source files though, like an hour long podcast recording. is the transcription and scrubbing still snappy on a mid-range laptop at that length, or does the in-browser part start to strain once the timeline gets long. either way nice work shipping this solo.<\/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>Some editing products reduce the video quality when we export the edited clip. Does this retain it as is?<\/p>\n<p>So for example, if the video is in 4K, it exports back 4K, right? <\/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>Does it have all features of DeScript or only the transcript based editing feature?<\/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\">#10<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/YGFMTX5T3K3NX7\" class=\"app-title\">AI YC interview with Gstack agents <\/a><\/p>\n<div class=\"one-liner\">AI specialists that join your Google Meet and gives feedback<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">119<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Gstack agents \u8ba9AI\u89d2\u8272\u4ee53D\u5316\u8eab\u548c\u8bed\u97f3\u5f62\u5f0f\u52a0\u5165Google Meet\uff0c\u5b9e\u65f6\u4e3a\u4f60\u7684\u6f14\u793a\u548c\u4ea7\u54c1\u63d0\u4f9b\u6a21\u62dfCEO\u3001CSO\u7b49\u89d2\u8272\u7684\u5c16\u9510\u53cd\u9988\uff0c\u89e3\u51b3\u521b\u4e1a\u8005\u7f3a\u4e4f\u5373\u65f6\u3001\u591a\u89d2\u5ea6\u4e13\u4e1a\u610f\u89c1\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\/37b85a4b-3fe1-48f5-8e9d-27a68d02b9cf.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\/0a8d74b5-5802-4b82-a108-b6d0db898197.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\/8a0351cf-04a4-4918-ace8-2d84425395eb.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\/023a4f57-ff52-4d64-9f85-b1dce0911dd4.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=PMiIytmoEuk\"><source src=\"https:\/\/www.youtube.com\/watch?v=PMiIytmoEuk\" 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><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u4f1a\u8bae\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u8bed\u97f3\u53cd\u9988<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90AI\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">YC\u9762\u8bd5\u6a21\u62df<\/span><br \/>\n            <span class=\"tag\">Google Meet\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">3D\u5316\u8eab<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7406API<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u6f14\u793a\u8bc4\u5ba1<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u9690\u79c1\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">AI\u89d2\u8272\u626e\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>\u7528\u6237\u79f0\u8d5e\u5176\u672c\u5730\u8fd0\u884c\u3001\u65e0\u97f3\u9891\u6cc4\u9732\u7684\u9690\u79c1\u8bbe\u8ba1\uff0c\u8ba4\u4e3a\u8fd9\u662f\u901a\u8fc7\u5b89\u5168\u5ba1\u67e5\u7684\u5173\u952e\u3002\u6709\u7528\u6237\u6307\u51fa\u5171\u4eab\u5927\u8111\u961f\u5217\u5df2\u6ee1\uff0c\u5efa\u8bae\u672c\u5730\u514b\u9686\u8fd0\u884c\u3002\u5f00\u53d1\u8005\u89e3\u7b54\u4e86\u4e0a\u4e0b\u6587\u4fdd\u7559\u95ee\u9898\uff1a\u672c\u5730Claude Code\u4f1a\u8bdd\u53ef\u4fdd\u7559\u5386\u53f2\u3002\u53e6\u6709\u4eba\u5173\u6ce8AI\u5982\u4f55\u907f\u514d\u6253\u65ad\u771f\u4eba\u5bf9\u8bdd\uff0c\u56de\u590d\u79f0AgentCall\u6709\u9632\u62a2\u8bdd\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                Gstack agents \u7684\u5de7\u5999\u4e4b\u5904\u5728\u4e8e\u5b83\u7cbe\u51c6\u51fb\u4e2d\u4e86\u4e24\u4e2a\u75db\u70b9\uff1a\u521b\u4e1a\u8005\u5bf9\u201c\u6743\u5a01\u53cd\u9988\u201d\u7684\u9965\u6e34\uff0c\u4ee5\u53ca\u5bf9AI\u5de5\u5177\u6570\u636e\u9690\u79c1\u7684\u666e\u904d\u4e0d\u4fe1\u4efb\u3002\u8868\u9762\u4e0a\u662fAI\u9762\u8bd5\u6a21\u62df\u5668\uff0c\u5b9e\u5219\u662f\u901a\u8fc7\u201cGarry Tan\u7684\u4eba\u7269\u8eab\u4efd\u201d\u548c\u201c\u672c\u5730\u8111\u201d\u8fd9\u4e24\u4e2a\u7cbe\u5999\u94a9\u5b50\uff0c\u6765\u63a8\u5e7f\u5176\u5e95\u5c42\u7684AgentCall API\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u90a3\u51e0\u4e2aYC\u89d2\u8272\u7684\u201c\u6f14\u6280\u201d\uff0c\u800c\u5728\u4e8e\u5b83\u793a\u8303\u4e86\u4e00\u79cd\u8303\u5f0f\uff1aAI\u4ee3\u7406\u4eba\uff08agent\uff09\u4ece\u88ab\u52a8\u7684\u8bb0\u5f55\u8005\uff0c\u8fdb\u5316\u4e3a\u4e3b\u52a8\u3001\u6709\u89d2\u8272\u3001\u80fd\u8bed\u97f3\u6253\u65ad\u7684\u53c2\u4e0e\u8005\u3002MIT\u5f00\u6e90\u548c\u672c\u5730\u5904\u7406\u7684\u8bbe\u8ba1\uff0c\u65e2\u964d\u4f4e\u4e86\u63a5\u5165\u95e8\u69db\uff0c\u53c8\u4e3aB\u7aef\u5b89\u5168\u5408\u89c4\u94fa\u4e86\u8def\u3002\u4f46\u98ce\u9669\u4e5f\u5f88\u660e\u663e\u2014\u2014\u5f53\u524d\u4f9d\u8d56\u7528\u6237\u81ea\u5efa\u201c\u5927\u8111\u201d\u548c\u672c\u5730Claude Code\uff0c\u4f53\u9a8c\u95e8\u69db\u6781\u9ad8\uff0c\u5171\u4eab\u961f\u5217\u7684\u62e5\u5835\u5df2\u7ecf\u66b4\u9732\u4e86\u8fd9\u4e2a\u6a21\u578b\u7684\u8106\u5f31\u6027\u3002\u672c\u8d28\u4e0a\uff0c\u5b83\u7528\u6781\u9ad8\u7684\u5f00\u53d1\u95e8\u69db\u6362\u53d6\u4e86\u7075\u6d3b\u7684\u9690\u79c1\u627f\u8bfa\uff0c\u66f4\u50cf\u4e00\u4e2aTo Developers\u7684\u6280\u672fDemo\uff0c\u800c\u975e\u4e00\u4e2aTo End Users\u7684\u5373\u5f00\u5373\u7528\u4ea7\u54c1\u3002\u5982\u679cAgentCall API\u4e0d\u80fd\u5728\u672a\u6765\u63d0\u4f9b\u8db3\u591f\u5f3a\u5927\u4e14\u4f4e\u5ef6\u8fdf\u7684\u6258\u7ba1\u5927\u8111\uff0c\u8fd9\u5957\u201c\u9762\u8bd5\u5b98\u201d\u5f88\u5feb\u5c31\u4f1a\u56e0\u4e3a\u4e0d\u591f\u667a\u80fd\u3001\u53cd\u5e94\u8fdf\u949d\u6216\u89d2\u8272\u611f\u5d29\u584c\u800c\u6ca6\u4e3a\u5671\u5934\u3002\u771f\u6b63\u7684\u7ade\u4e89\u529b\uff0c\u53d6\u51b3\u4e8eAPI\u751f\u6001\u80fd\u5426\u8ba9\u4efb\u4f55\u4ee3\u7406\u90fd\u80fd\u65e0\u7f1d\u3001\u667a\u80fd\u5730\u201c\u6324\u8fdb\u201d\u4efb\u4f55\u4f1a\u8bae\uff0c\u800c\u4e0d\u662f\u4ec5\u4ec5\u8868\u6f14\u4e00\u573a\u660e\u661f\u6a21\u4eff\u79c0\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\">AI YC interview with Gstack agents <\/span>\n                <\/div>\n<div class=\"comment-content\">Garry Tan&#8217;s open-sourced gstack specialists \u2014 CEO, CSO, QA Lead, a YC-office-hours partner and 15 more \u2014 join your real Google Meet as voice bots with 3D avatars. They open in-persona, take turns, critique your shared screen out loud, and drop notes in chat. Free, MIT, and the brain is your own coding-agent session. Built on AgentCall.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Maker here \ud83d\udc4b I built gstack to answer one question: what does a meeting feel like when AI agents are participants, not notetakers?<\/p>\n<p>So they join your Google Meet as voice bots. The YC-partner persona opens with &#8220;what are you working on, and who actually wants it?&#8221; \u2014 and honestly it&#8217;s uncomfortable in the best way. Share your screen and the senior-designer persona scores your page out loud, then posts the points to chat.<\/p>\n<p>Three things I care about:<br \/>\n1. Honest open source \u2014 the whole platform is MIT (github.com\/pattern-ai-labs\/gstack-joins-meeting), and the personas are Garry Tan&#8217;s, credited and MIT.<br \/>\n2. The &#8220;brain&#8221; is YOUR coding-agent session (Claude Code \/ Cursor \/ Codex) on your own laptop \u2014 no audio or files leave your machine, just transcripts, only for calls you start.<br \/>\n3. gstack is really a demo of AgentCall (agentcall.dev) \u2014 the API that lets any agent take a seat in a meeting. If you build agents, you can put yours in a call too.<\/p>\n<p>Try it free, no card: gstack-meeting.com. I&#8217;ll be here all day \u2014 would love your feedback.<\/p><\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@anand_balakrishnan5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anand_balakrishnan5<\/a>&nbsp;What a timing, YC application end date is tomorrow. <\/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>Cool stuff \ud83d\ude80, Don&#8217;t know how you pulled this off but getting gstack agents to join meetings is like a major upgrade to <a href=\"https:\/\/www.producthunt.com\/@garrytan\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"garrytan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@garrytan<\/a> &#8216;s gstack. Even though i was stuck in the shared queue for some moment, i still had it running using my own claude code as brain, Had a call with the gstack CEO and I&#8217;m already loving it. \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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey all \ud83d\udc4b<\/p>\n<p>Quick update: we\u2019re seeing heavy usage and the shared brain pool is currently at capacity. <\/p>\n<p>For now, please clone the repo, create your own brain, and run it locally. <\/p>\n<p>Also, this is a self-learning agent. If you run into problems, just ask it to resolve them and it will work on fixing them.<\/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>Having agents critique a shared screen in real time is a strong idea. Can each persona retain context across multiple meetings, or does every call start fresh?<\/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\/@adityaharish2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adityaharish2002<\/a>&nbsp;Brain is your Claude Code session. If you resume the same session, it will retain all the previous context.<\/p>\n<\/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 local-brain \/ no audio leaving the laptop detail is what would actually get this past a company&#8217;s security review, most tools in this space cannot say that honestly. curious about the live-meeting etiquette side though &#8211; when a persona jumps in to critique the shared screen out loud, how does it know not to talk over an actual human who started speaking at the same moment. is there a turn-taking signal or does it just wait for a pause<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;For a completely local experience, install the gstack skill in your claude code and the  <a href=\"http:\/\/heyski.io\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">heyski.io<\/a> voice, which will let you talk completely local and on-device.<\/p>\n<p>In gstack x <a href=\"http:\/\/agentcall.dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">agentcall.dev<\/a>, the brain is currently shared by the agents in the demo. So, they know when someone else is speaking. It is also possible to have individual brain for each agent. In that case, there is barge in prevention in the agentcall skill, which will prevent the interruptions properly.<\/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 local brain running on your own machine is the detail that actually matters here \u2014 most meeting AI tools quietly route everything through their infrastructure and call it &#8216;private.&#8217; The open MIT license on the personas is a nice architectural choice too. The part I&#8217;d dig into as a developer is the AgentCall API: when I bring my own agent into a call, does it receive raw transcript chunks in real time, or does gstack buffer and parse before the agent sees anything? The latency and chunk boundary design determines whether a custom agent can stay coherent during a fast conversation.<\/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\/@hi_i_am_mimo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hi_i_am_mimo<\/a>&nbsp;This project code is available in Git. GStack skill is also available on GitHub. You can analyse the code and run it locally on your PC. You can also just ask your claude code to use <a href=\"http:\/\/agentcall.dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">agentcall.dev<\/a> skills (available on git) and gstack from Garry to join the meeting. And it should work well.<\/p>\n<p>If you want to run it completely private on your own PC, use <a href=\"http:\/\/heyski.io\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">heyski.io<\/a> to talk to claude code completely on your PC. AgentCall streams the transcript from its own services in realtime and doesn&#8217;t retain data unless asked explicitly to. Else it is in-memory and discarded after each call ends.<\/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\">#11<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/JLYIQK7Y6P5HT5\" class=\"app-title\">localskills.sh<\/a><\/p>\n<div class=\"one-liner\">AI Skill &#038; MCP server management for teams &#038; enterprises<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">113<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>localskills.sh \u662f\u4e00\u4e2a\u9762\u5411\u56e2\u961f\u548c\u4f01\u4e1a\u7684AI\u6280\u80fd\u4e0eMCP\u670d\u52a1\u5668\u7ba1\u7406\u4e2d\u5fc3\uff0c\u89e3\u51b3\u5f00\u53d1\u8005\u5728\u4e0d\u540cAI\u7f16\u7801\u5de5\u5177\uff08\u5982Cursor\u3001Claude Code\u7b49\uff09\u95f4\u91cd\u590d\u521b\u5efa\u3001\u5171\u4eab\u548c\u5b89\u88c5Agent\u89c4\u5219\u4e0e\u6280\u80fd\u65f6\u201c\u6b7b\u5728dotfiles\u91cc\u201d\u7684\u75db\u70b9\uff0c\u901a\u8fc7\u4e00\u6761\u547d\u4ee4\u5b9e\u73b0\u8de8\u5de5\u5177\u7684\u6807\u51c6\u5316\u90e8\u7f72\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\/dfd1725b-f7dd-40d8-baab-8d442c3984dc.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\/9da275fe-a695-4b0d-96d4-b99162a52f0b.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\/33bc2be7-636f-4d29-8a60-bfd7a3baaa83.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\/6c0d698e-dd8a-4d35-8e7c-56860dfd208d.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\/98a23855-3cce-41bf-8bb9-d82287e81a83.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\/b5dfeab9-20a2-4e7f-8a67-3a7e76608fa9.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\/51d26bea-ab3e-47f4-80c7-5e0d67a37763.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/-m0jz4RSmeE\"><source src=\"https:\/\/youtu.be\/-m0jz4RSmeE\" 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\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u6280\u80fd\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">MCP\u670d\u52a1\u5668<\/span><br \/>\n            <span class=\"tag\">\u56e2\u961f\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u7248\u672c\u63a7\u5236<\/span><br \/>\n            <span class=\"tag\">\u89c4\u5219\u5171\u4eab<\/span><br \/>\n            <span class=\"tag\">Agent\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u7ea7<\/span><br \/>\n            <span class=\"tag\">\u5b89\u5168\u6cbb\u7406<\/span><br \/>\n            <span class=\"tag\">\u8de8\u5e73\u53f0\u517c\u5bb9<\/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\u80af\u5b9a\u201c\u89e3\u51b3dotfiles\u95ee\u9898\u201d\u548c\u8de8\u5de5\u5177\u4e00\u952e\u5b89\u88c5\uff0c\u4f46\u6838\u5fc3\u8d28\u7591\u96c6\u4e2d\u5728\uff1a\u6280\u80fd\u7248\u672c\u6f02\u79fb\u4e0e\u4e0d\u53ef\u8ffd\u6eaf\u6027\uff08\u8fd0\u884c\u540e\u65e0\u6cd5\u8bc1\u660e\u54ea\u4e9b\u6280\u80fd\u88ab\u52a0\u8f7d\uff09\u3001\u53d1\u5e03\u6743\u9650\u7f3a\u4e4f\u4ee3\u7801\u5ba1\u67e5\uff08\u4ec5\u9760\u547d\u540d\u7a7a\u95f4\u6743\u9650\u6613\u5f15\u53d1\u4f9b\u5e94\u94fe\u653b\u51fb\uff09\u3001\u7f3a\u4e4f\u7248\u672c\u9501\u5b9a\u548c\u9501\u5b9a\u6587\u4ef6\u3001\u6280\u80fd\u8d28\u91cf\u4fdd\u969c\uff08\u65e0\u9884\u89c8\/\u5dee\u5f02\u5bf9\u6bd4\u3001\u65e0\u4f7f\u7528\u6570\u636e\u7edf\u8ba1\uff09\uff0c\u4ee5\u53ca\u6280\u80fd\u63cf\u8ff0\u51b2\u7a81\u5bfc\u81f4Agent\u9009\u62e9\u9519\u8bef\u7b49\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                localskills.sh\u7cbe\u51c6\u51fb\u4e2d\u4e86AI\u8f85\u52a9\u7f16\u7a0b\u573a\u666f\u4e2d\u4e00\u4e2a\u65e5\u76ca\u5c16\u9510\u7684\u75db\u70b9\u2014\u2014\u5f53\u56e2\u961f\u89c4\u6a21\u6269\u5927\uff0c\u4e2a\u4f53\u5f00\u53d1\u8005\u7684\u201c\u9690\u5f0f\u77e5\u8bc6\u201d\u901a\u8fc7\u96f6\u6563\u89c4\u5219\u6587\u4ef6\u5728\u540c\u4e8b\u95f4\u65e0\u58f0\u4f20\u9012\uff0c\u6700\u7ec8\u6ca6\u4e3a\u4e00\u7eb8\u7a7a\u6587\u3002\u5176\u201c\u4e00\u6761\u547d\u4ee4\u5b89\u88c5\u5230\u6240\u6709\u5de5\u5177\u201d\u7684\u8de8\u5e73\u53f0\u517c\u5bb9\u6027\uff0c\u786e\u5b9e\u5728\u5de5\u5177\u94fe\u788e\u7247\u5316\u7684\u5f53\u4e0b\u63d0\u4f9b\u4e86\u7a00\u7f3a\u7684\u6807\u51c6\u5316\u4ef7\u503c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u76ee\u524d\u66b4\u9732\u51fa\u7684\u95ee\u9898\u8fdc\u6bd4\u5176\u89e3\u51b3\u7684\u95ee\u9898\u66f4\u503c\u5f97\u8b66\u60d5\u3002**\u6700\u81f4\u547d\u7684\u662f\u201c\u4e0d\u53ef\u8bc1\u660e\u6027\u201d**\uff1aAgent\u8fd0\u884c\u65f6\u65e0\u6cd5\u65ad\u5b9a\u67d0\u6761\u6280\u80fd\u662f\u5426\u771f\u6b63\u8fdb\u5165\u4e0a\u4e0b\u6587\uff0c\u800c\u5931\u8d25\u65f6\u7684\u8868\u73b0\u5e76\u975e\u62a5\u9519\uff0c\u800c\u662f\u201c\u8f7b\u5fae\u6076\u5316\u4f46\u770b\u8d77\u6765\u6b63\u5e38\u201d\u3002\u8fd9\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u9ed1\u7bb1\u4fe1\u4efb\u95ee\u9898\u2014\u2014\u5728AI\u884c\u4e3a\u4e0d\u53ef\u5b8c\u5168\u9884\u671f\u7684\u60c5\u51b5\u4e0b\uff0c\u4efb\u4f55\u7ba1\u7406\u5de5\u5177\u82e5\u4e0d\u80fd\u63d0\u4f9b\u4e8b\u540e\u5ba1\u8ba1\u7684\u8bc1\u636e\u94fe\uff08\u5982\u6280\u80fd\u52a0\u8f7d\u65e5\u5fd7\u3001\u7248\u672c\u5feb\u7167\u4e0e\u63a8\u7406\u8f68\u8ff9\u7ed1\u5b9a\uff09\uff0c\u5c31\u53ea\u662f\u5728\u5236\u9020\u66f4\u4f18\u96c5\u7684\u6df7\u4e71\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5176\u6b21\uff0c**\u6743\u9650\u6a21\u578b\u4e0e\u4f9b\u5e94\u94fe\u5b89\u5168\u5b58\u5728\u7ed3\u6784\u6027\u6f0f\u6d1e**\u3002\u5373\u4fbf\u652f\u6301\u7248\u672c\u56fa\u5b9a\uff0c\u4f46MCP\u534f\u8bae\u672c\u8eab\u7f3a\u4e4f\u4e3b\u52a8\u63a8\u9001\u673a\u5236\uff0c\u610f\u5473\u7740\u6280\u80fd\u66f4\u65b0\u540e\uff0c\u65e7\u4efb\u52a1\u4ecd\u6cbf\u7528\u65e7\u7248\u672c\u4f46\u5f00\u53d1\u8005\u4e0d\u77e5\u60c5\u3002\u66f4\u5371\u9669\u7684\u662f\uff0c\u53ea\u8981\u62e5\u6709\u547d\u540d\u7a7a\u95f4\u53d1\u5e03\u6743\uff0c\u65e0\u9700\u4efb\u4f55Merge Request\u6216\u4ee3\u7801\u5ba1\u67e5\u5c31\u80fd\u9759\u9ed8\u6539\u53d8\u6240\u6709Agent\u7684\u884c\u4e3a\u3002\u8fd9\u76f4\u63a5\u590d\u73b0\u4e86npm\u751f\u6001\u201cleft-pad\u201d\u4e8b\u4ef6\u7684\u6559\u8bad\u2014\u2014\u4e00\u4e2a\u6ca1\u6709Gate\u673a\u5236\u7684\u6ce8\u518c\u8868\uff0c\u672c\u8d28\u4e0a\u5c31\u662f\u5206\u5e03\u5f0f\u653b\u51fb\u7684\u52a0\u901f\u5668\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u6765\u770b\uff0c\u793e\u533a\u771f\u6b63\u9700\u8981\u7684\u4e0d\u662f\u4e00\u4e2a\u201c\u6280\u80fd\u5b58\u7ba1\u5904\u201d\uff0c\u800c\u662f\u4e00\u4e2a\u5177\u5907\u4ee5\u4e0b\u8981\u7d20\u7684\u7f16\u6392\u5c42\uff1a\u53ef\u9a8c\u8bc1\u7684\u8fd0\u884c\u65f6\u8bc1\u636e\u94fe\u3001\u5e26\u5ba1\u6279\u6d41\u7684\u53d8\u66f4\u7ba1\u7406\u3001\u4ee5\u53ca\u6280\u80fd\u95f4\u7684\u51b2\u7a81\u68c0\u6d4b\u673a\u5236\uff08\u53c2\u8003\u8bc4\u8bba\u4e2d\u63d0\u5230\u7684200\u6761\u6280\u80fd\u63cf\u8ff0\u76f8\u4e92\u7ade\u4e89\u7684\u95ee\u9898\uff09\u3002\u5f53\u524d\u4ea7\u54c1\u66f4\u50cf\u662f\u4e00\u4e2a\u534f\u4f5c\u5f0fdotfiles\u4ed3\u5e93\uff0c\u800c\u975e\u4e00\u4e2a\u53ef\u4fe1\u7684Agent\u6cbb\u7406\u7cfb\u7edf\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5efa\u8bae\u56e2\u961f\u5c3d\u5feb\u5c06\u7cbe\u529b\u4ece\u201c\u517c\u5bb9\u6027\u201d\u8f6c\u5411\u201c\u53ef\u5ba1\u8ba1\u6027\u4e0e\u786e\u5b9a\u6027\u201d\uff1a\u5c06\u6280\u80fd\u7248\u672c\u54c8\u5e0c\u548c\u4e0a\u4e0b\u6587\u5feb\u7167\u7ed1\u5b9a\u5230\u6bcf\u6b21\u63a8\u7406\u8bf7\u6c42\uff0c\u63d0\u4f9b\u201c\u6280\u80fd\u6267\u884c\u5ba1\u8ba1\u8868\u201d\uff1b\u5f15\u5165\u7c7bGitHub PR\u7684\u8d21\u732e\u5ba1\u6838\u6d41\u7a0b\uff1b\u4ee5\u53ca\u5bf9\u6280\u80fd\u63cf\u8ff0\u5411\u91cf\u5316\u6a21\u62df\u51b2\u7a81\u8bc4\u5206\u3002\u5426\u5219\uff0c\u8fd9\u4e2a\u4ea7\u54c1\u53ea\u662f\u5c06\u5355\u70b9\u6df7\u4e71\u8f6c\u5316\u4e3a\u4e86\u7cfb\u7edf\u7ea7\u6b67\u4e49\uff0c\u90a3\u624d\u662f\u6bd4dotfiles\u66f4\u53ef\u6015\u7684\u7ba1\u7406\u5669\u68a6\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\">localskills.sh<\/span>\n                <\/div>\n<div class=\"comment-content\">Create, share, and install reusable agent skills and rules for Cursor, Claude Code, Windsurf, and more. One install command, every tool.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey PH \ud83d\udc4b Matthew here.<\/p>\n<p>Everyone is writing skills and rules for their coding agents, and almost all of them die in someone&#8217;s dotfiles. localskills.sh is a registry that fixes that.<\/p>\n<p>Publish a skill once, install it into Claude Code, Cursor, Windsurf, Codex, or Copilot with one command. Teams get a private namespace with permissions, SSO, and two-way GitHub sync. There&#8217;s an MCP server, so your agent can pull skills on its own mid-task.<\/p>\n<p>What&#8217;s the one skill you&#8217;d want your whole team using?<\/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>The version question upthread has a quieter cousin, and I think it is the one that actually bites.<\/p>\n<p>Drift is at least detectable. Two people compare notes and find different versions. A skill that fails to load at all, or loads a version nobody expected, produces no signal whatsoever. A missing dependency throws. A missing skill just means the agent answers without the rules that were meant to constrain it, and that answer looks completely normal. I keep my own agent rules in one global file with a stack of skills beside it, and the runs that cost me were never the ones that errored. They were the ones where a rule sitting right there on disk plainly did not reach the model, and nothing in the output said so.<\/p>\n<p>So underneath the permissions and pinning questions: can a run prove which skills were in its context, after the fact? Installed and loaded are different claims, and only one of them is checkable right now.<\/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\/@abdullah_javaid3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@abdullah_javaid3<\/a>&nbsp;This is a really interesting problem we will look into. With what we have currently, if you load a skill via the MCP, the version is loaded into context as part of the MCP response and will persist in context after compaction.<\/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>Mine would be a pre-deploy checklist skill, the boring one nobody keeps updated. The mid-task pull is the part I would want to understand though. If a skill carries rules that shape what the agent does, whoever can publish to the namespace can change agent behaviour without a code review. Is publishing gated by the same reviewers as a repo merge, or by namespace permission alone?<\/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\/@rahulladumor\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rahulladumor<\/a>&nbsp;A few things to gate a supply chain skill update attack here. We have granular ACL for skills and folders and role based permission systems in LocalSkills, we also support pinning down an exact version (versions are immutable) of a skill to fetch via the cli or MCP. It is definitely in the works though to support a more complete multi user contribution system similar to GitHub pull requests.<\/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 &#8220;dies in someone&#8217;s dotfiles&#8221; framing is exactly right \u2014 I&#8217;ve seen the same happen with .cursorrules and Cursor rules files that only the senior who wrote them actually knows about. One thing I&#8217;d want to understand before rolling this out: is the skills registry self-hosted by default, or does it live in your cloud? If team-specific conventions end up baked into a skill definition \u2014 internal API patterns, data handling rules \u2014 that changes the trust model depending on where the registry lives.<\/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\/@hi_i_am_mimo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hi_i_am_mimo<\/a>&nbsp;The registry is hosted on the LocalSkills cloud, however you can link a Github repository to LocalSkills for continuous data export so we won&#8217;t lock your data in the platform. <\/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 &#8220;dies in someone&#8217;s dotfiles&#8221; framing is exactly right, every team I&#8217;ve seen has one senior engineer&#8217;s excellent cursor rules file that nobody else knows exists. to answer your question &#8211; probably a PR-description skill that pulls from the actual diff instead of the commit messages, ours are always out of sync with what actually changed.<\/p>\n<\/p>\n<p>question on the mid-task pull via MCP &#8211; if a skill gets updated mid-sprint, does an agent already partway through a task on the old version get bumped automatically, or does it keep running on whatever it pulled at task start? version drift across a team seems like the thing that&#8217;d quietly cause the most confusion if two people&#8217;s agents are working off different skill versions without realizing it<\/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 review. For your question, you would have to ask the agent to re-pull the skill just because the MCP protocol does not currently have a method of sending an update to the end consumer. <\/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>Would love to see a way to version-pin specific skills when installing, so a team can lock to a known-good build instead of always pulling latest. Something like a lockfile or a `&#8211;version` flag per skill would make shared agent rules way more reliable across projects.<\/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 single install command across multiple editors is genuinely useful. Saved me from copy-pasting the same skill definitions into Cursor and Claude Code for the third time.<\/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>A nice take on making agent skills portable across editors. One thing that would help me get started: a built-in preview or diff view that shows exactly what each skill will inject into my project before I run the install command, so I can trust what is being added to my rules and configs.<\/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>A versioning system for skills would be huge, something like pinning specific versions when installing so updates don&#8217;t silently break workflows. Maybe a `localskills install <a href=\"mailto:owner%2Fskill@1.2.0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">owner\/skill@1.2.0<\/a>` syntax with a lockfile would make it way more reliable for team setups.<\/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>Centralized skill and MCP management feels increasingly necessary for teams. Does localskills support signed provenance, version pinning, approval policies, and rapid rollback when a skill update causes unexpected behavior?<\/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>One install command across every tool is the obviously useful part, so I will ask about the part that tends to get hard later. Once a skill is installed across a team, how does anyone know it still does what it did last month? The underlying tools move, prompts rot quietly, and the failure mode is not an error, it is slightly worse output that nobody attributes to the skill. Do you give a team any way to see that a shared skill still behaves, or is that on the author to keep an eye on? Asking because reusable prompt assets are easy to share and genuinely hard to keep honest. Congrats on shipping 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The thing I&#8217;d want from a registry that a dotfile never had to solve is selection. I keep 16 skills in one project, and the failure mode isn&#8217;t that they die unread \u2014 it&#8217;s that two of them describe overlapping territory and the agent picks the wrong one, or reaches for none and answers from general knowledge instead. Right now that&#8217;s self-limiting, because installing a skill costs me the work of writing it. One install command removes that cost, and a team namespace with 200 skills in it turns the description string into the real interface: whatever sits in that field is competing against 199 others for a decision the model makes in a fraction of a second.<\/p>\n<p>Do you do anything about that at publish time \u2014 collision detection against descriptions already in the namespace, or a lint that flags a new skill whose trigger surface overlaps an existing one? Abdullah&#8217;s point about never being able to prove what loaded gets sharper at that size, because &#8220;it never fired&#8221; and &#8220;the wrong one fired&#8221; look identical from outside the run.<\/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><a href=\"https:\/\/www.producthunt.com\/@matthew_zhao3\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"matthew_zhao3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@matthew_zhao3<\/a> The governance and versioning answers above cover a lot of ground. One thing I didn&#8217;t see addressed: once a skill is published and adopted, can an admin see usage data, like which skills are actually being pulled across the org versus sitting unused?<\/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\/@clement_avq\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clement_avq<\/a>&nbsp;Yes! as well as which version of which skill is consumed by which user<\/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>Would love to see a simple way to preview what a skill does before installing it, like a short description or example output. Right now I have to trust the repo blindly, and a quick &#8220;what you&#8217;ll get&#8221; snippet would make it way easier to decide which skills to grab.<\/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\/@upton_zen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@upton_zen<\/a>&nbsp;The idea currently is that 99% of what you install at LocalSkills is your organization&#8217;s internal skills, however we can definitely look into a AI summarization feature for what a skill does. <\/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 dotfiles problem is real. The cross-tool support is what makes this genuinely useful though: Claude Code, Cursor, and Windsurf each interpret rule directives differently enough that a shared skill definition needs to either normalize across them or emit tool-specific outputs. How does localskills handle skills that need slightly different behavior per agent runtime without requiring separate skill definitions for each tool?<\/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\/@anand_thakkar1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anand_thakkar1<\/a>&nbsp;We have not seen a usecase like that in the wild where you can not define various behaviors in the skill files themselves. Happy to hear more about your use case.<\/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>one thing not covered above &#8211; what happens when two installed skills actively contradict each other. say one teammate published a skill that says always squash commits and another published one that says never rewrite history. does localskills flag that kind of conflict when both get pulled into the same session, or does the agent just silently pick whichever loaded last and nobody notices until someone&#8217;s history gets rewritten unexpectedly.<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;The general idea is that you pick the skill you install from your registry, just by loading LocalSkills MCP doesn&#8217;t mean it will load all the skills in the workspace.<\/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\/RRZOOXTDOETT7D\" class=\"app-title\">Comms<\/a><\/p>\n<div class=\"one-liner\">Launch iMessage agents in seconds<\/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>Comms\u572830\u79d2\u5185\u4e3a\u4f01\u4e1a\u5f00\u901a\u771f\u5b9eiMessage\u667a\u80fd\u4f53\u901a\u9053\uff0c\u514d\u53bb\u8fd0\u8425\u5546\u5ba1\u6279\u3001\u7b49\u5f85\u548c\u6708\u8d39\uff0c\u5e76\u5728\u5bf9\u8bdd\u5185\u76f4\u63a5\u5b8c\u6210\u5ba2\u670d\u3001\u9884\u7ea6\u3001\u6536\u6b3e\u7b49\u4e1a\u52a1\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\/cb64b8b4-0cb3-4dd3-a0fd-c20dd190f1d4.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\/93c07540-2086-4dd9-b771-4f05d6d8f4da.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\/2d18fc56-bd1e-493a-af86-a9ed90da1323.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\/42cd7268-dd25-4b5f-b0b3-dc7d83aed885.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/0hjMYjNr_As\"><source src=\"https:\/\/youtu.be\/0hjMYjNr_As\" 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\">Messaging<\/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\">iMessage\u667a\u80fd\u4f53<\/span><br \/>\n            <span class=\"tag\">\u4f01\u4e1a\u901a\u8baf<\/span><br \/>\n            <span class=\"tag\">\u5ba2\u6237\u652f\u6301<\/span><br \/>\n            <span class=\"tag\">\u5546\u4e1a\u77ed\u4fe1<\/span><br \/>\n            <span class=\"tag\">AI\u5ba2\u670d<\/span><br \/>\n            <span class=\"tag\">\u514d\u5b89\u88c5\u670d\u52a1<\/span><br \/>\n            <span class=\"tag\">\u5373\u65f6\u901a\u8bafAPI<\/span><br \/>\n            <span class=\"tag\">\u5bf9\u8bdd\u5f0f\u5546\u52a1<\/span><br \/>\n            <span class=\"tag\">\u4f4e\u4ee3\u7801\u5f00\u53d1<\/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\u5bf9\u79d2\u7ea7\u5f00\u901a\u548c\u514d\u8fd0\u8425\u5546\u6d41\u7a0b\u9ad8\u5ea6\u8ba4\u53ef\uff0c\u4f46\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u5728\uff1a\u5171\u4eab\u7ebf\u8def\u88ab\u82f9\u679c\u5c01\u7981\u7684\u98ce\u9669\u9694\u79bb\u63aa\u65bd\u3001iMessage\u8f6cSMS\u65f6\u5bf9\u8bdd\u8fde\u8d2f\u6027\u3001\u7fa4\u804a\u573a\u666f\u7684\u5408\u89c4\u63a7\u5236\uff0c\u4ee5\u53ca\u5185\u5d4c\u6536\u6b3e\u662f\u5426\u7b26\u5408PCI\u5408\u89c4\uff08\u9700\u786e\u4fdd\u5361\u53f7\u4e0d\u843d\u5165\u804a\u5929\u6587\u672c\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                Comms\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u53c8\u4e00\u4e2aAI\u5ba2\u670d\u201d\uff0c\u800c\u5728\u4e8e\u5b83\u5207\u4e2d\u4e86\u82f9\u679c\u751f\u6001\u4e2d\u4e00\u4e2a\u88ab\u957f\u671f\u5ffd\u89c6\u7684\u57fa\u5efa\u7a7a\u767d\u2014\u2014\u4f01\u4e1a\u7ea7iMessage\u76f4\u8fde\u901a\u9053\u3002\u4f20\u7edf\u65b9\u6848\u8017\u65f6\u957f\u3001\u6210\u672c\u9ad8\uff0c\u672c\u8d28\u662f\u8fd0\u8425\u5546\u548c\u82f9\u679c\u4e4b\u95f4\u7684\u6d41\u7a0b\u65ad\u5c42\uff0cComms\u7528\u6280\u672f\u624b\u6bb5\u76f4\u63a5\u5f25\u5408\u4e86\u8fd9\u6761\u88c2\u7f1d\uff0c\u8ba9iMessage\u53d8\u6210\u6bd4\u7f51\u9875\u3001App\u66f4\u4f4e\u6469\u64e6\u7684\u670d\u52a1\u5165\u53e3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7280\u5229\u7684\u5730\u65b9\u5728\u4e8e\u5b9a\u4ef7\u903b\u8f91\uff1a\u514d\u8d39\u5c423000\u6761\u5df2\u591f\u5c0f\u56e2\u961f\u8bd5\u6c34\uff0c50\u7f8e\u5143\u6253\u5305\u667a\u80fd\u4f53\u548c\u6536\u4ef6\u7bb1\uff0c\u5bf9\u6bd4\u4e1a\u5185\u201c\u79df\u53f7\u8d39+\u6d88\u606f\u8d39\u201d\u7684\u53cc\u91cd\u6536\u5272\uff0c\u7b80\u76f4\u662f\u964d\u7ef4\u6253\u51fb\u3002\u4f46\u98ce\u9669\u540c\u6837\u4e0d\u53ef\u56de\u907f\uff1aiMessage\u7684\u5408\u6cd5\u6027\u5b8c\u5168\u4f9d\u8d56\u82f9\u679c\u7684\u5bb9\u5fcd\u5ea6\uff0c\u4e00\u65e6\u51fa\u73b0\u8fdd\u89c4\u6ee5\u7528\uff0c\u8d26\u6237\u96ea\u5d29\u5f0f\u5c01\u7981\u53ef\u80fd\u77ac\u95f4\u6467\u6bc1\u6574\u4e2a\u5171\u4eab\u53f7\u6c60\u7684\u4fe1\u4efb\u57fa\u7840\u3002\u8bc4\u8bba\u4e2d\u5173\u4e8e\u201c\u9694\u79bb\u63aa\u65bd\u201d\u548c\u201c\u8f6cSMS\u4fdd\u6301\u8fde\u8d2f\u201d\u7684\u8ffd\u95ee\uff0c\u6070\u6070\u6307\u5411\u4e86\u4ea7\u54c1\u6210\u719f\u5ea6\u7684\u6838\u5fc3\u77ed\u677f\u2014\u2014\u76ee\u524d\u4ec5\u4ee5\u201c\u6709\u4e13\u7528\/\u5171\u4eab\u7ebf\u8def\u53ef\u9009\u201d\u56de\u5e94\uff0c\u6280\u672f\u7ec6\u8282\u6a21\u7cca\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u6b64\u5916\uff0c\u201c\u4ed8\u6b3e\u5185\u5d4c\u201d\u82e5\u53ea\u662f\u8df3\u8f6c\u5230Token\u5316\u652f\u4ed8\u94fe\u63a5\u5219\u5c1a\u53ef\uff0c\u82e5\u8ba9AI\u76f4\u63a5\u89e3\u6790\u5361\u53f7\u6587\u672c\uff0cPCI\u5408\u89c4\u9690\u60a3\u5c06\u662f\u4e0a\u5e02\u7ea7\u4f01\u4e1a\u7684\u62d2\u7edd\u7406\u7531\u3002Comms\u5f53\u524d\u66f4\u9002\u5408\u4e2d\u4f4e\u98ce\u9669\u573a\u666f\uff08\u5ba2\u670d\u3001\u9884\u7ea6\u3001\u901a\u77e5\uff09\uff0c\u771f\u6b63\u64ac\u52a8\u5927\u5ba2\u6237\u8fd8\u9700\u8981\u5728\u5b89\u5168\u9694\u79bb\u3001\u4f1a\u8bdd\u5bb9\u9519\u3001\u5408\u89c4\u5ba1\u8ba1\u5c42\u9762\u62ff\u51fa\u786c\u51ed\u8bc1\u3002\u4e00\u53e5\u8bdd\uff1a\u65b9\u5411\u6781\u597d\uff0c\u4f46\u522b\u8ba9\u201c\u6781\u901f\u4e0a\u7ebf\u201d\u53d8\u6210\u201c\u6781\u901f\u7ffb\u8f66\u201d\u7684\u5f15\u5b50\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\">Comms<\/span>\n                <\/div>\n<div class=\"comment-content\">Getting an iMessage line for your business used to mean sales calls, carrier paperwork, weeks of waiting, and $225+ a month before your first text. Comms puts a live agent on a real iMessage line in about 30 seconds. Describe it in plain English or make one API call. It handles support, bookings, onboarding, and payments inside the thread people actually read. Free to start with 3,000 messages a month, then a flat $50.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey guys, I&#8217;m Cale, the co-founder of Comms. My partner Andrew and I set out on a mission to fix the way iMessage agents were handled. We spent thousands of dollars on lines that took weeks to set up and knew there had to be a better way. Now it takes one sentence, and your agent is live on a real line in about 30 seconds.<\/p>\n<p>We want iMessage agents to be a way for companies to grow with their customers through support, bookings, payments, and so much more. Communication has always evolved with new generations, and we believe pairing AI with iMessage is how that trend continues.<\/p>\n<p>The demo is the product. Text the live agent at comms.osis.co and ask it anything. Andrew and I are here all day &#8211; feel free to ask questions in the comments!<\/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\/@cale_lane\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cale_lane<\/a>&nbsp;Really impressed by how you&#8217;ve simplified something that traditionally takes weeks. The free tier is a great way to let businesses experience the product before scaling. Congrats on the launch! \ud83d\ude80 Looking forward to following your journey I&#8217;ll reach out separately as well.<\/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>Seconds-to-launch is a good promise, but iMessage is the one channel where the platform has no official path for this, so the interesting question is what&#8217;s underneath.<\/p>\n<p>Specifically: whose number is sending? If agents share infrastructure, one badly behaved deployment getting flagged seems like it would affect everyone downstream, and Apple&#8217;s enforcement isn&#8217;t something you can appeal your way out of quickly. Is there isolation per customer, and have you hit any rate ceilings yet in practice?<\/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\/@ark_y_k\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ark_y_k<\/a>&nbsp;We have both dedicated and shared lines or numbers available.<\/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>iMessage as an agent channel skips the app-install friction entirely, which is the right wedge for consumer use cases. The Apple Messages framework has always been tricky around delivery receipts and the SMS fallback. How do you handle agent session state when a thread silently switches from iMessage to SMS mid-conversation and the agent needs to stay coherent?<\/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>pricing comparison is big plus , most of those competitors charge just for the line, so the $50 &#8220;agents and inbox included&#8221; framing is a genuinely fairer comparison than it first looks<\/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\/@mohammed_messeguem\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mohammed_messeguem<\/a>&nbsp;Absolutely, making iMessage agents accessible and easy is our focus. They are the best way to talk to agents, and we want everyone to have the opportunity to build with them.<\/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 demo-is-the-product approach is the right call for proving this actually works. one thing I keep coming back to though: what happens if someone adds this agent&#8217;s number into a group iMessage thread instead of a 1:1 support convo? group consent and expectations are pretty different from a private support DM, and that feels like something you can&#8217;t really control from the API side once a customer decides to do 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Finally got a real iMessage line for my side project without dealing with carriers, set it up in like two minutes and the API docs were actually readable. Flat pricing beats the per-message surprises I kept getting elsewhere.<\/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 setup speed is genuinely impressive but the line in the description that catches my eye is &#8220;payments inside the thread&#8221; &#8211; collecting card details over iMessage is a different compliance bar than support\/bookings. is that handled through a tokenized link\/handoff so raw card numbers never actually land in the message thread itself, or is the agent parsing payment info directly out of chat text<\/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>Signed up and got a working iMessage line in under a minute, which still feels almost illegal. The plain-English setup actually understood what I threw at it without me rewriting the prompt three times.<\/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 30 second setup is honestly kind of wild compared to the carrier paperwork nightmare I went through last year for my business line. Really cool that it works through real iMessage too, not some random SMS gateway pretending to be Apple.<\/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><a href=\"https:\/\/www.producthunt.com\/@cale_lane\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"cale_lane\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cale_lane<\/a> Getting this error message <a href=\"https:\/\/snap.wrld.tech\/RLThWcL7NpmYBTJq7grl\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/snap.wrld.tech\/RLThWcL7NpmYBTJq7grl<\/a> &#8211; would love to try this out! <\/p>\n<\/p>\n<p>Also, emailed<\/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\/@ridgeway\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ridgeway<\/a>&nbsp;Thanks for bringing that to our attention! We&#8217;ve removed the cap and would love for you to try it now.<\/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\">#13<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/4Z62FS55OECVUN\" class=\"app-title\">Notate<\/a><\/p>\n<div class=\"one-liner\">Annotate anything for humans and their agents<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">105<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Notate\u662f\u4e00\u6b3e\u4e13\u4e3aUI\/UX\u534f\u4f5c\u8bbe\u8ba1\u7684\u667a\u80fd\u6807\u6ce8\u5de5\u5177\uff0c\u901a\u8fc7\u51bb\u7ed3\u60ac\u505c\u3001\u52a8\u753b\u5e27\u7b49\u77ac\u6001UI\u72b6\u6001\uff0c\u89e3\u51b3\u4e86\u8bbe\u8ba1\u5e08\u548c\u5f00\u53d1\u8005\u5728\u590d\u6742\u754c\u9762\u53cd\u9988\u4e2d\u201c\u96be\u4ee5\u7528\u8bed\u8a00\u7cbe\u51c6\u63cf\u8ff0\u89c6\u89c9\u95ee\u9898\u201d\u7684\u75db\u70b9\uff0c\u5e76\u8ba9\u6807\u6ce8\u7ed3\u679c\u76f4\u63a5\u4f9b\u4eba\u7c7b\u548cAI\u4ee3\u7406\u4f7f\u7528\u3002<\/p>\n<p>&#8212;<\/p>\n<p>### \u5173\u952e\u8bcd<br \/>\nUI\u534f\u4f5c\uff0c\u89c6\u89c9\u53cd\u9988\uff0c\u52a8\u753b\u6807\u6ce8\uff0c\u60ac\u505c\u72b6\u6001\u6355\u6349\uff0cAI\u4ee3\u7406\uff0c\u5c4f\u5e55\u5f55\u5236\uff0c\u624b\u52bf\u6807\u6ce8\uff0c\u8bbe\u8ba1\u8bc4\u5ba1\uff0c\u4ee3\u7801\u5ba1\u67e5\uff0c\u524d\u7aef\u5de5\u5177<\/p>\n<p>&#8212;<\/p>\n<p>### \u8bc4\u8bba\u6458\u8981<br \/>\n\u7528\u6237\u9ad8\u5ea6\u8ba4\u53ef\u201c\u51bb\u7ed3\u60ac\u505c\u72b6\u6001\u201d\u548c\u201c\u5e27\u7ea7\u52a8\u753b\u6355\u6349\u201d\u7684\u6838\u5fc3\u4ef7\u503c\u3002\u4e3b\u8981\u5efa\u8bae\u4e0e\u95ee\u9898\uff1a\u951a\u5b9a\u5230UI\u5143\u7d20\u800c\u975e\u5750\u6807\uff08\u5e03\u5c40\u53d8\u52a8\u540e\u6807\u6ce8\u5931\u6548\uff09\uff1b\u652f\u6301\u5f55\u5236\u4e3a\u89c6\u9891\u7247\u6bb5\uff1b\u9700\u9690\u79c1\u6a21\u7cca\/\u8131\u654f\u529f\u80fd\uff1b\u957f\u5f55\u5236\u6587\u4ef6\u4f53\u79ef\u62c5\u5fe7\uff1b\u671f\u671b\u63d0\u4f9b\u73af\u5883\u5143\u6570\u636e\uff08\u7a97\u53e3\u51e0\u4f55\u3001\u5e27\u65f6\u95f4\u6233\uff09\u4ee5\u652f\u6301\u56de\u5f52\u6bd4\u5bf9\u65b0\u65e7\u5f55\u50cf\u3002<\/p>\n<p>&#8212;<\/p>\n<p>### AI\u9510\u8bc4<br \/>\nNotate\u7684\u5de7\u5999\u4e4b\u5904\u5728\u4e8e\u5b83\u51c6\u786e\u6355\u6349\u4e86\u201c\u89c6\u89c9\u53cd\u9988\u201d\u8fd9\u4e00\u73af\u8282\u4e2d\uff0c\u4eba\u7c7b\u4e0eAI\u4e4b\u95f4\u6700\u5fae\u5999\u7684\u4f20\u9012\u65ad\u5c42\u3002\u4f20\u7edf\u622a\u56fe\u5de5\u5177\u4e22\u5931\u4e86UI\u7684\u201c\u65f6\u95f4\u6027\u201d\u2014\u2014\u60ac\u505c\u3001\u52a8\u753b\u8fc7\u6e21\u3001\u7126\u70b9\u6001\uff0c\u800c\u8fd9\u4e9b\u6070\u6070\u662f\u524d\u7aef\u6700\u68d8\u624b\u7684Bug\u6e29\u5e8a\u3002Notate\u7528\u201c\u51bb\u7ed3\u5e27+\u8bb0\u5f55\u73af\u5883\u5143\u6570\u636e\u201d\u7684\u65b9\u5f0f\uff0c\u5c06\u4e00\u6b21\u8089\u773c\u626b\u63cf\u8f6c\u5316\u4e3a\u7ed3\u6784\u5316\u7684\u3001\u53ef\u88abAI\u4ee3\u7406\u673a\u5668\u89e3\u6790\u7684\u201c\u884c\u4e3a\u8f68\u8ff9\u201d\uff0c\u4ece\u800c\u628a\u201c\u6211\u770b\u5230\u4e86\u95ee\u9898\u201d\u4ece\u4e2a\u4eba\u7ecf\u9a8c\uff0c\u5347\u7ea7\u4e3a\u56e2\u961f\u548cAI\u5171\u7528\u7684\u6807\u51c6\u8bc1\u636e\u3002<\/p>\n<p>\u7136\u800c\uff0c\u9879\u76ee\u7684\u771f\u6b63\u6311\u6218\u4e0d\u5728\u4e8e\u201c\u622a\u56fe\u7684\u6280\u672f\u201d\uff0c\u800c\u5728\u4e8e\u201c\u6807\u6ce8\u7684\u751f\u547d\u5468\u671f\u7ba1\u7406\u201d\u3002\u8bc4\u8bba\u4e2d\u6709\u4eba\u4e00\u9488\u89c1\u8840\u5730\u6307\u51fa\uff1a\u5f53\u5e03\u5c40\u79fb\u4f4d\uff0c\u57fa\u4e8e\u5750\u6807\u7684\u6807\u6ce8\u5f62\u540c\u865a\u8bbe\uff1b\u5f53\u73af\u5883\u53d8\u5316\uff0c\u56de\u653e\u9a8c\u8bc1\u4f9d\u7136\u662f\u624b\u52a8\u82e6\u529b\u3002\u521b\u59cb\u4eba\u5766\u8bda\u201c\u4e0d\u5047\u626e\u80fd\u590d\u73b0\u72b6\u6001\u201d\uff0c\u8fd9\u662f\u4e00\u79cd\u8bda\u5b9e\uff0c\u4f46\u4e5f\u66b4\u9732\u4e86\u4ea7\u54c1\u7684\u6838\u5fc3\u5c40\u9650\u2014\u2014\u5b83\u53ea\u662f\u4e00\u4e2a\u4f18\u79c0\u7684\u201c\u6446\u62cd\u5668\u5177\u201d\uff0c\u800c\u975e\u4e00\u4e2a\u95ed\u73af\u7684\u201c\u95ee\u9898\u8bca\u65ad\u6d41\u6c34\u7ebf\u201d\u3002<\/p>\n<p>Notate\u76ee\u524d\u7684\u4ef7\u503c\u66f4\u591a\u5728\u4e8e\u201c\u8f93\u5165\u4fa7\u201d\uff08\u6355\u6349\uff09\u548c\u201c\u4f20\u8f93\u4fa7\u201d\uff08\u5411AI\u8f93\u51fa\u683c\u5f0f\u5316\u4fe1\u606f\uff09\uff0c\u4f46\u5728\u201c\u8f93\u51fa\u4fa7\u201d\uff08\u9a8c\u8bc1\u3001\u8ffd\u8e2a\u3001\u95ed\u73af\uff09\u4ecd\u663e\u8584\u5f31\u3002\u5b83\u7684\u5dee\u5f02\u5316\u5728\u4e8e\u4e3aAI\u4ee3\u7406\u63d0\u4f9b\u4e86\u53ef\u8ba1\u7b97\u7684\u89c6\u89c9\u8bc1\u636e\uff0c\u4f46\u8981\u8ba9\u8fd9\u4e2a\u8bc1\u636e\u5728\u590d\u6742\u5de5\u4f5c\u6d41\u4e2d\u6301\u4e45\u6709\u6548\uff0cNotate\u5fc5\u987b\u89e3\u51b3\u201c\u6807\u6ce8\u951a\u5b9a\u6027\u201d\u548c\u201c\u73af\u5883\u53ef\u590d\u73b0\u6027\u201d\u8fd9\u4e24\u4e2a\u786c\u9aa8\u5934\u3002\u5b83\u73b0\u5728\u662f\u4e00\u4e2a\u806a\u660e\u7684\u5de5\u5177\uff0c\u4f46\u5982\u679c\u60f3\u6210\u4e3aUI\u534f\u4f5c\u7684\u6807\u914d\uff0c\u9700\u8981\u8fdb\u5316\u6210\u4e00\u5957\u751f\u6001\uff1a\u65e2\u670d\u52a1\u4e8e\u4eba\uff0c\u4e5f\u670d\u52a1\u4e8e\u4ee3\u7406\uff0c\u5e76\u8ba9\u4e24\u8005\u5728\u540c\u4e00\u4e2a\u201c\u89c6\u89c9\u4e8b\u5b9e\u201d\u4e0a\u5bf9\u8bdd\u3002<\/p><\/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\/39f119bc-b93c-4600-9f1e-38a7cafa6df9.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/hdpvK9lbnfg\"><source src=\"https:\/\/youtu.be\/hdpvK9lbnfg\" 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\/d68ff54b-16ba-42cb-bddd-9f7f5e52687e.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\/65ba4319-5c72-4a03-a6f7-334d98265639.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\/fc48b879-7fe5-4d94-9b0d-052370a587b7.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\/159b6cf4-d380-43c5-9ec9-bde295860d17.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\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Menu Bar Apps<\/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>AI\u89e3\u8bfb\u5931\u8d25\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                AI\u89e3\u8bfb\u5931\u8d25\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\">Notate<\/span>\n                <\/div>\n<div class=\"comment-content\">Notate is for anything where pointing beats describing: design and motion review, product walkthroughs, code review, and handoffs. Unlike screenshot tools, it freezes open menus, hover and focus states before they disappear, or records a flow so you can pin the exact frame where an animation breaks. Gesture-based annotation keeps the flow fast; smart crop and reopenable sessions preserve the image, comments, and context so feedback stays useful when it reaches a teammate or an agent.<\/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 built Notate because I spend most of my time on frontend work\u2014web, desktop, mobile, Electron, SwiftUI\u2014and the hardest UI problems are often the hardest to explain in words.<\/p>\n<p>When an animation\u2019s easing felt wrong or a bug only appeared between two states, my workflow was absurd: record the screen, ask an agent to split it into frames, find the relevant frame, annotate it, then explain what the annotation meant. Regular screenshot tools lose transient UI states and have no useful sense of motion. They\u2019re also awkward for designer feedback: the image and written context live separately, with no structured metadata to carry the feedback forward.<\/p>\n<p>Multimodal agents changed the equation. They\u2019re now genuinely good at understanding screenshots and annotations, so I wanted a system-wide tool that could capture anything\u2014not an annotation feature trapped inside one chat app.<\/p>\n<p>Notate freezes disappearing states, records motion frame by frame, lets me point and comment directly, and packages the visual with its context for a teammate or an agent. I\u2019ve used it for real work since the first prototype became functional; it started as a workaround and quietly became part of how I build.<\/p>\n<p>I\u2019d love to hear how you handle visual feedback today\u2014and where Notate could fit or fall short.<\/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\/@victor_aremu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@victor_aremu<\/a>&nbsp;Do designers and developers end up using Notate differently, or is the workflow pretty similar?<\/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>Love the freeze-on-hover idea, that&#8217;s been a pain point forever. One thing I&#8217;d really want: a way to tie comments to a specific element rather than just coordinates. When the layout shifts between draft rounds, my pinned feedback ends up pointing at the wrong button. Element-anchored notes would solve it.<\/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 capture half is solved here in a way I haven&#8217;t seen elsewhere, so my question is about the other end of the loop. I annotate the frame where the easing breaks, the agent changes the code \u2014 and now I have to get back to that exact state to see whether it&#8217;s fixed. Same hover, same interruption point in the animation, same window size. That reproduction step is manual, and it&#8217;s the reason I stopped filing my own visual bugs properly: the before was cheap, the after was a chore, so I&#8217;d eyeball it and move on.<\/p>\n<p>Does a .notate session carry enough to make the re-capture repeatable \u2014 app, window geometry, frame timestamp \u2014 so a second capture is comparable to the first frame by frame? A diffable before\/after pair is what would turn this from a feedback tool into a regression check, and the typed manifest you described to Anand sounds like it&#8217;s already most of the way there.<\/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\/@narek_keshishyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@narek_keshishyan<\/a>&nbsp;You&#8217;ve reframed the product and I spent the afternoon designing against it, so here&#8217;s the honest version. Today&#8217;s archive carries part of what you&#8217;d need: canvas size, every frame&#8217;s timestamp, duplicate markers, normalized annotations \u2014 so two same-rate recordings are already alignable in time. What it doesn&#8217;t yet pin is the environment (app, window geometry, display scale, capture rate). Those are cheap, additive fields, and they&#8217;re now first on the roadmap this question produced.<\/p>\n<\/p>\n<p>Where I landed after sitting with it: there are three primitives. The trace \u2014 each session becomes one truthful timeline: environment plus stimulus (cursor path, clicks, scroll \u2014 recorded as data alongside the frames, never keystroke contents), which agents can query (&#8220;where was the cursor at this frame?&#8221;) and humans can watch as a cursor overlay in playback. The diff \u2014 two traces aligned on motion start rather than record-press (nobody triggers an animation at the same instant twice; the first changed frame is the honest zero), compared with the same perceptual-signature math the dedupe engine already runs. And a CLI, so the agent that made the fix can record and diff its own verification pass instead of only reading exports.<\/p>\n<p>One limit I&#8217;m keeping on purpose: no replay guarantees. Your fix invalidates the recording by design \u2014 replaying old clicks against a moved button clicks the wrong thing \u2014 so Notate will never pretend to reproduce app state. It records what happened, verifies the second capture matches the first&#8217;s geometry and rate, and tells you exactly which frames diverge. Getting the app back to the moment stays with you or your agent \u2014 but with the trace in hand, that&#8217;s following instructions rather than remembering. And your bar is the one I&#8217;m building to: not CI-grade, just decisively cheaper than eyeballing.<\/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 freeze-frame capture for hover states is genuinely useful, that pain point always kills me with regular screenshot tools. one thing i&#8217;d love to see is a quick way to turn a pinned comment into a short loom-style video clip instead of just a still image, basically so i can show the broken animation in motion when a teammate opens the session. would make the handoff feel way more clear honestly.<\/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 hover-state capture is genuinely useful. I was reviewing a dropdown animation that kept closing before I could comment, and being able to freeze it mid-hover saved me a ton of back-and-forth with the dev.<\/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 honesty in this thread is what&#8217;s selling me on it tbh. one thing I didn&#8217;t see covered &#8211; since it&#8217;s a full screen recording tool, what happens when a password field or some other sensitive text is visible in a frame that gets captured. is there any blur\/redact step before the .notate file gets handed off to a teammate or an agent, or is it on the user to notice and re-record<\/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><a href=\"https:\/\/www.producthunt.com\/@victor_aremu\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"victor_aremu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@victor_aremu<\/a> Hey! Just checked out Notate. The gesture-based approach (closing a loop to snap a shape) is super clever. Since it exports markdown for agents, I&#8217;m curious how you see the UI evolving for non-devs like designers who might use this for handoffs? The current dark minimal vibe is great for code review, but wondering if a lighter mode or web version is on the roadmap. Congrats on the 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<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>the &#8216;no replay guarantees, I will never pretend to reproduce app state&#8217; line further up is a rare kind of honesty for a launch post, most tools would just quietly overclaim there. practical question on the recording side &#8211; a long capture with per-frame data plus the pixel history for the perceptual diff sounds like it could get heavy fast. is there a size ceiling or compression pass on longer sessions, or does a 10 minute recording just produce a genuinely large .notate file you&#8217;re expected to live with<\/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>Shared annotations for humans and agents could provide valuable execution context. How does Notate keep annotations attached when the underlying webpage, design, or code changes substantially?<\/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>&#8220;For humans and their agents&#8221; is the phrase doing the most work here. A human annotation is fundamentally positional \u2014 this thing, right here \u2014 and an agent has no pixels to point at, so the same note has to arrive as something structural instead.<\/p>\n<p>What does the agent actually receive? Just the note text, or the note plus enough surrounding context to know what it was attached to? I&#8217;d guess &#8220;make this button smaller&#8221; is close to useless without the second part, and that&#8217;s the piece that seems genuinely hard to get right.<\/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;Today the note arrives with three layers. The images carry the pointer itself \u2014 pins and arrows drawn in and numbered, so a multimodal agent grounds &#8220;make this button smaller&#8221; the way a human does: by looking at what pin 2 sits on. As of v0.1.10, an Output Detail setting adds a typed layer to the frontmatter \u2014 each note&#8217;s kind and normalized coordinates, arrow tips, bounding boxes \u2014 alongside the app and window it already names, with the export cropped to the focal window.<\/p>\n<p>The layer you&#8217;re describing \u2014 resolving the note to a UI element as structured data \u2014 is deliberately not Notate&#8217;s job. Whatever consumes the export already holds better context than Notate could bake in: a coding agent has the source and finds the component itself, an automation agent has the live accessibility tree at action time, a human has the picture. Notate&#8217;s job is to say where and what you meant, faithfully \u2014 your agent already knows, or can find, everything else. That&#8217;s also what keeps the format small and stable: it has no opinions about what the pixels mean.<\/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>Freezing transient UI states is the part that has always been missing. Regular screenshots lose hover states and animation frames at exactly the moment you need to point at them. The agent-readiness angle is the interesting differentiator here. How does Notate structure annotation metadata for agents? Is there a typed schema alongside the visual, or does the agent infer context from comments and pin positions?<\/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\/@anand_thakkar1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anand_thakkar1<\/a>&nbsp;Both, roughly \u2014 with the typed half about to get more visible. Today the export is a markdown manifest (frontmatter with the app and window, numbered comments, per-frame comments and timestamps for recordings) paired with the images, where the pins and arrows are drawn in with their numbers \u2014 so a multimodal agent grounds each comment by reading the number off the pixels rather than inferring position.<\/p>\n<p>Underneath, every session is also a <em>.notate<\/em> archive with a fully typed manifest: shape kinds and normalized coordinates for every annotation. Surfacing that schema in the agent-facing export (coordinates alongside each numbered comment) is next on my list \u2014 it makes the export just as useful to agents without vision, and lets multimodal ones verify instead of guess.<\/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>Freezing hover states and pinning feedback to the exact frame solves a real gap in UI review. Can a teammate reopen a shared session and add or resolve annotations without needing the original capture environment?<\/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\/@adityaharish2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adityaharish2002<\/a>&nbsp;Yes! Just share the <em>.notate<\/em> file \u2014 it carries every frame and comment, and double-clicking it opens the full editor on their Mac. Nothing is needed from the original capture environment, not even the Screen Recording permission (that&#8217;s only for capturing). Your teammate can add, edit, or delete annotations and send the file back \u2014 full sessions survive the round trip. There&#8217;s no resolve workflow yet (today you resolve by editing or deleting a pin) \u2014 proper collaboration features are what I&#8217;m building next.<\/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\">#14<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/BRWZUPBITBOBHT\" class=\"app-title\">Rivault<\/a><\/p>\n<div class=\"one-liner\">Approve AI agent data access with Face ID<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">103<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Rivault\u901a\u8fc7Face ID\u5ba1\u6838\u673a\u5236\uff0c\u8ba9AI\u4ee3\u7406\u5728\u6267\u884c\u8ba2\u7968\u7b49\u4efb\u52a1\u65f6\u5b89\u5168\u8c03\u7528\u62a4\u7167\u3001\u4fe1\u7528\u5361\u7b49\u654f\u611f\u6570\u636e\uff0c\u4efb\u52a1\u5b8c\u6210\u540e\u81ea\u52a8\u8131\u654f\uff0c\u89e3\u51b3\u7528\u6237\u5bf9AI\u6cc4\u9732\u9690\u79c1\u7684\u62c5\u5fe7\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\/39554e87-85f9-4792-bc7f-4a470772809b.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\/fd7a0618-eb9e-4d0f-8929-d3e13190f6d9.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\/2ac90fc3-46f0-4cc4-b257-95046d07b87b.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\/abd1fdb9-23c9-4c51-95f7-98ba599106f7.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/jwnuiAEiV-Y\"><source src=\"https:\/\/youtu.be\/jwnuiAEiV-Y\" 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\">AI\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u96f6\u77e5\u8bc6\u5b58\u50a8<\/span><br \/>\n            <span class=\"tag\">Face ID\u6388\u6743<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u8131\u654f<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u4fdd\u62a4<\/span><br \/>\n            <span class=\"tag\">AI\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">\u51ed\u8bc1\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u6269\u5c55<\/span><br \/>\n            <span class=\"tag\">\u4efb\u52a1\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">PCI\u5408\u89c4<\/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\uff1a\u591a\u6b65\u9aa4\u4efb\u52a1\u4e2d\u80fd\u5426\u6279\u91cf\u5ba1\u6279\u800c\u975e\u9010\u9879Face ID\uff1b\u6570\u636e\u8131\u654f\u662f\u5426\u8986\u76d6Agent\u7684\u622a\u56fe\u548cDOM\u6b8b\u7559\uff1b\u81ea\u5b9a\u4e49\u5b57\u6bb5\u7c7b\u578b\u652f\u6301\uff1b\u8bbe\u5907\u4e22\u5931\u540e\u7684\u8d26\u6237\u6062\u590d\u5b89\u5168\u6027\uff1b\u80fd\u5426\u901a\u8fc7\u4ee4\u724c\u8f6c\u53d1\u800c\u975e\u76f4\u63a5\u66b4\u9732\u539f\u59cb\u51ed\u8bc1\u4ee5\u62b5\u5fa1\u63d0\u793a\u6ce8\u5165\u653b\u51fb\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                Rivault\u5207\u4e2d\u4e86AI\u4ee3\u7406\u6d6a\u6f6e\u4e2d\u4e00\u4e2a\u771f\u5b9e\u4e14\u7d27\u8feb\u7684\u75db\u70b9\u2014\u2014\u654f\u611f\u51ed\u8bc1\u7684\u5b89\u5168\u6ce8\u5165\u4e0e\u6b8b\u7559\u6e05\u7406\u3002\u5176\u201c\u96f6\u77e5\u8bc6\u4fdd\u9669\u5e93+Face ID\u6309\u9700\u6388\u6743+\u786e\u5b9a\u6027\u8131\u654f\u201d\u7684\u4e09\u6bb5\u5f0f\u8bbe\u8ba1\uff0c\u5728\u7406\u5ff5\u4e0a\u786e\u5b9e\u6bd4\u201c\u7c98\u8d34\u660e\u6587\u5230\u63d0\u793a\u8bcd\u201d\u7684\u539f\u59cb\u505a\u6cd5\u524d\u8fdb\u4e86\u4e00\u5927\u6b65\uff0c\u5c24\u5176\u662f\u5ba3\u79f0\u8131\u654f\u8986\u76d6\u5c4f\u5e55\u622a\u56fe\u548c\u591a\u5e73\u53f0\u8e2a\u8ff9\uff0c\u56de\u5e94\u4e86CUA\u4ee3\u7406\u573a\u666f\u4e2d\u6700\u5173\u952e\u7684\u201c\u4e0b\u6e38\u6b8b\u7559\u201d\u95ee\u9898\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u7684\u5b89\u5168\u62a4\u57ce\u6cb3\u76ee\u524d\u53ea\u5230\u201c\u8bda\u5b9eAgent\u201d\u4e3a\u6b62\uff0c\u800c\u4e92\u8054\u7f51\u4e0a\u771f\u6b63\u5371\u9669\u7684\u6070\u6070\u662f\u201c\u88ab\u52ab\u6301\u7684Agent\u201d\u3002\u8bc4\u8bba\u4e2d\u4e00\u9488\u89c1\u8840\u5730\u6307\u51fa\u4e86\u4e24\u4e2a\u6838\u5fc3\u6f0f\u6d1e\uff1a\u5176\u4e00\uff0c\u5982\u679cAgent\u56e0\u63d0\u793a\u6ce8\u5165\u88ab\u64cd\u7eb5\uff0c\u7528\u6237\u770b\u5230\u7684\u201c\u610f\u56fe\u8bf4\u660e\u201d\u672c\u8eab\u5c31\u662f\u5047\u7684\uff0cFace ID\u6279\u51c6\u7684\u5b9e\u8d28\u662f\u653e\u884c\u4e00\u4e2a\u6728\u9a6c\uff1b\u5176\u4e8c\uff0cRivault\u76ee\u524d\u7684\u6a21\u578b\u662f\u201c\u89e3\u9501\u540e\u4ea4\u4ed8\u539f\u59cb\u503c\u201d\uff0c\u800c\u975e\u201c\u4ee3\u7406\u5f0f\u8f6c\u53d1\u4ee4\u724c\u201d\uff0c\u8fd9\u610f\u5473\u7740\u539f\u59cb\u6570\u636e\u4e00\u65e6\u8fdb\u5165Agent\u7684\u4e0a\u4e0b\u6587\u7a97\u53e3\uff0c\u7406\u8bba\u4e0a\u5c31\u5931\u53bb\u4e86\u63a7\u5236\uff0c\u540e\u7eed\u518d\u5f3a\u7684\u8131\u654f\u4e5f\u53ea\u662f\u4ea1\u7f8a\u8865\u7262\u3002\u6b64\u5916\uff0c\u591a\u6b65\u9aa4\u805a\u5408\u5ba1\u6279\u867d\u7f13\u89e3\u4e86\u4f53\u9a8c\u95ee\u9898\uff0c\u4f46\u201c\u65f6\u95f4\u7a97\u53e3\u5185\u7684\u590d\u7528\u201d\u4e5f\u521b\u9020\u4e86\u65b0\u7684\u653b\u51fb\u9762\u2014\u2014\u5df2\u7ecf\u6388\u6743\u7684\u6570\u636e\u5982\u4f55\u9632\u6b62\u88ab\u540c\u4e00Agent\u7684\u975e\u9884\u671f\u5206\u652f\u63d0\u53d6\uff1f\n            <\/p>\n<p class=\"ai-content\">\n                Rivault\u7684\u957f\u671f\u4ef7\u503c\u4e0d\u5728\u4e8e\u5b83\u73b0\u5728\u6709\u591a\u5b8c\u7f8e\uff0c\u800c\u5728\u4e8e\u5b83\u63d0\u51fa\u4e86\u4e00\u4e2a\u6b63\u786e\u7684\u65b9\u5411\uff1a\u5728Agent\u81ea\u4e3b\u6267\u884c\u4e0e\u4eba\u7c7b\u6700\u7ec8\u63a7\u5236\u4e4b\u95f4\u5efa\u7acb\u53ef\u5ba1\u8ba1\u7684\u3001\u7ec6\u7c92\u5ea6\u7684\u6388\u6743\u95ed\u73af\u3002\u4f46\u5b83\u5fc5\u987b\u4ece\u201c\u5b58\u50a8\u4fdd\u9669\u5e93\u201d\u8fdb\u5316\u4e3a\u201c\u6267\u884c\u9632\u706b\u5899\u201d\uff0c\u6838\u5fc3\u80fd\u529b\u5e94\u8f6c\u5411\u5bf9\u539f\u59cb\u6570\u636e\u7684\u96f6\u4fe1\u4efb\u4ee3\u7406\u548c\u8bf7\u6c42\u7ea7\u4ee4\u724c\u5316\u2014\u2014\u8ba9Agent\u53ea\u64cd\u4f5c\u8131\u654f\u540e\u7684\u51ed\u8bc1\u5f15\u7528\uff0c\u800c\u975e\u539f\u59cb\u660e\u6587\u3002\u76ee\u524d\u7684\u67b6\u6784\u66f4\u50cf\u662f\u4e00\u4e2a\u5e26\u9501\u7684\u4fdd\u9669\u67dc\uff0c\u800c\u771f\u6b63\u7684\u6311\u6218\u662f\u6559\u4f1aAgent\u5982\u4f55\u5728\u4fdd\u9669\u67dc\u95e8\u53e3\u5b89\u5168\u5730\u53d6\u7269\uff0c\u800c\u4e0d\u662f\u628a\u4fdd\u9669\u67dc\u91cc\u7684\u4e1c\u897f\u76f4\u63a5\u63e3\u8fdb\u515c\u91cc\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\">Rivault<\/span>\n                <\/div>\n<div class=\"comment-content\">Rivault lets you safely and securely provide AI agents and CUA data and context for tasks. Store data and context in a zero-knowledge vault, When an AI agent needs data (Passport No. or Credit Card details) to execute a task like booking a flight, Rivault sends you an auth request, you unlock data with Face ID\/ Passkey and data is deterministically redacted after task completes. Rivault never gets access to your data by default.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi ProductHunt! \ud83d\udc4b I created Rivault to solve for the friction and worry of typing in sensitive details and data (SSN, payment details, phone number, emails) for CUA to automate tasks. This allowed me to store, manage and own those data without having any sensitive data stored in session logs and memory. <\/p>\n<p>Please let me know what do you think about Rivault and if you have any questions! \ud83d\ude47\u200d\u2642\ufe0f<br \/>P.s. If you are interested in this space and would like to build together, send me a DM or reach out to me on LinkedIn! <\/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>Hyu \u2014 most of the fields I saw were consumer-shaped (passport, credit card, SSN). WinBidIQ&#8217;s agent handles company UEI numbers and CAGE codes, not personal PII. Can you define custom field types in the vault, or is it built around a fixed set of common credential types?<\/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>Congrats on the launch, Hyu. The redaction covering screenshots and every trail across platforms answers the exact question I&#8217;d have asked first, most tools stop at &#8220;we don&#8217;t log it&#8221; and never touch what the agent saw on screen. What I&#8217;d still want to know about the approval side: when a task needs more than one entry in sequence, say a card number for checkout, then an email for the receipt, does each pull need its own Face ID approval, or does unlocking once open a window the agent can draw from until the task 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\/@vollos\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vollos<\/a>&nbsp;Hey Chalermpon, great question! The agent will consolidate all required data requests at each step or phase and perform a group auth request for that batch of required data, users can audit the full list before approval + Face ID. Those data gets a time bound lifespan for the task session, so if the subsequent task requires a data from the already approved prior step, it can be reused. if it is a new piece of data required, a new auth request will be sent.<\/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>finally a clean way to hand sensitive info to AI without trusting it. the Face ID approval flow actually makes sense for booking tasks, and the zero-knowledge part gives real peace of mind.<\/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>this thread already covers the interesting security architecture questions, so here&#8217;s a boring but real one &#8211; what happens on the recovery side if someone loses the device their Face ID\/Passkey is tied to. is there an account recovery path back into the vault, and if so what stops that recovery flow itself from becoming the weak point that all the redaction and zero-knowledge design was supposed to avoid<\/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><a href=\"https:\/\/www.producthunt.com\/@hyu_lim\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"hyu_lim\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hyu_lim<\/a>  the auth-request + deterministic-redaction model is a real step up from pasting a PAN into a prompt \u2014 and +1 to Yuki&#8217;s proxy-vs-hold point, since whether the agent ever sees the raw value or just a reference is the whole game under prompt injection.<\/p>\n<\/p>\n<p>Pushing into the payments case specifically: for a card at checkout, could Rivault hand the merchant a scoped single-use \/ network token instead of the real PAN? That would shrink both the PCI surface and the blast radius if the destination page turns out hostile.<\/p>\n<\/p>\n<p>And is a release bound to a destination \u2014 &#8220;this card unlocks only for <a href=\"https:\/\/delta.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">delta.com<\/a> checkout&#8221; \u2014 so a redirected or injected form can&#8217;t draw it? Curious how you&#8217;re thinking about the agentic-payment rails \ud83d\udc4c<\/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>A dedicated context vault addresses a real problem for long-running agents. How granular are the permissions, and can access be revoked immediately with a complete audit trail of what each agent retrieved?<\/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\/@russlan_ramdowar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@russlan_ramdowar<\/a>&nbsp;Hi Russlan, thanks for your question! In terms of granularity, did you mean if Rivault allows you to configure the accessible item for each agent? If so, right now Rivault only has a single gate for all item via Face ID &#8211; that\u2019s a great point though. Eventually it should auto decline certain specific data out of scope. Right now all are gated and agents can request access.<\/p>\n<\/p>\n<p>As for a complete audit trail, yes Rivault does track a full audit trail of what each individual agents accessed\/ requested access for and users can terminate any Rivault keys whenever they\u2019d like.<\/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 whole thread is asking where the value goes after unlock, but I&#8217;m stuck a step earlier &#8211; the vault, the Face ID prompt, and the agent process are all running on the same device. if that device has anything actually malicious on it, or the CUA framework itself has a bug that lets it read process memory, does zero-knowledge storage even matter at that point, or is the entire security model resting on &#8220;trust the local machine&#8221; and everything after that is just making the honest-agent case safer<\/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\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Hi Gal, thanks for sharing your thoughts. Right now the core problem Rivault solves for is to prevent a build up and storing of critical and sensitive data on a device and prevent those data from being exfiltrated during external prompt injection (non installed attacks from the web. that\u2019s the core vulnerability of CUA and browser use agents) <\/p>\n<\/p>\n<p>Rivault does not cover the scope of a locally compromised device &#8211; in those cases even manual human executed tasks will be vulnerable.<\/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 credential injection problem in agentic workflows is real \u2014 I&#8217;ve seen teams paste sensitive values directly into agent prompts or env vars just to get things working, which creates a different kind of risk. Before integrating: is the vault configuration declarative, where you define which entries each task is allowed to access upfront, or does the agent request credentials at runtime dynamically? For a multi-step pipeline where different tasks need different secrets, I want to understand whether I can pre-authorize the full workflow rather than getting a Face ID gate on each individual lookup.<\/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>Everything in the thread so far treats sensitive data as fields \u2014 passport, card, SSN \u2014 and those are the tractable class precisely because they have a shape a redactor can match. The category I&#8217;d want to hear about is the one with no shape: the paragraph a person types describing their situation. A health detail, a legal problem, something about their kid. More damaging than a card number, can&#8217;t be reissued, and no pattern finds it.<\/p>\n<p>I build a consumer app where the most sensitive thing in the product is free text someone wrote in a bad moment, and the only answer I ended up trusting was architectural rather than filtering \u2014 certain content is contractually never allowed to leave the device, so there&#8217;s no store, no log, and nothing to redact afterward. Deterministic redaction after the fact is a strictly weaker guarantee than never having transmitted it.<\/p>\n<p>So: does Rivault hold context that isn&#8217;t a typed field? If the vault carries a freeform note for the agent to use, what is the redaction matching against?<\/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\/@narek_keshishyan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@narek_keshishyan<\/a>&nbsp;Hi Narek, thats a great question! Right now Rivault works best for a dedicated data type\/ shape. The open ended freeform note is something to think about &#8211; perhaps using the model to identify and redact a string of detail might 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>The hard part with secrets and agents isn&#8217;t storage, it&#8217;s that the moment a value lands in a context window it&#8217;s effectively been disclosed. Anything that can steer the model afterwards can usually get it back out.<\/p>\n<p>So the question I&#8217;d have is where Rivault sits in that sequence. Is it a vault the agent authenticates against and then holds the value, or does it stay in the path \u2014 proxying the call so the agent works with a reference and never sees the raw credential? Those are very different security properties under prompt injection, and only the second one really survives 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<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;Hey Yuki, thats a stellar point. Right now Rivault solves that &#8220;on the fly&#8221; prompt injection by providing users visibility into the intent of that data retrieval, users will be communicated and notified of the agent&#8217;s intent for retrieving those data during auth and the user can approve or deny it if the agent has been steered off course.<\/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 zero-knowledge vault with Face ID unlock is a clean way to solve CUA credential injection. We&#8217;ve thought a lot about the tension between automation speed and human-in-the-loop gates when building agentic workflows. The auth request pattern is smart but introduces a latency dependency. How do you handle timeouts or retry logic when the user isn&#8217;t available to unlock and the agent is already mid-task?<\/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\/@anand_thakkar1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anand_thakkar1<\/a>&nbsp;Hey Anand, thats a great point and is something that I&#8217;ve been considering as well. As of right now I think thats a meaningful trade off with the data input re-attempted after unlock. To clarify, the full redaction deterministically happens at the time of when the task session ends (completed or not) or at a defined timeout.<\/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>That&#8217;s interesting. How do you handle conflicts when multiple agents try to access the same vault entry?<\/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>Hyu, the vault is the easy half of this problem, and I suspect you already know that.<\/p>\n<\/p>\n<p>Once the agent unlocks the passport number and types it into a page, that value exists in the DOM, in whatever screenshot the agent took to see the field, and in the model context that reasoned about the page. Deterministic redaction after the task covers your own store, not the trail the agent left getting there. Doing PHI redaction in healthcare, the downstream copies were the hard part every single time, never the storage.<\/p>\n<\/p>\n<p>Does the redaction reach the agent&#8217;s screenshots and page context, or does that stay the responsibility of whoever runs the 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@clemente_lopez1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@clemente_lopez1<\/a>&nbsp;Hey Clemente, thanks for writing in and sharing your thoughts! The window of the value existing on the DOM level also persists across manually executed task &#8211; I am currently experimenting with other techniques through browser extension for end to end execution without providing agents any visibility to values, as for the screenshots the redaction mechanism covers that too! (Spent quite a while working on that) The redaction also covers every trail left by the agent (across all supported platforms). So by the time the task completes, no sensitive data would be left behind.<\/p>\n<\/p>\n<p>Hope this helps! Those are some great and sharp points. There are definitely opportunities in making Rivault even more robust which I will keep revving on &#8211; but for now, Rivault makes it much safer than pasting sensitive data in plaintext<\/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\">#15<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/YJ4SPKDLG3VVYA\" class=\"app-title\">Tackly<\/a><\/p>\n<div class=\"one-liner\">Map your thoughts in real time with AI.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">101<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Tackly\u662f\u4e00\u6b3eAI\u5b9e\u65f6\u601d\u7ef4\u5730\u56fe\u7b14\u8bb0\u5de5\u5177\uff0c\u901a\u8fc7\u5c06\u4f1a\u8bae\u3001\u72ec\u767d\u6216\u4e0a\u4f20\u7684\u8f6c\u5f55\u5185\u5bb9\u5b9e\u65f6\u6620\u5c04\u523020\u79cd\u7ed3\u6784\u5316\u8282\u70b9\uff0c\u89e3\u51b3\u4e86\u4f20\u7edfAI\u7b14\u8bb0\u4ec5\u63d0\u4f9b\u6587\u5b57\u8f6c\u5f55\u4e0e\u6458\u8981\u3001\u7f3a\u4e4f\u53ef\u89c6\u5316\u548c\u601d\u7ef4\u7ec4\u7ec7\u7ed3\u6784\u7684\u75db\u70b9\uff0c\u5c24\u5176\u9002\u5408 ADHD \u7528\u6237\u6216\u9700\u8981\u5feb\u901f\u6355\u6349\u4e0e\u6574\u7406\u788e\u7247\u5316\u60f3\u6cd5\u7684\u573a\u666f\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\/cd2950f9-61ba-48b0-8c71-7e6e54239fdd.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\/24074a7a-e680-474c-8feb-a6ee7b764ed5.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\/cda847f5-f777-4596-8862-7d745be5da88.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\/c51f7191-194b-4433-95b7-8030099b867f.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=IQnj3UDT6Ko\"><source src=\"https:\/\/www.youtube.com\/watch?v=IQnj3UDT6Ko\" 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\">Notes<\/span><br \/>\n            <span class=\"tag\">Meetings<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7b14\u8bb0<\/span><br \/>\n            <span class=\"tag\">\u601d\u7ef4\u5bfc\u56fe<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u8f6c\u5f55<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u8f6c\u6587\u5b57<\/span><br \/>\n            <span class=\"tag\">ADHD\u8f85\u52a9\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4f1a\u8bae\u8bb0\u5f55<\/span><br \/>\n            <span class=\"tag\">\u89c6\u89c9\u5316\u7b14\u8bb0<\/span><br \/>\n            <span class=\"tag\">\u77e5\u8bc6\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\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\u666e\u904d\u8ba4\u53ef\u5176\u89e3\u51b3\u201c\u60f3\u6cd5\u8f6c\u77ac\u5373\u901d\u201d\u548c\u201c\u4f20\u7edf\u7b14\u8bb0\u67af\u71e5\u201d\u7684\u75db\u70b9\u3002\u6838\u5fc3\u7591\u95ee\u805a\u7126\u4e8e\uff1a1) \u5982\u4f55\u5904\u7406\u8dd1\u9898\/\u77db\u76fe\u60f3\u6cd5\uff08\u521b\u59cb\u4eba\u56de\u5e94\u6709\u201cWaffle\u201d\u8282\u70b9\uff0c\u5e76\u652f\u6301\u8282\u70b9\u5408\u5e76\uff09\uff1b2) \u8de8\u4f1a\u8bdd\u4e0a\u4e0b\u6587\u4e0e\u534f\u4f5c\u5206\u4eab\u80fd\u529b\uff08\u5f53\u524d\u4ec5\u9650\u5185\u90e8\u5206\u4eab\u548cMD\u5bfc\u51fa\uff0c\u8ba1\u5212\u589e\u52a0\u76f4\u64ad\u94fe\u63a5\u548cMCP\u63a5\u5165\uff09\uff1b3) \u8282\u70b9\u52a8\u6001\u4fee\u6b63\u65f6\u662f\u5426\u4f1a\u6253\u65ad\u9605\u8bfb\uff08\u4f1a\u5b9e\u65f6\u91cd\u6392\u4f46\u4e0d\u4f1a\u4e22\u5931\u539f\u4e0a\u4e0b\u6587\uff09\u3002\u53e6\u6709\u7528\u6237\u6307\u51fa\u521d\u6b21\u5f55\u97f3\u540e\u5373\u8981\u6c42\u8bc4\u4ef7\u7684\u65f6\u673a\u8fc7\u65e9\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                Tackly \u7684\u6838\u5fc3\u4ef7\u503c\u5e76\u975e\u201c\u66f4\u5feb\u7684\u5f55\u97f3\u8f6c\u6587\u5b57\u201d\uff0c\u800c\u662f\u8bd5\u56fe\u7528\u201c\u8282\u70b9\u5316+\u5b9e\u65f6\u6620\u5c04\u201d\u91cd\u5851\u8f93\u5165\u4e0e\u601d\u8003\u7684\u95ed\u73af\u3002\u5b83\u5728 Product Hunt \u4e0a\u83b7\u5f97\u7684 101 \u7968\u548c\u5bcc\u6709\u6df1\u5ea6\u7684\u7528\u6237\u8bc4\u8bba\uff0c\u6070\u6070\u8bf4\u660e\u5176\u627e\u51c6\u4e86\u7ec6\u5206\u75db\u70b9\u2014\u2014\u5bf9\u4f20\u7edf AI \u7b14\u8bb0\u201c\u751f\u6210\u4e00\u5768\u6587\u5b57\u52a0\u4e2a\u6458\u8981\u201d\u7684\u5ba1\u7f8e\u75b2\u52b3\uff0c\u4ee5\u53ca ADHD \u6216\u9ad8\u5f3a\u5ea6\u8111\u529b\u5de5\u4f5c\u8005\u5bf9\u201c\u601d\u7ef4\u53ef\u89c6\u5316\u201d\u7684\u521a\u9700\u3002\u521b\u59cb\u4eba\u672c\u4eba\u4f5c\u4e3a ADHD \u7528\u6237\u7684\u8eab\u4efd\uff0c\u8ba9\u4ea7\u54c1\u5728\u201c\u4e0d\u4e22\u5931\u60f3\u6cd5\u201d\u7684\u4e3b\u8bc9\u6c42\u4e0a\u663e\u5f97\u53ef\u4fe1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ece\u6280\u672f\u89c6\u89d2\u770b\uff0c\u5176\u201c80ms \u5185\u89c6\u89c9\u54cd\u5e94\u201d\u548c\u201c20 \u79cd\u56fa\u5b9a\u8282\u70b9\u7c7b\u578b\u201d\u7684\u8bbe\u8ba1\u662f\u4e00\u67c4\u53cc\u5203\u5251\u3002\u4f18\u52bf\u5728\u4e8e\u964d\u4f4e\u4e86\u7528\u6237\u5bf9\u964c\u751f\u6982\u5ff5\u7684\u8ba4\u77e5\u8d1f\u8377\uff0c\u901a\u8fc7\u9884\u8bbe\u7684\u201c\u8bdd\u9898\u3001\u60f3\u6cd5\u3001\u884c\u52a8\u3001\u5e9f\u8bdd\u201d\u7b49\u6807\u7b7e\u5feb\u901f\u5efa\u7acb\u4f7f\u7528\u76f4\u89c9\uff1b\u52a3\u52bf\u5219\u5728\u4e8e\uff0c\u5f53\u771f\u5b9e\u601d\u7ef4\u6d41\u52a8\u8fdc\u6bd4 20 \u79cd\u7c7b\u578b\u590d\u6742\u65f6\uff0cT2 \u6e32\u67d3\u5c42\u7684\u201c\u8282\u70b9\u5408\u5e76\u4e0e\u91cd\u65b0\u7236\u7ea7\u5316\u201d\u672c\u8d28\u4e0a\u662f\u7b97\u6cd5\u5bf9\u7528\u6237\u601d\u7ef4\u7684\u4e00\u6b21\u526a\u679d\u3002\u5f00\u53d1\u8005\u5766\u8bda\u201c\u4f1a\u5b9e\u65f6\u91cd\u6446\u8282\u70b9\u201d\uff0c\u8fd9\u867d\u7136\u4fdd\u6301\u4e86\u6570\u636e\u5b8c\u6574\uff0c\u5374\u53ef\u80fd\u6253\u65ad\u521b\u9020\u6027\u7684\u8df3\u8dc3\u5f0f\u601d\u8003\u2014\u2014\u4eba\u8111\u7684\u201c\u8dd1\u9898\u201d\u5f80\u5f80\u5b55\u80b2\u7740\u65b0\u7075\u611f\uff0c\u800c\u673a\u5668\u8ffd\u6c42\u903b\u8f91\u5206\u7c7b\u7684\u51b2\u52a8\uff0c\u53ef\u80fd\u5728\u5e2e\u7528\u6237\u201c\u7406\u6e05\u601d\u8def\u201d\u7684\u540c\u65f6\uff0c\u524a\u5e73\u4e86\u601d\u7ef4\u672c\u8eab\u7684\u7c97\u7cd9\u4e0e\u6d3b\u529b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u503c\u5f97\u5173\u6ce8\u7684\u662f\u5176\u53cc\u5411\u8f93\u5165\u8def\u5f84\uff08\u5b9e\u65f6\u8bf4\u8bdd vs \u4e0a\u4f20\u8f6c\u5f55\uff09\uff0c\u8bf4\u660e\u56e2\u961f\u6e05\u695a\u4e0d\u540c\u7684\u4f7f\u7528\u573a\u666f\u9700\u8981\u4e0d\u540c\u7684\u5165\u53e3\u8bbe\u8ba1\u3002\u4f46\u4ea7\u54c1\u76ee\u524d\u6700\u5927\u7684\u77ed\u677f\u5728\u4e8e\u201c\u534f\u4f5c\u4e0e\u6301\u7eed\u8bb0\u5fc6\u201d\u51e0\u4e4e\u7a7a\u767d\u3002\u7528\u6237\u8bc4\u8bba\u4e2d\u53cd\u590d\u63d0\u53ca\u7684\u201c\u5bfc\u51fa\u7ed9 Claude \u505a\u4e0a\u4e0b\u6587\u201d\u3001\u201c\u8de8\u4f1a\u8bdd\u8ffd\u8e2a\u201d\u4ee5\u53ca\u201c\u975e\u8ba4\u8bc1\u7528\u6237\u76f4\u64ad\u89c2\u770b\u201d\u7684\u9700\u6c42\uff0c\u76f4\u6307\u8be5\u7c7b\u5de5\u5177\u7684\u7ec8\u6781\u4f7f\u547d\uff1a\u4ece\u4e00\u4e2a\u6536\u5bb9\u7075\u611f\u7684\u201c\u79c1\u4eba\u4ed3\u5e93\u201d\uff0c\u5347\u7ea7\u4e3a\u56e2\u961f\u534f\u4f5c\u4e2d\u53ef\u56de\u6eaf\u3001\u53ef\u8c03\u7528\u3001\u53ef\u91cd\u7ec4\u7684\u201c\u52a8\u6001\u77e5\u8bc6\u56fe\u8c31\u201d\u3002\u5982\u679c Tackly \u4ec5\u4ec5\u505c\u7559\u5728\u201c\u5355\u6b21\u753b\u5e03\u201d\u7684\u81ea\u6211\u611f\u52a8\uff0c\u5b83\u5f88\u5feb\u4f1a\u88ab\u7ade\u54c1\u7684\u201c\u6301\u7eed\u8bb0\u5fc6+\u9ad8\u7ea7\u5bfc\u51fa\u201d\u529f\u80fd\u8d85\u8d8a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u5916\uff0c\u4ea7\u54c1\u521d\u6b21\u4f7f\u7528\u5373\u5f39\u51fa\u8bc4\u5206\u8bf7\u6c42\u7684\u7ec6\u8282\uff0c\u53cd\u6620\u51fa\u56e2\u961f\u5bf9\u589e\u957f\u6570\u636e\u7684\u7126\u8651\uff0c\u8fd9\u79cd\u4f53\u9a8c\u5728\u201c\u7528\u5fc3\u6d41\u6362\u6548\u7387\u201d\u7684\u5de5\u5177\u7c7b\u4ea7\u54c1\u4e2d\u5c24\u5176\u81f4\u547d\u3002\u4e00\u53e5\u8bdd\uff1a\u503c\u5f97\u6240\u6709\u505a\u201c\u8bb0\u5f55\u578b AI \u4ea7\u54c1\u201d\u7684\u56e2\u961f\u56f4\u89c2\uff0c\u4f46\u82e5\u8981\u6210\u4e3a\u672a\u6765\u601d\u8003\u7684\u57fa\u7840\u8bbe\u65bd\uff0cTackly \u8fd8\u9700\u8981\u518d\u6253\u7834\u4e00\u5c42\u74f7\u5b9e\u7684\u81ea\u6211\u8fb9\u754c\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\">Tackly<\/span>\n                <\/div>\n<div class=\"comment-content\">Most AI notetakers hand you a transcript with a summary bolted on \ud83d\udc85 Tackly maps what you say into one of 20 nodes, live and in realtime \u2014 from meetings, solo voice notes, or a pasted transcript \u2014 so you get structure you can always come back to, not just silly old black and white text. I struggle with ADHD on a day-to-day and this has made me feel a ton more productive, I never lose my thoughts. AI notetakers are boring, tackle them with Tackly. Try it for free at tackly.co<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hey \ud83d\udc4b I&#8217;m Jonathan. I struggle with ADHD on a day-to-day (I&#8217;m sure a lot of founders do \ud83d\ude43), and conversations disappear the moment they end &#8211; same with a lot of my thinking, and I hate traditional notes\/the transcripts we get from traditional AI noteakers. I wanted something that organised my ideas the moment I say them out loud.<\/p>\n<p>So I built Tackly &#8211; the AI notetaker that maps your thinking in real time, whether you&#8217;re in a meeting, so just thinking on your own.<\/p>\n<p><strong>Dual Ingestion &amp; Tri-Tier Real-Time Pipeline:<\/strong> To maintain sub-second (&lt;80ms) visual responsiveness across both solo rants and group meetings, Tackly uses a dual-ingestion architecture covered by initial fast-path rendering (powered by Gemini 3.5 Flash Lite).<\/p>\n<p><strong>Talk Solo \ud83d\udc85<\/strong><br \/>Hold a key, think out loud and watch a map of your thoughts (summarised, to only keep the important stuff) get built out in front of you.<\/p>\n<p><strong>Join a meeting \ud83d\udcc6<\/strong><br \/>No need to connect your calendar as soon as you sign up &#8211; invite a bot instantly into your meeting by just pasting a link. As soon as Tackly joins your meeting a board is created, and a whole teams conversation gets mapped out in real time (you can even share the board via a live link for others to watch).<\/p>\n<p><strong>Upload a transcript \ud83d\ude4a<\/strong><br \/>Hate boring summaries from other notetakers, just upload a transcript &#8211; it gets mapped out instantly.<\/p>\n<p>During the build, and once core functionality was viable enough for me to use it &#8211; I created a thread on Tackly, spoke &#8211; and I followed along with my thoughts so easily. Exporting every session as an MD to Claude, which helped shipped Tackly in less than a week. I truly believe this is the new way of thinking.<\/p>\n<p>I truly believe this is the new way of thinking.<\/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\">@lorbes  Relying on traditional notes is honestly exhausting, so a tool that structures thoughts the second you speak out loud is brilliant. Upvoted and supporting this launch today! Are you active on LinkedIn too? Would love to connect and follow your building journey<\/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>Huge congrats on shipping <a href=\"https:\/\/www.producthunt.com\/@lorbes\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"lorbes\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lorbes<\/a> Solving note-taking for visual\/ADHD thinkers is a massive problem.. qq How does Tackly decide how to cluster scattered thoughts into nodes when a solo rant jumps randomly between three different topics?<\/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>Thanks <a href=\"https:\/\/www.producthunt.com\/@vikramp7470\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vikramp7470<\/a>, we&#8217;ve got a special node for off-topic talk, it&#8217;s called &#8216;\ud83e\uddc7 Waffle&#8217;, and it stays on the board depending on how relevant the waffle was.<\/p>\n<p>If we&#8217;re talking about genuine topics, every topic gets separated into its own separate &#8216;topic&#8217; so nothing is cluttered together. Every utterance goes through a tri-tier rendering system the same second you say something out loud. With the first being T1 (Dual Fast Path Engine) where incoming transcript chunks stream into Gemini 3.5 Flash-Lite. An ultra-fast initial path captures instant context, while a semi-fast path evaluates node probability\u2014spawning provisional canvas nodes (TOPIC, IDEA, ACTION, WAFFLE) almost instantly before going through T2 rendering which looks at the context of the whole board, whether that chunk of info should be connected to another node via a smart connector (like Topic &#8216;expands&#8217; on previous plan, or &#8216;Evidence&#8217; supports previous risk mentioned.<\/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 &#8216;conversations disappear the moment they end&#8217; problem is real \u2014 I end up with Notion pages full of half-formed thoughts I never revisit. The real-time map-building demo looks like it captures the shape of an idea before it evaporates. Practical question about sharing: once I&#8217;ve built out a session&#8217;s map, what does handing it off look like? If I&#8217;m building on something from a voice note last week and want to loop in a collaborator, is that a shareable link, a static export, or do they need to be in Tackly to see it meaningfully?<\/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\/@leo404\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@leo404<\/a>&nbsp;Hey Leo, thanks a lot for the feedback and great question! At the minute, only other users within Tackly can view your session if you&#8217;ve given them permission &#8211; however I see product teams using this and think it would be important for a session to be &#8216;livestreamed&#8217; to other team members, without any auth (only accessible if someone has the link, or someone entering under the same domain) so that other teams don&#8217;t need to be in meetings, and could take action as soon as something actionable comes up. So that&#8217;s definitely something I&#8217;ll be pushing out this week, alongside a whole bunch of other &#8216;collaborative-focused&#8217; pushes.<\/p>\n<p>But as of now, the only way to export would be by exporting to PNG, SVG or MD, directly to your agent &#8211; but going back to &#8216;collaborative-focused&#8217; ideas &#8211; I think certain MCP connections become useful as well, for example with Claude &#8211; where my agent can just dig into my sessions rather than me having to export.<\/p>\n<p>If you want to return to a previous session, you absolutely can &#8211; it&#8217;s just with meetings at the minute, a session ends automatically the instant a bot leaves the call you invited it to &#8211; so you can&#8217;t really continue adding context into meeting session &#8211; you can just ask your session-local AI about the session, edit nodes and add notes.<\/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 &#8220;transcript with a summary bolted on&#8221; line is so accurate lol, that&#8217;s exactly what&#8217;s wrong with most of these.<\/p>\n<\/p>\n<p>quick question, when you export to MD and feed it to Claude, is that a one-off thing or are you building context across sessions? feels like that loop could get addictive once you&#8217;re a few weeks in.<\/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>one small thing,  it asked me to review after just my first recording.<\/p>\n<p>I hadn&#8217;t really lived with it long enough yet to have a real opinion, so<\/p>\n<p>it kinda felt premature. might get you better (and more) reviews if that<\/p>\n<p>ask showed up after someone&#8217;s had a few sessions 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=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@issadevs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@issadevs<\/a>&nbsp;Glad you agree! And with the exporting to Claude &#8211; I&#8217;m building context across sessions &#8211; but every session has a local &#8216;TacklyAI&#8217; built into it so you can always ask it to break down whats new &#8211; whats been added after x and it will tell you exactly whats been changed. You could continue on the same session and keep adding context on separate days, but I love your question because the export hasn&#8217;t been designed for that. Exporting prints out the entire board, so it would be great if it could be exported based on newly added context. I LOVE THAT<\/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>Congrats on the launch! The fixed 20-node taxonomy is impressive! I was thinking&#8230; T1 assigns a provisional node type in under 80ms, then T2 can re-parent it later. When I&#8217;m mid-thought watching the map build, does that correction ever visibly reshuffle a node I was still reading?<\/p>\n<\/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\/@artstavenka1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artstavenka1<\/a>&nbsp;Thanks! And good question, when you&#8217;re mid thought watching the map build, any corrections do visibly reshuffle (if positioning can be more logical), or a node simply gets deleted and context is added onto an existing\/parent node (which we call decluttering, so there aren&#8217;t so many nodes taking up space). But this doesn&#8217;t delete any context, it just adds onto existing nodes that would be classed as parents.<\/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>This looks really interesting, congrats on launching! The real time rendering is remarkable. How much editing can you do afterwards the first draft is done? Do you control it by voice or there is manual way to move stuff around, add additional notes, and so on?<\/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\/@mateuszkonik\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mateuszkonik<\/a>&nbsp;Thank you that means a lot! No restrictions on editing, you can move the nodes around however you like (they will still keep their smart connectors), delete nodes, add &#8216;notes to nodes&#8217; or just clarify whilst speaking &#8211; Tackly will know what to update and what to add more context to.<\/p>\n<p>There is a consolidation step at the very end which triple-checks everything is perfect, but T2 part of the rendering pipeline was built for exactly that, so decluttering, correction and logic is maintained in real time.<\/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>the sub-80ms rendering target is a smart thing to optimize for specifically, since with a thinking tool any visible lag between saying something and seeing it land breaks the whole point of thinking out loud. question about the 20 nodes &#8211; is that a fixed taxonomy of note types, or an actual cap on distinct thought clusters per session? if it&#8217;s the latter, what happens on a long rambling session that would naturally produce more than 20, does it merge similar ones or just get more selective about what makes the cut<\/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;Yeah the sub-80ms is prioritised through the first half of our rendering pipeline (for every utterance) so it can feel real time, covers enough to actually understand the context of whats being said and what node type should be assigned (whilst also looking at the most recent node that was pushed). The most logic gets pushed out at T2 (Tier 2 rendering), which gets triggered every 20 utterances, still fast &#8211; just not as important as T1.<\/p>\n<p>And in terms of the 20 nodes, its a fixed taxonomy of node types &#8211; there&#8217;s no limit on how much can be discussed in the meeting. In fact I pressure tested in so many ways, a 2 hour session made the board function almost 2x better (a lot more context to work with).<\/p>\n<p>There is decluttering in the pipeline, which works along side T2 &#8211; but this only corrects the board, and looks to put two nodes together to make space (only if its appropriate to combine the two, just extends the summary on a parent node).<\/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 ADHD framing resonates, that line about never losing a thought is exactly what&#8217;s missing from tools built by people who don&#8217;t actually have that problem themselves. curious about contradiction handling though &#8211; when you&#8217;re rambling and go back on something you said 2 minutes earlier, like actually no scratch that, does Tackly catch that as an update to the existing node or does it just add a new one sitting alongside the old take?<\/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>Thanks! Yeah, traditional summaries just don&#8217;t cut it. Right now it&#8217;s a one-off export, but cross-session context is on the radar agree that long-term memory loop would be lethal. <\/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\/@adamkamaneh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adamkamaneh<\/a>&nbsp;Absolutely!<\/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>Jonathan, this speaks straight to anyone whose head fills up faster than they can write it down. Talking it out and finding it sorted afterward sounds like a small weight lifted.<\/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\/@amine_aziz_alaoui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@amine_aziz_alaoui<\/a>&nbsp;Indeed! Thanks for the feedback \ud83e\udef6<\/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 is such a refreshing take on AI note-taking. Turning a conversation into a live visual map feels much easier to revisit than scrolling through a long transcript or generic summary. I especially like that it works for both meetings and solo thinking sessions. Can Tackly recognize when an earlier idea comes up again and automatically connect it to the relevant node?<\/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\/@cathy_cc\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cathy_cc<\/a>&nbsp;Hey Cathy thanks for the feedback! And yes, absolutely &#8211; Tackly recognises when an earlier idea comes up again (or something related to that idea) and connects all related nodes together.<\/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\">#16<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/ZSRHNPBWCEO3FB\" class=\"app-title\">FindDiskKiller<\/a><\/p>\n<div class=\"one-liner\">See which apps are hammering your Mac&#8217;s disk<\/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>FindDiskKiller\u662f\u4e00\u6b3e\u539f\u751fmacOS\u78c1\u76d8\u6d3b\u52a8\u76d1\u63a7\u5de5\u5177\uff0c\u4e13\u95e8\u7528\u6765\u63ea\u51fa\u90a3\u4e9b\u75af\u72c2\u8bfb\u5199\u786c\u76d8\u7684\u5e94\u7528\u7a0b\u5e8f\u548cAI\u7f16\u7a0b\u4ee3\u7406\uff0c\u5b9e\u65f6\u5b9a\u4f4d\u201c\u8c01\u5728\u5077\u4f60\u7684SSD\u5bff\u547d\u201d\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\/acbff46d-2060-4d38-8d6b-07198172117e.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\/890d51eb-37d2-4ded-ad6a-88c026e2c482.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\/e77dd736-cfee-4d00-8dd6-5aa5c07497cd.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\/2a035899-6562-427e-b6ff-3f8fcbccba45.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\/d1f8e87e-e9db-48b7-bddb-0c95a79e52b7.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\/c8e80aa9-291f-46ae-83e9-59bc89c477b5.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\">Open Source<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u78c1\u76d8\u76d1\u63a7\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">macOS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">AI\u7f16\u7a0b\u4ee3\u7406\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">macOS\u78c1\u76d8I\/O<\/span><br \/>\n            <span class=\"tag\">SSD\u5065\u5eb7<\/span><br \/>\n            <span class=\"tag\">\u8fdb\u7a0b\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u6587\u4ef6\u8bbf\u95ee\u8ffd\u8e2a<\/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\u9ad8\u5ea6\u80af\u5b9a\u5176\u5bf9AI\u7f16\u7a0b\u4ee3\u7406\uff08\u5982Cursor\u3001Claude Code\uff09\u7684\u9488\u5bf9\u6027\u3002\u6838\u5fc3\u5efa\u8bae\u5305\u62ec\uff1a\u589e\u52a0\u6309\u5e94\u7528\u7684\u5386\u53f2\u56fe\u8868\u4e0e\u56de\u770b\u529f\u80fd\u3001\u6309\u5de5\u4f5c\u533a\/\u9879\u76ee\u5206\u7ec4\u6587\u4ef6\u8bbf\u95ee\u3001\u4ee5\u53ca\u66f4\u8f7b\u91cf\u7684\u540e\u53f0\u6027\u80fd\u3002\u521b\u5efa\u8005\u5766\u8bda\u5f53\u524d\u6027\u80fd\u5f00\u9500\u504f\u9ad8\uff0c\u6b63\u7740\u624b\u4f18\u5316\u81f3\u4f4e\u4e8e\u7cfb\u7edf\u81ea\u5e26\u6d3b\u52a8\u76d1\u89c6\u5668\uff0c\u5e76\u627f\u8bfa\u672a\u6765\u4ee5\u975e\u4fb5\u5165\u5f0f\u65b9\u5f0f\u91cd\u505a\u544a\u8b66\u529f\u80fd\uff0c\u5e76\u63a8\u51faAI\u4ee3\u7406\u4e13\u7528\u5206\u6790\u6a21\u5757\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                FindDiskKiller\u5207\u4e2d\u4e86\u4e00\u4e2a\u975e\u5e38\u5177\u4f53\u4e14\u6b63\u5728\u6025\u5267\u81a8\u80c0\u7684\u75db\u70b9\uff1aAI\u7f16\u7a0b\u4ee3\u7406\uff08Cursor\u3001Claude Code\u7b49\uff09\u5bf9SSD\u7684\u9759\u9ed8\u6d88\u8017\u3002\u4f20\u7edf\u7cfb\u7edf\u76d1\u89c6\u5668\u53ea\u544a\u8bc9\u4f60\u201c\u78c1\u76d8\u5f88\u5fd9\u201d\uff0c\u800c\u5b83\u56de\u7b54\u7684\u662f\u201c\u8c01\u5728\u641e\u9b3c\u201d\u548c\u201c\u5728\u641e\u4ec0\u4e48\u6587\u4ef6\u201d\u3002\u8fd9\u4e2a\u7cbe\u51c6\u7684\u201c\u5f52\u56e0\u201d\u5b9a\u4f4d\uff0c\u662f\u5b83\u6700\u950b\u5229\u7684\u5200\u5203\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ece\u8bc4\u8bba\u6765\u770b\uff0c\u5b83\u7684\u201c\u534a\u6210\u54c1\u611f\u201d\u5f88\u660e\u663e\u3002\u5b9e\u65f6\u6a21\u5f0f\u867d\u597d\uff0c\u4f46\u6ca1\u6709\u5386\u53f2\u56de\u770b\uff0c\u610f\u5473\u7740\u7528\u6237\u65e0\u6cd5\u56de\u6eaf20\u5206\u949f\u524d\u7cfb\u7edf\u5361\u987f\u7684\u5143\u51f6\uff0c\u8fd9\u5927\u5927\u964d\u4f4e\u4e86\u8c03\u8bd5\u7684\u5b9e\u7528\u6027\u3002\u521b\u5efa\u8005\u5bf9\u6027\u80fd\u5f00\u9500\u7684\u5766\u8bda\u503c\u5f97\u8d5e\u8d4f\u2014\u2014\u201c\u6bd4Activity Monitor\u66f4\u8f7b\u91cf\u201d\u662f\u53ca\u683c\u7ebf\uff0c\u800c\u4e0d\u662f\u53ef\u5439\u5618\u7684\u5356\u70b9\u3002\u5982\u679c\u540e\u53f0\u8017\u8d39\u7684CPU\u6bd4\u5b83\u8981\u6293\u7684\u201c\u51f6\u624b\u201d\u8fd8\u591a\uff0c\u90a3\u5c31\u662f\u4e2a\u6096\u8bba\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5f53\u524d\u7248\u672c\u66f4\u50cf\u662fMVP\uff08\u6700\u5c0f\u53ef\u884c\u4ea7\u54c1\uff09\u2014\u2014\u89e3\u51b3\u4e86\u4ece0\u52301\u7684\u201c\u770b\u5230\u201d\u95ee\u9898\uff0c\u4f46\u79bb\u201c\u89e3\u51b3\u201d\u8fd8\u6709\u8ddd\u79bb\u3002\u7528\u6237\u9700\u8981\u7684\u4e0d\u662f\u6301\u7eed\u7684\u5b9e\u65f6\u76d1\u63a7\uff0c\u800c\u662f\u667a\u80fd\u544a\u8b66\u3001\u5386\u53f2\u5bf9\u6bd4\u3001\u4ee5\u53ca\u6309\u9879\u76ee\/\u5de5\u4f5c\u533a\u9694\u79bb\u5206\u6790\u7684\u673a\u5236\u3002\u521b\u5efa\u8005\u8ba1\u5212\u4e2d\u7684\u201cAI\u4ee3\u7406\u78c1\u76d8\u5206\u6790\u201d\u6a21\u5757\u4e0e\u201c\u975e\u4fb5\u5165\u5f0f\u544a\u8b66\u201d\u624d\u662f\u771f\u6b63\u80fd\u6c89\u6dc0\u4ef7\u503c\u7684\u6740\u624b\u950f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e00\u53e5\u8bdd\uff1a\u6982\u5ff5\u6ee1\u5206\uff0c\u6267\u884c\u529b\u53ca\u683c\u3002\u5728Cursor\u3001Claude Code\u7b49\u5de5\u5177\u65e5\u6d3b\u6500\u5347\u7684\u73b0\u5728\uff0c\u8fd9\u4e2a\u5de5\u5177\u7684\u4ef7\u503c\u53ea\u4f1a\u8d8a\u6765\u8d8a\u5927\uff0c\u4f46\u7559\u7ed9\u56e2\u961f\u6253\u78e8\u7684\u65f6\u95f4\u7a97\u53e3\uff0c\u4e5f\u53ea\u6709\u201c\u4e0b\u4e00\u4e2a\u7cfb\u7edf\u5361\u987f\u53d1\u751f\u4e4b\u524d\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\">FindDiskKiller<\/span>\n                <\/div>\n<div class=\"comment-content\">FindDiskKiller is a native macOS disk activity monitor that reveals which apps and AI coding agents are driving reads and writes. Track per-process disk I\/O, CPU and network activity, inspect live file access, trace folders, and view SMART\/NVMe drive health. Completely free and open source.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hi Product Hunt!<\/p>\n<p>I built FindDiskKiller to answer a simple question: what is hammering my Mac&#8217;s disk right now?<\/p>\n<p>AI coding agents can generate a surprising amount of disk activity through builds, caches, logs, dependency downloads, and runaway processes. macOS Activity Monitor shows overall disk usage, but I wanted a faster way to identify exactly which process is responsible and what files it is touching.<\/p>\n<p>FindDiskKiller provides:<\/p>\n<p>\u2022 Real-time disk reads and writes by app<br \/>\n\u2022 CPU and network activity<br \/>\n\u2022 Live file access inspection<br \/>\n\u2022 Folder-level tracing<br \/>\n\u2022 SMART and NVMe drive health information<\/p>\n<p>The app is completely free and open source. I would especially appreciate feedback about which views are most useful and what would make unusual disk activity easier to diagnose.<\/p>\n<p>Website: <a href=\"https:\/\/finddiskkiller.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/finddiskkiller.com<\/a><br \/>\nSource code: <a href=\"https:\/\/github.com\/jianyintang\/find-disk-killer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/jianyintang\/f&#8230;<\/a><\/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\">Congrats on the launch. Loving the focus on AI agents since Cursor constantly clogs up my disk. Will definitely give it a try. Do you plan to add automated alerts for unusual disk writes?<\/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\/@hannesh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hannesh<\/a>&nbsp;Hey, thanks so much for the kind words and for giving it a try!<\/p>\n<p>Funny enough, alerts were actually in the initial build \u2014 but I ended up removing them because constant popups got annoying really fast. So your timing on this question is perfect.<\/p>\n<p>Here&#8217;s what I&#8217;m currently thinking for the next iteration: instead of generic alerts, I want to add dedicated AI agent disk usage profiling \u2014 giving you a clear breakdown of what agents like Cursor are doing to your disk. I&#8217;m also exploring batch management features that tap into official AI agent APIs. And yes, alerts will come back, but in a way that&#8217;s genuinely useful without being intrusive.<\/p>\n<p>The guiding principle I&#8217;m holding myself to is: every small feature should be intuitive, simple, and just work. Would love to hear your thoughts when the updates land \u2014 and if you have any other pain points with Cursor&#8217;s disk usage, I&#8217;m all ears.<\/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\">@jianyin_tang Makes total sense, nobody wants endless pop-ups. Dedicated profiling for agents like Cursor sounds way better. Looking forward to seeing where you take it!<\/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>This is extremely helpful. Lately, I had to restart my Mac many times. I am suspicious about one particular app that is responsible for that, let&#8217;s see whether I am right. Good solution for that \ud83d\ude42 Is it accur8? <\/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;Hey Nika, really appreciate you taking the time to comment!<\/p>\n<p>Glad to hear the tool might be useful for your situation. I&#8217;ve been using it myself to track disk activity during Codex sessions, and it&#8217;s been working well in that context. That said, I&#8217;m actively testing it across more apps and scenarios to catch any issues \u2014 there&#8217;s definitely room to improve.<\/p>\n<p>I&#8217;d love to hear whether it helps you identify the culprit on your Mac. If you run into any problems or have suggestions, please don&#8217;t hesitate to share \u2014 if it&#8217;s within the app&#8217;s scope, I can iterate and ship a fix pretty quickly.<\/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>honestly this looks really useful for tracking down which agents are chewing through SSDs. one thing that would make it even better is per-app historical graphs, like being able to see disk writes over the last 24 hours or week for a specific process, so you can spot patterns and figure out which tool is slowly eating your drive over time.<\/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>Finally something that shows which AI agent is hammering my SSD during long refactors. The per-process I\/O view is genuinely useful and it runs light in the background.<\/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>Finally something that shows which of my AI coding agents is hammering the SSD without permission. The live file access view is genuinely useful for catching rogue processes I didn&#8217;t even know were running.<\/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>honesty about the current overhead being more than you&#8217;d like is appreciated, most launches would just dodge that question. hoping the leaner version ships soon, would love to leave it running all day without a second thought<\/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>They\u2019ve made AI coding agents completely opaque about on-disk activity. You see either the fan spinning, an out of space warning, or a build taking ages, but you can&#8217;t actually see it doing anything. I like that this tool is focused strictly on attribution and does not aspire to be another ubiquitous system monitoring tool. The fact that this is open source is also kind of important &#8211; if you actually found AI-driven processes that are eating up gigabytes, you\u2019d want to know what precisely that process is looking at.<\/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 AI agent angle is a good hook, Cursor and Claude Code do churn through disk more than people expect. question about the monitor itself &#8211; with live file access inspection running, does FindDiskKiller add noticeable CPU or battery overhead if you just leave it open in the background all day, or is it light enough that it&#8217;s not a tradeoff. would hate to fix one problem and quietly cause a smaller version of the same 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;This is a really sharp question \u2014 and honestly, one I&#8217;ve been asking myself.<\/p>\n<p>You&#8217;re right to be concerned, and I won&#8217;t pretend it&#8217;s perfect yet. I&#8217;ve actually noticed more performance overhead than I expected during my own testing, and I&#8217;m actively working on optimizing it right now. My benchmark is simple: I want FindDiskKiller to use less resources than macOS Activity Monitor itself.<\/p>\n<p>I&#8217;m aiming to ship a noticeably improved version within the next day or two.<\/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 live file access view is especially useful for debugging unexpected churn from AI coding agents. Does it group activity by workspace or project, so I can separate normal build and cache writes from a runaway process touching unrelated files?<\/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\/@adityaharish2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adityaharish2002<\/a>&nbsp;Thank you \u2014 this is a genuinely thoughtful product suggestion, and I really appreciate you taking the time to share it.<\/p>\n<p>I&#8217;ll be honest about where things currently stand: the live file access view right now only shows real-time I\/O throughput \u2014 it doesn&#8217;t yet break things down by directory or analyze file-level space consumption within specific folders. So grouping by workspace or project isn&#8217;t there yet.<\/p>\n<p>That said, your suggestion is going to be incredibly valuable guidance for me when I build out the dedicated AI Agents disk space analysis feature. The idea of being able to separate &#8220;normal build\/cache writes within a project&#8221; from &#8220;a runaway process touching unrelated files&#8221; is exactly the kind of clarity I want that feature to provide. Your framing of this as a workspace-level grouping problem really helps me think about how to structure it.<\/p>\n<p>I&#8217;ve noted this down \u2014 thanks again for the depth of feedback. It&#8217;s input like this that pushes the tool in the right direction.<\/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 AI coding agent angle is what sold me, Cursor and Claude Code do generate way more disk churn than people realize until they actually look. one thing I&#8217;m curious about beyond the live view &#8211; does it keep any history so you can look back after the fact? like if my Mac was crawling 20 minutes ago but I only notice now, is there a timeline to check what was hammering the disk at that point, or is it strictly a right-now view<\/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\/@galdayan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@galdayan<\/a>&nbsp;Really appreciate this comment \u2014 and honestly, the AI coding agent angle is exactly what drove me to build this. <\/p>\n<p>Your suggestion about history is a great one. I&#8217;ll be honest \u2014 when I first built this, I was laser-focused on answering one question fast: &#8220;what is hammering my disk right now?&#8221; So no, it doesn&#8217;t currently keep any history. But you&#8217;re absolutely right that tracking disk wear and size consumption over a longer time window would lead to much more convincing analysis and insights. I&#8217;m going to seriously consider adding this.<\/p>\n<p>Along those lines, I&#8217;ve also been thinking about attributing directory size growth and SSD lifespan wear directly to specific processes. The tricky part is balancing that with performance \u2014 a disk analysis tool that becomes a battery drainer itself would be&#8230; not great, haha. Definitely something I need to weigh carefully.<\/p>\n<p>Thanks again for the thoughtful feedback \u2014 this kind of input really helps shape where the tool goes next.<\/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\/ZA5BFKZ3TAXT47\" class=\"app-title\">Cynative Security Research Agent<\/a><\/p>\n<div class=\"one-liner\">Ask your cloud anything without breaking prod. Read-only.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">95<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Cynative Security Research Agent \u662f\u4e00\u6b3e\u5f00\u6e90\u7684AI\u5b89\u5168\u8c03\u67e5\u5de5\u5177\uff0c\u901a\u8fc7\u53ea\u8bfb\u67b6\u6784\u8ba9\u7528\u6237\u7528\u81ea\u7136\u8bed\u8a00\u67e5\u8be2\u4e91\u3001\u4ee3\u7801\u548c\u8fd0\u884c\u65f6\u73af\u5883\u7684\u5b89\u5168\u95ee\u9898\uff0c\u5f7b\u5e95\u907f\u514d\u8bef\u64cd\u4f5c\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\/7fbe79f5-596c-4218-a310-22947bcae1ea.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\/5e70c6f4-e9c6-4e62-bfcd-4170ebc104e5.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\/00fb14e4-9663-46fb-a250-895567b24f50.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\/f8a27262-6c27-4ad6-9104-13a930afdd21.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\">Open Source<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Security<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f00\u6e90AI\u5b89\u5168\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">\u53ea\u8bfb\u67b6\u6784<\/span><br \/>\n            <span class=\"tag\">\u4e91\u5b89\u5168\u67e5\u8be2<\/span><br \/>\n            <span class=\"tag\">\u4e91\u670d\u52a1\uff08AWS\/GCP\/Azure\uff09<\/span><br \/>\n            <span class=\"tag\">K8s\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u81ea\u7136\u8bed\u8a00\u63a5\u53e3<\/span><br \/>\n            <span class=\"tag\">IAM\u6743\u9650\u7ba1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u6c99\u76d2\u811a\u672c\u6267\u884c<\/span><br \/>\n            <span class=\"tag\">\u57fa\u7840\u8bbe\u65bd\u8c03\u67e5<\/span><br \/>\n            <span class=\"tag\">\u5b89\u5168\u5ba1\u8ba1\u6807\u7b7e<\/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\u76db\u8d5e\u5176\u5f3a\u5236\u53ea\u8bfb\u800c\u975e\u4f9d\u8d56\u6587\u6863\u7684\u4e25\u683c\u8bbe\u8ba1\u3002\u6838\u5fc3\u5173\u5207\uff1a\u5ba1\u8ba1\u65e5\u5fd7\u672c\u8eab\u7684\u8bbf\u95ee\u63a7\u5236\u3001\u65b0API\u52a8\u4f5c\u7684\u65f6\u95f4\u5dee\u963b\u65ad\uff0824h\u5237\u65b0\u671f\u95f4\u786c\u62d2\u7edd\uff09\u3001\u5355\u811a\u672c\u5185\u5355\u6b65\u5931\u8d25\u4e0d\u5f71\u54cd\u5168\u6d41\u7a0b\u7684\u8bbe\u8ba1\uff08\u5931\u8d25\u540e\u9519\u8bef\u91cd\u8bd5\uff0c\u9ed8\u8ba4\u8fde\u7eed5\u6b21\u5931\u8d25\u7ec8\u7ed3\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                Cynative \u7684\u201c\u53ea\u8bfb\u5f3a\u5236\u201d\u5e76\u975e\u8425\u9500\u5671\u5934\u2014\u2014\u5b83\u5c06IAM\u52a8\u4f5c\u89e3\u6790\u3001STS\u4e8c\u6b21\u7b7e\u53d1\u3001\u6c99\u76d2\u811a\u672c\u6267\u884c\u4e32\u8054\u6210\u4e00\u6761\u81ea\u8bc1\u5b89\u5168\u94fe\uff0c\u6bd4\u201c\u5efa\u8bae\u4f60\u7528\u597d\u6743\u9650\u201d\u7684\u7ade\u54c1\uff08\u5982\u4f20\u7edfMCP\u5de5\u5177\uff09\u9ad8\u51fa\u4e00\u4e2a\u7ef4\u5ea6\u3002\u6280\u672f\u53d6\u820d\u503c\u5f97\u80af\u5b9a\uff1a\u7528\u6bcf\u65e5\u62c9\u53d6\u63d0\u4f9b\u5546\u6743\u9650\u5b9a\u4e49\u66ff\u4ee3\u9759\u6001\u6620\u5c04\uff0c\u517c\u987e\u4e86\u8986\u76d6\u7387\u548c\u65f6\u6548\u6027\uff0c\u65b0\u670d\u52a1\u7b2c\u4e00\u5929\u786c\u62d2\u7edd\u65e0\u7591\u662f\u6700\u4fdd\u9669\u7684\u51b3\u7b56\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u77ed\u677f\u540c\u6837\u660e\u663e\uff1a\n            <\/p>\n<p class=\"ai-content\">\n                1. **\u5ba1\u8ba1\u65e5\u5fd7\u672c\u8eab\u6210\u4e3a\u653b\u51fb\u9762**\u2014\u2014\u8f93\u51fa\u5305\u542b\u5b8c\u6574\u7684\u653b\u51fb\u8def\u5f84\u6620\u5c04\uff0c\u82e5\u8be5\u65e5\u5fd7\u88ab\u672a\u6388\u6743\u8bbf\u95ee\uff0c\u7b49\u4e8e\u767d\u9001\u653b\u51fb\u8005\u4e00\u4efd\u201c\u9ad8\u4ef7\u503c\u76ee\u6807\u6e05\u5355\u201d\u3002\u8bc4\u8bba\u4e2d\u5df2\u6709\u7528\u6237\u63d0\u51fa\uff0c\u4f46\u5b98\u65b9\u4ec5\u56de\u5e94\u201cfail-closed audit log\u201d\uff0c\u672a\u89e3\u91ca\u65e5\u5fd7\u7684\u8bbf\u95ee\u63a7\u5236\u673a\u5236\u3002\n            <\/p>\n<p class=\"ai-content\">\n                2. **\u5b9e\u65f6\u6027\u53d7\u9650\u4e8e\u5237\u65b0\u7a97\u53e3**\u2014\u201424\u5c0f\u65f6\u662f\u9ed8\u8ba4\u503c\uff0c\u867d\u53ef\u914d\u7f6e\uff0c\u4f46\u4f01\u4e1a\u82e5\u4f7f\u7528\u65b0\u670d\u52a1\u540e\u7acb\u5373\u60f3\u63a2\u6d4b\uff0c\u5fc5\u987b\u627f\u53d7\u7b49\u5f85\u3002\n            <\/p>\n<p class=\"ai-content\">\n                3. **\u201c\u811a\u672c\u6bcf\u8f6e\u201d\u7684\u8bbe\u8ba1\u867d\u7075\u6d3b**\uff0c\u4f46\u8fde\u7eed\u5931\u8d255\u6b21\u5373\u786c\u4e2d\u6b62\uff0c\u82e5\u67d0\u7c7b\u64cd\u4f5c\u56e0\u6743\u9650\u9891\u7e41\u5931\u8d25\uff08\u5982\u521a\u4e0a\u7ebf\u7684\u65b0API\u88ab\u786c\u62d2\u7edd\uff09\uff0c\u7528\u6237\u4f1a\u88ab\u8feb\u4fee\u6539\u63d0\u793a\u8bcd\uff0c\u589e\u52a0\u8c03\u8bd5\u6210\u672c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cCynative \u662f\u4e91\u5b89\u5168\u8c03\u7814\u9886\u57df\u7684\u4e00\u6b21\u52a1\u5b9e\u521b\u65b0\uff0c\u5c24\u5176\u9002\u5408\u201c\u6478\u9ed1\u6392\u67e5\u201d\u573a\u666f\u3002\u4f46\u771f\u6b63\u7684\u4f01\u4e1a\u7ea7\u90e8\u7f72\u8fd8\u9700\u8865\u9f50\uff1a\u65e5\u5fd7\u8131\u654f\/\u5ba1\u8ba1\u5165\u9003\u751f\u95e8\u673a\u5236\u3001\u66f4\u7ec6\u7c92\u5ea6\u7684\u5931\u8d25\u91cd\u8bd5\u7b56\u7565\u3001\u4ee5\u53ca\u9488\u5bf9\u96f6\u65e5API\u7684\u5e94\u6025\u8986\u76d6\u901a\u9053\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\">Cynative Security Research Agent<\/span>\n                <\/div>\n<div class=\"comment-content\">Open-source AI CLI that answers security questions across cloud, code and runtime &#8211; GitHub, GitLab, AWS, GCP, Azure, K8s. Ask in plain language: &#8220;what&#8217;s publicly exposed that shouldn&#8217;t be?&#8221; or &#8220;can my CI escalate to cloud admin?&#8221;. Read-only by construction: every call is resolved to its IAM actions and authorized against a read-only policy before credentials attach. It can&#8217;t modify your infra even if asked. Unlike MCP tools, it writes JS in a sandboxed runtime &#8211; a script per turn, not one call.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>A debate we had: do we just document how to scope credentials right and leave it to you &#8211; or enforce read-only even if you run it with admin creds? We went with enforcing it, despite the tradeoff of keeping up as providers ship new APIs. Pulling permission definitions from each provider (a few MB, daily by default) instead of a static map keeps coverage current automatically. Every API call is resolved to the IAM actions it needs and authorized against the provider&#8217;s own policy definitions before a credential is attached, failing closed on anything it can&#8217;t classify. The allowed sets come from the providers themselves (AWS IAM action simulation, GCP role permission eval, Azure RBAC role definitions, the K8s cluster own live view RBAC role) so coverage tracks the APIs as they grow. On AWS, assumed-role credentials are additionally re-vended through STS AssumeRole scoped to SecurityAudit. Every request host is pinned to its mapped service and region and the resolved IP is verified before connecting, so the agent can only reach your own infra. The code execution has no host access and every call is enforced to go through the read-only action gate or it fails.<\/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>I&#8217;ll be around, happy to answer any question.<\/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 read-only enforcement design is genuinely more thorough than most tools that just document best practice and hope you follow it. one thing I&#8217;d want answered before pointing this at a real environment though &#8211; the answers this thing produces are basically a complete map of what&#8217;s exposed and how to get to it. where does that output live once it&#8217;s generated, and is there any access control on the audit history itself, since that history becomes a pretty valuable target on its own<\/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>ran a couple of checks against our AWS setup and the read-only guard is genuinely enforced, not just a claim. the per-turn sandboxed scripts feel like the right way to do this instead of hoping an MCP tool behaves.<\/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\/@solomon_barnard\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@solomon_barnard<\/a>&nbsp;Thanks! Pretty neat you verified and came back to report.<\/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>Honestly love that the IAM-bound read-only layer is the default, not a setting you have to remember to flip on. Most security tools treat least-privilege as homework, you basically baked it into the call path. That kind of restraint takes real thought.<\/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\/@quincy_rice\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@quincy_rice<\/a>&nbsp;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>The promise of investigating cloud infrastructure without risking production is compelling. How do you enforce read-only boundaries, and does every finding include the evidence and cloud resources used to reach it?<\/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\/@russlan_ramdowar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@russlan_ramdowar<\/a>&nbsp;Thanks! Every request is host-pinned, then resolved to its required IAM actions and checked against your read-only policy before a credential is attached &#8211; SecurityAudit, roles\/viewer, Reader, the cluster&#8217;s live view role. Unresolved means denied. AWS assumed roles also get STS-scoped so AWS enforces it server-side too. Code runs sandboxed with no filesystem, network or host APIs.<\/p>\n<p>Findings carry their raw evidence and a verifier cross-checks each against live evidence before it&#8217;s reported. Every tool call hits a fail-closed audit log, so the calls behind a finding are replayable.<\/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>fail-closed-by-default on the classification is the right call, but it raises a timing question &#8211; you pull permission definitions daily, so what happens on the day a provider ships a brand new API action that isn&#8217;t in that day&#8217;s pull yet. does it just refuse to classify it and block the call until the next sync picks it up, or is there some other fallback for that gap window<\/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 Gal! Two cases. New action on a service we already model: no gap &#8211; the resolver derives namespace:op off the classified operation, and the decision is a live iam:SimulateCustomPolicy against your policy. A brand new service that isn&#8217;t in the cached catalog: hard deny until refresh, we won&#8217;t guess. TTL is 24h and configurable.<\/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>Shaked \u2014 the &#8220;script per turn, not one call&#8221; design is neat. Curious what happens when one call inside that script hits something outside the read-only gate \u2014 full abort, or does it just fail that line and move on? My own agent chains multi-step calls, and one blocked step derailing the whole run is a real pain.<\/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\/@medal411\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@medal411<\/a>&nbsp;Thanks! Keeps running. Inner tool calls are async inside the sandbox &#8211; if the script catches it, it carries on with whatever else succeeded. If it doesn&#8217;t catch, that one script ends, but the error comes back to the model and it writes a new script for just the missing data, same session. So a blocked step costs an llm turn, not the run. The hard stop is repeated no-progress calls tripping a consecutive-failure ceiling, default 5, instead of letting it 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>Hi Shaked, the reassurance that it only ever reads and never touches my systems is exactly what would make me brave enough to really poke around a live setup. That peace of mind matters more than people tend to admit.<\/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\/@robin_de_lacroix\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@robin_de_lacroix<\/a>&nbsp;Thank you Robin, I&#8217;m glad you like our approach!<\/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\">Enforcing read-only even when someone gives it broader credentials is the part I like here. Relying on everyone to configure access perfectly would probably defeat the point pretty quickly. Congrats on the launch!<\/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\/@etiennegarcia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@etiennegarcia<\/a>&nbsp;Thanks!<\/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\">#18<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/LAVT63Z62YHWUH\" class=\"app-title\">iMessage Hermes on a Raspberry Pi<\/a><\/p>\n<div class=\"one-liner\">An always-on AI agent that lives in your home<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">92<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>\u901a\u8fc7\u6811\u8393\u6d3e\u642d\u5efa\u4e00\u4e2a\u5e38\u9a7b\u5bb6\u5ead\u7684AI\u667a\u80fd\u4f53\uff0c\u7528\u6237\u53ef\u901a\u8fc7iMessage\u6216\u77ed\u4fe1\u968f\u65f6\u968f\u5730\u53d1\u9001\u6307\u4ee4\uff0c\u89e3\u51b3\u5bb6\u5ead\u573a\u666f\u4e0b\u5c0f\u4efb\u52a1\u81ea\u52a8\u5316\u4e0e\u4fe1\u606f\u67e5\u8be2\u7684\u75db\u70b9\uff0c\u5982\u66f4\u65b0\u65e5\u5386\u3001\u67e5\u770b\u83dc\u8c31\u7b49\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\/af4bc7ac-0088-4671-b03f-24c73d17d5e1.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\/da24594a-7f34-4071-bcb2-bab082eedfb8.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\/8b38cb43-6c0f-4bef-b759-aa3ed61384ee.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\/260b4b70-9ec8-4958-933e-1b1a06ee24bf.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/GeYbjD61BV0\"><source src=\"https:\/\/youtu.be\/GeYbjD61BV0\" 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\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span><br \/>\n            <span class=\"tag\">Bots<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u667a\u80fd\u4f53<\/span><br \/>\n            <span class=\"tag\">\u6811\u8393\u6d3e<\/span><br \/>\n            <span class=\"tag\">\u5bb6\u5ead\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">iMessage\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/span><br \/>\n            <span class=\"tag\">SMS\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">\u5bb6\u5ead\u65e5\u5386<\/span><br \/>\n            <span class=\"tag\">\u98df\u8c31\u8f85\u52a9<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u90e8\u7f72<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u5bb6\u5c45<\/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\u80af\u5b9a\u4e86SSH\u4e00\u952e\u90e8\u7f72\u7684\u4fbf\u6377\u6027\uff0c\u4f46\u62c5\u5fe7\u65ad\u7f51\u65f6\u672c\u5730\u4efb\u52a1\u80fd\u5426\u6b63\u5e38\u5de5\u4f5c\uff1b\u6709\u7528\u6237\u5173\u5fc3\u77ed\u4fe1\u5b89\u5168\uff0c\u8be2\u95ee\u662f\u5426\u652f\u6301\u767d\u540d\u5355\u673a\u5236\uff1b\u53e6\u6709\u7528\u6237\u8d28\u7591iMessage\u6865\u63a5\u7684\u7a33\u5b9a\u6027\uff0c\u5f00\u53d1\u8005\u56de\u5e94\u4f7f\u7528Plow Chat API\u53ef\u907f\u514dMac\u4e2d\u7ee7\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                iMessage Hermes on a Raspberry Pi\u7684\u5de7\u5999\u4e4b\u5904\u5728\u4e8e\uff0c\u5b83\u6ca1\u6709\u91cd\u590d\u9020\u8f6e\u5b50\u53bb\u5b9a\u4e49\u201cAI\u8be5\u505a\u4ec0\u4e48\u201d\uff0c\u800c\u662f\u628a\u9009\u62e9\u6743\u4ea4\u7ed9\u7528\u6237\u2014\u2014\u63d0\u4f9b\u4e00\u4e2a\u5ec9\u4ef7\u3001\u5e38\u9a7b\u7684\u786c\u4ef6\u57fa\u7840\uff0c\u8ba9\u5bb6\u5ead\u573a\u666f\u4e0b\u7684\u5fae\u81ea\u52a8\u5316\u53d8\u5f97\u53ef\u843d\u5730\u3002\u8fd9\u79cd\u201c\u5148\u6709\u9e21\uff0c\u540e\u6709\u86cb\u201d\u7684\u601d\u8def\uff0c\u6bd4\u90a3\u4e9b\u8bd5\u56fe\u7528\u4e00\u4e2a\u5927\u6a21\u578b\u5305\u529e\u4e00\u5207\u7684\u4ea7\u54c1\u66f4\u52a1\u5b9e\u3002\u4f46\u95ee\u9898\u4e5f\u5f88\u660e\u663e\uff1a\u9879\u76ee\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u201c\u811a\u624b\u67b6\u201d\uff0c\u7528\u6237\u9700\u8981\u4e00\u5b9a\u7684\u52a8\u624b\u80fd\u529b\u624d\u80fd\u8ba9\u5b83\u53d8\u5f97\u6709\u7528\uff0c\u4e14\u4f9d\u8d56\u5916\u90e8API\uff08Plow Chat\uff09\u6765\u7ef4\u6301iMessage\u901a\u9053\uff0c\u589e\u52a0\u4e86\u7cfb\u7edf\u8106\u5f31\u6027\u548c\u9690\u79c1\u98ce\u9669\u3002\u8bc4\u8bba\u4e2d\u5173\u4e8e\u65ad\u7f51\u79bb\u7ebf\u80fd\u529b\u7684\u8d28\u7591\u76f4\u51fb\u8981\u5bb3\u2014\u2014\u5982\u679c\u5bb6\u5ead\u7f51\u7edc\u6ce2\u52a8\uff0c\u90a3\u4e9b\u53a8\u623f\u5c4f\u5e55\u548c\u51b0\u7bb1\u83dc\u8c31\u5c31\u4f1a\u6210\u4e3a\u88c5\u9970\u54c1\u3002\u53e6\u5916\uff0c\u5b89\u5168\u6a21\u578b\u867d\u901a\u8fc7\u7ebf\u7a0b\u9a8c\u8bc1\u89e3\u51b3\u4e86\u964c\u751f\u53f7\u7801\u5165\u4fb5\u95ee\u9898\uff0c\u4f46\u67b6\u6784\u4e0a\u4ecd\u4f53\u73b0\u4e86\u201c\u5148\u89e3\u51b3\u5b58\u5728\u6027\uff0c\u518d\u89e3\u51b3\u5b8c\u5907\u6027\u201d\u7684\u521b\u4e1a\u903b\u8f91\u3002\u771f\u6b63\u4ef7\u503c\u4e0d\u5728\u4e8eAgent\u672c\u8eab\u6709\u591a\u806a\u660e\uff0c\u800c\u5728\u4e8e\u5b83\u628a\u201c\u65e5\u5e38\u7410\u4e8b\u81ea\u52a8\u5316\u7684\u95e8\u69db\u201d\u4ece\u201c\u4f1a\u5199\u4ee3\u7801\u201d\u964d\u5230\u4e86\u201c\u4f1aSSH\u201d\uff0c\u5e76\u8ba9\u7528\u6237\u6301\u7eed\u53c2\u4e0e\u8fed\u4ee3\u3002\u5982\u679c\u672a\u6765\u80fd\u63d0\u4f9b\u7a33\u5b9a\u7684\u672c\u5730\u63a8\u7406\u548c\u79bb\u7ebf\u4fdd\u62a4\u673a\u5236\uff0c\u5b83\u6216\u8bb8\u771f\u80fd\u6210\u4e3a\u5bb6\u5ead\u7269\u8054\u7f51\u7684\u201c\u5ec9\u4ef7\u4e2d\u67a2\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\">iMessage Hermes on a Raspberry Pi<\/span>\n                <\/div>\n<div class=\"comment-content\">An always-on AI agent that lives on a cheap little Raspberry Pi in your home, with a real phone number you text over iMessage or SMS from anywhere. It runs Hermes, an open-source agent, and installs by handing the guide to a coding agent that works over SSH. Best of all, it&#8217;s a foundation: build a family calendar on a kitchen screen, a recipe helper on the fridge, whatever you dream up. We build in public \u2014 join the Discord to see what others are making.<\/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 always thought a personal AI agent was cool, but I could never figure out where one should actually live. On my laptop it&#8217;s off when I travel, and reaching it means some clunky bot app I never open.<\/p>\n<p>So I gave my house its own computer. iMessage Hermes is an always-on AI agent running on a cheap little Raspberry Pi, with a real phone number I text over iMessage or SMS from anywhere. It runs Hermes (open-source), and you set it up by handing the guide to a coding agent \u2014 it does most of the work over SSH.<\/p>\n<p>The best part: it&#8217;s a foundation. Once it&#8217;s running, you build whatever you want on it. My family has a dashboard on a screen in the kitchen with everyone&#8217;s upcoming commitments \u2014 games, appointments, who&#8217;s traveling \u2014 and I just text the agent to add things (&#8220;dinner with the Kims Friday at 7&#8221;) or ask it &#8220;when&#8217;s the recital?&#8221; There&#8217;s a recipe helper on a screen stuck to the fridge, so the steps stay right in front of you while your hands are covered in flour. We&#8217;ve already got a community building things like this, and we&#8217;re launching a Discord so creators can share what they make.<\/p>\n<p>Would love your feedback, and happy to answer anything. What would you put on your always-on home agent?<\/p><\/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 the &#8220;build it with an AI over SSH&#8221; approach, that&#8217;s a really clever onboarding trick. One thing I&#8217;d want before committing a Pi to this full time is proper scheduled task support with local fallback if the network drops, so things like the kitchen calendar or recipe helper keep working even when the internet flakes 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=\"comment-item\">\n<div class=\"comment-content\">\n<p>kitchen dashboard and fridge recipe helper are exactly the kind of small home automation that never gets built because setting up a server is annoying, so having it fall out of one Pi is a nice unlock. question on the phone number side though &#8211; since the agent has its own number, is there any allowlist on who it&#8217;ll actually act on, or does anyone who texts that number get to add to the family calendar \/ whatever gets built on top. wrong number texting in feels like the actual attack surface here, more than the iMessage bridge itself<\/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\/@omri_ben_shoham1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@omri_ben_shoham1<\/a>&nbsp;Yeah, great point. The Plow Chat API handles this for you. With the API you are provisioning threads vs provisioning a raw phone number line. So you don&#8217;t have a phone number that anyone can text, but rather a thread with pre-approved participants. Each participant will have to send a verification code to opt-in. You can create as many threads as you want, but numbers that don&#8217;t match with a verified chat just don&#8217;t go through.<\/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 is cool. I have a Pi and I\u2019m going to try setting this up \u2014 I\u2019ll come back and say if it worked or not. Congrats on the launch. More tutorials like this would be great. <\/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>Very nice, how to test?<\/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\/@pueblo_aguilar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pueblo_aguilar<\/a>&nbsp;Hey! Every step in the guide ends with a quick checkpoint \u2014 a real command or output to confirm it worked before you move on. Doing it by hand, that&#8217;s how you know the concept landed; and when you hand the guide to a coding agent, it uses those same checkpoints to keep itself on track.<\/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 interesting constraint here is that iMessage doesn&#8217;t really want to run anywhere except macOS. So a Pi in the corner of your house implies something else is doing the actual sending \u2014 a Mac acting as a bridge, or one of the reverse-engineered routes.<\/p>\n<p>Which path did you take, and how stable has it been across iOS updates? That&#8217;s the part I&#8217;d want to understand before hanging an always-on agent off it, since the failure mode isn&#8217;t a crash you&#8217;d notice \u2014 it&#8217;s messages quietly not going out while you assume they did.<\/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\/@ark_y_k\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ark_y_k<\/a>! Yeah, great question. We are using the Plow Chat API so you don&#8217;t even need a Mac bridge. The Plow Chat API has been super stable and it also gives your agent its own phone number vs messaging yourself or something strange w\/ BlueBubbles. We have a guide on how to use this API service as well &#8212; <a href=\"https:\/\/howto.plow.co\/plow-chat-api\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/howto.plow.co\/plow-chat-api<\/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<\/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\/5CEBATVKMXJA2Q\" class=\"app-title\">Edit Mind \u00d7 Strava<\/a><\/p>\n<div class=\"one-liner\">Every clip matched to the Strava activity it&#8217;s from<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">92<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Edit Mind \u00d7 Strava\u662f\u4e00\u6b3e\u5c06\u8fd0\u52a8\u89c6\u9891\u4e0eStrava\u6d3b\u52a8\u6570\u636e\uff08\u5fc3\u7387\u3001\u901f\u5ea6\u3001\u6d77\u62d4\u3001\u8ddd\u79bb\uff09\u9010\u5e27\u5339\u914d\u7684\u5de5\u5177\uff0c\u5e2e\u52a9\u7528\u6237\u5728\u6d77\u91cf\u8fd0\u52a8\u7d20\u6750\u4e2d\uff0c\u901a\u8fc7\u8fd0\u52a8\u6307\u6807\u5feb\u901f\u68c0\u7d22\u548c\u56de\u653e\u7279\u5b9a\u7247\u6bb5\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\/732920bb-0c61-4af6-b697-b0cac60527fc.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\/d421e951-35ee-4d82-8dc3-85689c35bc3c.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\/c44565e6-cf10-4ac4-9232-c00075f4f9e9.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\/ed9724ac-d67b-4ce7-8754-af26a665c5d1.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\/ebc53f89-0193-448c-bb83-ee2103872d67.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/tEYaNwgWx6Y\"><source src=\"https:\/\/youtu.be\/tEYaNwgWx6Y\" 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\">Health &#038; Fitness<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Video<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u89c6\u9891\u526a\u8f91<\/span><br \/>\n            <span class=\"tag\">\u8fd0\u52a8\u6570\u636e\u53ef\u89c6\u5316<\/span><br \/>\n            <span class=\"tag\">Strava\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">GPS\u5339\u914d<\/span><br \/>\n            <span class=\"tag\">\u8fd0\u52a8\u89c6\u9891\u68c0\u7d22<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u521b\u4f5c\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">GoPro<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u540c\u6b65<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u641c\u7d22<\/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\u672c\u5730\u641c\u7d22\u7684\u5feb\u901f\u6027\u4e0e\u5b9e\u7528\u6027\u3002\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u5728\u6280\u672f\u7ec6\u8282\uff1a\u591a\u8bbe\u5907\u62cd\u6444\u65f6\u7684\u65f6\u949f\u6f02\u79fb\u4e0e\u65f6\u95f4\u6233\u5bf9\u9f50\u95ee\u9898\uff0c\u4ee5\u53ca\u624b\u673a\u65f6\u949f\u4e0d\u51c6\u5bfc\u81f4\u5339\u914d\u9519\u8bef\u7684\u6821\u9a8c\u673a\u5236\u3002\u6b64\u5916\uff0c\u7528\u6237\u671f\u671b\u589e\u52a0\u97f3\u9891\u6ce2\u5f62\u641c\u7d22\u3001\u5065\u8eab\u573a\u666f\uff08\u5982\u5065\u8eab\u623f\uff09\u4e0b\u7684\u7cbe\u51c6\u68c0\u7d22\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                Edit Mind \u00d7 Strava\u5207\u5165\u4e86\u4e00\u4e2a\u975e\u5e38\u5177\u4f53\u7684\u75db\u70b9\u2014\u2014\u8fd0\u52a8\u89c6\u9891\u521b\u4f5c\u8005\u540e\u671f\u6574\u7406\u7d20\u6750\u7684\u201c\u5730\u72f1\u65f6\u523b\u201d\u3002\u5b83\u7684\u6838\u5fc3\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u526a\u8f91\u201d\uff0c\u800c\u5728\u4e8e\u201c\u7d22\u5f15\u201d\u3002\u5f53\u7528\u6237\u5bf9\u7740\u6570\u767e\u5c0f\u65f6\u7684\u9a91\u884c\u5f55\u50cf\uff0c\u60f3\u627e\u5230\u201c\u90a3\u6b21\u5fc3\u7387\u98d9\u5230180\u7684\u722c\u5761\u7247\u6bb5\u201d\u65f6\uff0c\u4f20\u7edf\u7684\u6309\u6587\u4ef6\u540d\u6d4f\u89c8\u662f\u4f4e\u6548\u7684\uff0c\u800c\u4e91\u7aefAI\u5206\u6790\u53c8\u5e26\u6709\u5ef6\u8fdf\u4e0e\u9690\u79c1\u987e\u8651\u3002\u8fd9\u6b3e\u4ea7\u54c1\u7528Strava\u6570\u636e\u505a\u951a\u70b9\uff0c\u5b9e\u73b0\u4e86\u6570\u636e\u4e0e\u753b\u9762\u7684\u201c\u521a\u6027\u5bf9\u9f50\u201d\uff0c\u5c24\u5176\u7ed3\u5408GPS\u7684\u7cbe\u786e\u6027\uff0c\u8ba9\u201c\u641c\u753b\u9762\u201d\u53d8\u6210\u4e86\u201c\u641c\u6570\u636e\u201d\uff0c\u8fd9\u662f\u573a\u666f\u5316\u641c\u7d22\u7684\u4e00\u6b21\u7cbe\u5999\u843d\u5730\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u4ea7\u54c1\u76ee\u524d\u5904\u4e8e\u5178\u578b\u7684\u201c\u5c1d\u9c9c\u8005\u9677\u9631\u201d\u3002\u4ece\u8bc4\u8bba\u770b\uff0c\u65f6\u949f\u6f02\u79fb\u3001\u591a\u6e90\u65f6\u95f4\u6233\u5bf9\u9f50\u3001\u624b\u673a\u65f6\u533a\u504f\u5dee\u7b49\u8fb9\u7f18\u60c5\u51b5\uff0c\u662f\u51b3\u5b9a\u5b83\u80fd\u5426\u4ece\u201c\u86ee\u597d\u7528\u7684\u201d\u53d8\u6210\u201c\u53ef\u4f9d\u8d56\u7684\u201d\u5173\u952e\u3002\u5f00\u53d1\u8005\u58f0\u79f0\u7528GPS\u6570\u636e\u4f5c\u4e3a\u4e3b\u8981\u5339\u914d\u4f9d\u636e\uff0c\u4f46\u624b\u673a\u89c6\u9891\u7684\u65f6\u95f4\u6233\u5982\u679c\u504f\u79bb\u4e86\u6d3b\u52a8\u6301\u7eed\u65f6\u95f4\u7a97\u53e3\uff0c\u7cfb\u7edf\u7f3a\u4e4f\u6821\u9a8c\u673a\u5236\uff0c\u5c31\u4f1a\u5bfc\u81f4\u7ed3\u679c\u9519\u4f4d\uff0c\u8fd9\u79cd\u201c\u770b\u7740\u5bf9\u4f46\u5b9e\u9645\u9519\u201d\u7684\u4f53\u9a8c\u6bd4\u201c\u641c\u4e0d\u5230\u201d\u66f4\u81f4\u547d\u3002\u6b64\u5916\uff0c\u7528\u6237\u5bf9\u97f3\u9891\u5185\u5bb9\u641c\u7d22\u7684\u6e34\u671b\uff0c\u66b4\u9732\u51fa\u5f53\u524d\u4ea7\u54c1\u7684\u641c\u7d22\u7ef4\u5ea6\u8fd8\u662f\u504f\u7a84\uff1a\u5b83\u53ea\u61c2\u201c\u6570\u636e\u201d\u4e0d\u61c2\u201c\u5185\u5bb9\u201d\u3002\u4e00\u4e2a\u66f4\u597d\u7684\u6f14\u8fdb\u65b9\u5411\u662f\uff0c\u5c06Strava\u6570\u636e\u4f5c\u4e3a\u7b2c\u4e00\u9053\u8fc7\u6ee4\u5668\uff0c\u518d\u7ed3\u5408\u672c\u5730\u7aef\u4fa7\u7684\u8bed\u97f3\u8bc6\u522b\u6216\u753b\u9762\u8bc6\u522b\uff0c\u5f62\u6210\u201c\u4f60\u77e5\u9053\u4f60\u5f53\u65f6\u591a\u5feb\uff0c\u6211\u4e5f\u77e5\u9053\u4f60\u5f53\u65f6\u8bf4\u4e86\u4ec0\u4e48\u201d\u7684\u5168\u606f\u68c0\u7d22\u3002\u76ee\u524d\u6765\u770b\uff0c\u5b83\u5728\u4e00\u5c0f\u64ae\u786c\u6838\u8fd0\u52a8\u89c6\u9891\u521b\u4f5c\u8005\u4e2d\u4f1a\u6210\u4e3a\u5229\u5668\uff0c\u4f46\u5982\u679c\u60f3\u5438\u5f15\u66f4\u5e7f\u6cdb\u7684\u6cdb\u8fd0\u52a8\u7231\u597d\u8005\uff0c\u5c31\u5fc5\u987b\u7528\u66f4\u7a33\u5065\u7684\u5bf9\u9f50\u7b97\u6cd5\u548c\u66f4\u4e30\u5bcc\u7684\u68c0\u7d22\u7ef4\u5ea6\uff0c\u628a\u201c\u9ad8\u7cbe\u5ea6\u201d\u4ece\u5356\u70b9\u53d8\u6210\u9ed8\u8ba4\u503c\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\">Edit Mind \u00d7 Strava<\/span>\n                <\/div>\n<div class=\"comment-content\">Connect Strava and Edit Mind matches every scene in your footage to the activity it was shot on: heart rate, speed, elevation, and distance, aligned to the frame. Any camera works, GoPro\/action-cam GPS telemetry makes the match exact.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Matching footage to heart rate, speed, elevation, and distance at the frame level is useful. How does Edit Mind handle clock drift or missing timestamps when combining footage from multiple cameras with one Strava activity?<\/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\/@adityaharish2002\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@adityaharish2002<\/a>&nbsp;If you&#8217;re using an action camera, I&#8217;m using GPS data to match the Strava activity to the video. I&#8217;m using the creation date as a fallback to match non-action cameras like your smartphone videos<\/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>Hey,<\/p>\n<\/p>\n<p>I&#8217;m Ilias, an indie maker and a cyclist in my free time. I take videos while I&#8217;m riding my bike using my smartphone or my GoPro camera, and I wanna sync and index my videos to my Strava to have video playback while seeing my ride stats.  <\/p>\n<\/p>\n<p>I spent a couple of days working on this feature of video playback, and you can now search your videos using your Strava activity data like speed, elevation, PR, heart rate- you name 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>honestly the local search is a game changer, pulling up clips from my timeline without uploading anything feels weirdly fast. basically cuts out the whole cloud step i never liked 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>honestly this looks super useful for anyone drowning in footage. one thing that would make it a no-brainer for me though is adding some kind of waveform or audio-based search so you can pull clips based on what&#8217;s being said, not just what&#8217;s on screen<\/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 creation-date fallback for phone footage makes sense but phone clocks are the part I&#8217;d worry about &#8211; travel across timezones without updating settings, or a phone that&#8217;s just a few minutes off, would throw the match off in a way you wouldn&#8217;t notice until playback looks wrong. is there any sanity check against the Strava activity&#8217;s actual start\/end window to catch a phone clock that&#8217;s off, or does it trust the file timestamp as-is<\/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 work out at the gym. What would be a different prompt than just &#8220;give me videos of when I was running on the treadmill&#8221;?<\/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\/@kamil_infeld\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@kamil_infeld<\/a>&nbsp;Yes, it could be something like this: &#8220;Give me moments where I hit my heartbeat&#8217;s peak moment&#8221;.  You could use Strava data points to search and get the video moments, not only the video files. <\/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\/PRD7MVJWUKKC4X\" class=\"app-title\">Repaint Socials<\/a><\/p>\n<div class=\"one-liner\">Build a website from Google Business, Instagram, or Facebook<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">89<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Repaint Socials\u901a\u8fc7AI\u81ea\u52a8\u6293\u53d6Google\u5546\u5bb6\u3001Instagram\u6216Facebook\u7684\u73b0\u6709\u5185\u5bb9\uff0c\u5e2e\u5c0f\u5546\u5bb6\u5728\u51e0\u5206\u949f\u5185\u751f\u6210\u4e00\u4e2a\u771f\u5b9e\u3001\u53ef\u7f16\u8f91\u7684\u7f51\u7ad9\uff0c\u5f7b\u5e95\u89e3\u51b3\u4f20\u7edfAI\u5efa\u7ad9\u5de5\u5177\u201c\u5148\u586b\u5047\u6570\u636e\uff0c\u518d\u624b\u52a8\u5168\u6539\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\/1f81f5a7-1384-4430-9017-589f545565c2.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\/a11f5c3a-bf19-4a4a-8825-7f8f54f7a6ff.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\/ddc1b5c0-b391-4e1a-9a08-7ade9131e9c4.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\/7b1f44c7-7b97-4c79-85db-06885a8f0326.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\/f5467ae4-768f-44a9-9658-fed2f1279584.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\">Website Builder<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Web Design<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5efa\u7ad9\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u793e\u4ea4\u5a92\u4f53\u8f6c\u7f51\u7ad9<\/span><br \/>\n            <span class=\"tag\">\u5c0f\u5546\u5bb6\u5efa\u7ad9<\/span><br \/>\n            <span class=\"tag\">Google\u5546\u5bb6\u8d44\u6599<\/span><br \/>\n            <span class=\"tag\">Facebook\u9875\u9762<\/span><br \/>\n            <span class=\"tag\">Instagram\u5185\u5bb9<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5185\u5bb9\u8fc1\u79fb<\/span><br \/>\n            <span class=\"tag\">\u96f6\u57fa\u7840\u5efa\u7ad9<\/span><br \/>\n            <span class=\"tag\">\u8425\u9500\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">SaaS<\/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\u4ece\u771f\u5b9e\u793e\u4ea4\u8d44\u6599\u5207\u5165\u7684\u660e\u667a\u5b9a\u4f4d\uff0c\u4f46\u63d0\u51fa\u4e09\u4e2a\u6838\u5fc3\u7591\u95ee\uff1a1\uff09\u5982\u4f55\u5904\u7406\u8de8\u5e73\u53f0\u4fe1\u606f\u51b2\u7a81\uff08\u5982\u5730\u5740\u4e0d\u4e00\u81f4\uff09\uff1f2\uff09\u5bfc\u5165\u5ba2\u6237\u8bc4\u8bba\u65f6\u662f\u5426\u9700\u8bb8\u53ef\u6216\u53ef\u7b5b\u9009\uff1f3\uff09\u751f\u6210\u540e\u80fd\u5426\u63d0\u4f9b\u5bf9\u6bd4\u89c6\u56fe\u4ee5\u5feb\u901f\u4fee\u6574\u3002\u53e6\u6709\u7528\u6237\u62c5\u5fc3\u6570\u636e\u4e0d\u8db3\u7684\u4f01\u4e1a\u672c\u5c31\u6709\u7f51\u7ad9\uff0c\u9002\u7528\u8303\u56f4\u6709\u9650\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                Repaint Socials\u7684\u6d1e\u5bdf\u503c\u5f97\u80af\u5b9a\u2014\u2014\u5b83\u7cbe\u51c6\u6233\u4e2d\u4e86AI\u5efa\u7ad9\u884c\u4e1a\u6700\u865a\u4f2a\u7684\u75db\u70b9\uff1a\u6240\u8c13\u7684\u201c\u81ea\u5b9a\u4e49\u201d\u5b9e\u9645\u4e0a\u662f\u751f\u6210\u4e00\u5806\u9648\u8bcd\u6ee5\u8c03\u7684\u5360\u4f4d\u7b26\uff0c\u7136\u540e\u8ba9\u7528\u6237\u82b1\u66f4\u591a\u65f6\u95f4\u53bb\u64e6\u5c41\u80a1\u3002\u628a\u6293\u53d6\u6e90\u5934\u4ece\u201c\u73b0\u6709\u7f51\u7ad9\u201d\u8f6c\u5411\u201c\u793e\u4ea4\u5a92\u4f53\u548cGoogle\u5546\u5bb6\u201d\uff0c\u672c\u8d28\u4e0a\u662f\u627f\u8ba4\u4e86\u4e00\u4e2a\u6b8b\u9177\u4e8b\u5b9e\uff1a\u5c0f\u5546\u5bb6\u7684\u5b98\u7f51\u5f80\u5f80\u662f\u6700\u70c2\u3001\u6700\u9648\u65e7\u7684\u4fe1\u606f\u9ed1\u6d1e\uff0c\u800c\u4ed6\u4eec\u7684Facebook\u548cInstagram\u53cd\u800c\u6d3b\u5f97\u66f4\u771f\u5b9e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u8fd9\u628a\u53cc\u5203\u5251\u7684\u53e6\u4e00\u9762\u5f88\u660e\u663e\uff1a\u5f53\u591a\u4e2a\u6765\u6e90\u7684\u4fe1\u606f\u6253\u67b6\u65f6\uff08\u6bd4\u5982Facebook\u8bf49\u70b9\u6253\u70ca\uff0cGoogle\u8bf410\u70b9\uff09\uff0cRepaint\u76ee\u524d\u7684\u9009\u62e9\u903b\u8f91\u8bed\u7109\u4e0d\u8be6\u3002\u5982\u679c\u5b83\u9ed8\u9ed8\u9009\u4e00\u4e2a\u800c\u4e0d\u63d0\u793a\uff0c\u90a3\u4e48\u751f\u6210\u7684\u7f51\u7ad9\u5c31\u662f\u5728\u4f20\u64ad\u9519\u8bef\u4fe1\u606f\uff0c\u6bd4\u6ca1\u6709\u7f51\u7ad9\u66f4\u7cdf\u7cd5\u3002\u6b64\u5916\uff0c\u8bc4\u8bba\u5bfc\u5165\u6d89\u53ca\u7684\u6cd5\u5f8b\u7070\u8272\u5730\u5e26\u4e5f\u4e0d\u53ef\u5c0f\u89d1\u2014\u2014\u628a\u987e\u5ba2\u81ea\u53d1\u7559\u7684\u8bc4\u8bba\u642c\u5230\u81ea\u5df1\u7f51\u7ad9\u4e0a\u5f53\u8425\u9500\u7d20\u6750\uff0c\u7f3a\u4e4f\u660e\u786e\u77e5\u60c5\u540c\u610f\uff0c\u6781\u6613\u5f15\u53d1\u6295\u8bc9\u751a\u81f3\u8bc9\u8bbc\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u4ea7\u54c1\u903b\u8f91\u770b\uff0c\u5b83\u7684\u771f\u6b63\u4ef7\u503c\u5e76\u975e\u201c\u5efa\u7ad9\u201d\uff0c\u800c\u662f\u201c\u4fe1\u606f\u805a\u5408\u4e0e\u7edf\u4e00\u8f93\u51fa\u201d\u3002\u4f46\u82e5\u53ea\u505a\u5230\u8fd9\u4e00\u6b65\uff0c\u5b83\u4e0d\u8fc7\u662f\u4e2a\u9ad8\u7ea7\u4e00\u70b9\u7684\u6a21\u677f\u5957\u58f3\u5de5\u5177\u3002\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5728\u4e8e\uff1a\u80fd\u5426\u5728\u6c47\u805a\u4fe1\u606f\u540e\uff0c\u667a\u80fd\u8bc6\u522b\u77db\u76fe\u3001\u8f85\u52a9\u7528\u6237\u88c1\u51b3\uff0c\u5e76\u6700\u7ec8\u751f\u6210\u4e00\u4e2a\u53ef\u5728\u79fb\u52a8\u7aef\u3001SEO\u548c\u52a0\u8f7d\u901f\u5ea6\u4e0a\u90fd\u8fbe\u6807\u7684\u9ad8\u8d28\u91cf\u7f51\u7ad9\u3002\u5426\u5219\uff0c\u5bf9\u4e8e\u5927\u591a\u6570\u5df2\u7ecf\u6709Facebook\u4e3b\u9875\u7684\u5c0f\u5546\u5bb6\u6765\u8bf4\uff0c\u591a\u505a\u4e00\u4e2a\u7f51\u7ad9\u53cd\u800c\u589e\u52a0\u4e86\u7ef4\u62a4\u8d1f\u62c5\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7ed3\u8bba\uff1a\u65b9\u5411\u5bf9\u4e86\uff0c\u4f46\u73b0\u5728\u7684\u7248\u672c\u66f4\u50cf\u4e00\u4e2aMVP\u7684MVP\u3002\u6562\u4e0d\u6562\u5728\u89e3\u51b3\u51b2\u7a81\u5904\u7406\u548c\u8bc4\u8bba\u5408\u89c4\u540e\u518d\u8c08\u201c\u6253\u9020\u5b8c\u6574\u4f53\u9a8c\u201d\uff1f\u4e0d\u7136\u5c31\u53ea\u662f\u4e2a\u542b\u91d1\u91cf\u4e0d\u9ad8\u7684\u5f15\u6d41\u5de5\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\">Repaint Socials<\/span>\n                <\/div>\n<div class=\"comment-content\">Connect your Google Business Profile, Instagram, or Facebook page and Repaint turns it into a polished website with AI. It uses your real content to create the structure, content, and design, giving you a complete site you can refine and publish in minutes.<\/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>Today we\u2019re launching Repaint Socials. It lets you build a website with AI using content from your Facebook, Instagram, or Google Business profile.<\/p>\n<p>Most AI website builders claim to create custom websites, but start with generic content because they know almost nothing about your business. Then you\u2019re left to replace every detail yourself.<\/p>\n<p>Repaint pulls <strong><em>real content<\/em><\/strong> from your online profiles, so the first version is actually specific to your business.<\/p>\n<p>We originally made Repaint to rebuild existing websites, but we realized that other platforms also have lots of valuable information, like reviews, photos, hours, addresses, and contact info. With Repaint Socials, it can get all your information no matter where it lives online.<\/p>\n<\/p>\n<p><strong>To try it yourself:<\/strong><\/p>\n<ol>\n<li>\n<p>Go to <a href=\"https:\/\/repaint.com\/social-import\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">repaint.com\/social-import<\/a><\/p>\n<\/li>\n<li>\n<p>Paste the link to your profile<\/p>\n<\/li>\n<li>\n<p>Watch it gather context, then click \u201cBuild Website\u201d<\/p>\n<\/li>\n<\/ol>\n<p>We\u2019d love feedback. 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@ben_shumaker\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ben_shumaker<\/a>&nbsp;Congratulations on the launch! \ud83d\ude80 Starting with real business content instead of generic placeholders is a much smarter approach. Excited to see how Repaint simplifies website creation for small businesses.<\/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 pivot to pulling from Google Business, Instagram and Facebook instead of just the existing site makes sense, most small business sites are the stalest source of truth compared to what people actually keep updated on social. one question on the review-pulling part specifically &#8211; if it&#8217;s importing actual customer reviews onto the new site, do you get to pick which ones show up or does it just grab whatever&#8217;s there? putting someone&#8217;s review on a new page without them realizing it&#8217;ll get reused as marketing copy feels like a thing worth being careful 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>It looks good on paper. But it&#8217;ll need enough data from Google or Facebook to deliver reasonable results.  <\/p>\n<p>I guess businesses with enough data there already have websites.<\/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>Would love to see a side-by-side comparison view after Repaint generates the new version, so I can quickly spot the differences instead of squinting at two tabs. Also makes it way easier to decide what to keep or tweak before exporting.<\/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\">Pivoting from rebuilding existing websites to pulling from Google Business, Instagram, and Facebook is the sharper product, since most small businesses have more accurate, up to date info scattered across social profiles than on their actual website, which usually goes stale first.<br \/>\nStarting from real content instead of generic placeholder copy solves the actual pain point of AI site builders, where you spend more time deleting fake testimonials and stock photo placeholders than you would writing from scratch. Since it&#8217;s pulling from multiple sources, how does it handle conflicting info, like a different address or hours listed on Google versus Facebook, does it flag the mismatch or just pick one.<\/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>Using real business content instead of starting with generic placeholder copy makes the first draft much more useful. How does Repaint decide which information should be most prominent on the website? And congrats on the launch of course!<\/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-07-27 PH\u70ed\u699c | 2026-07-27 #1 Adoma [&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-295","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/295","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=295"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/295\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}