{"id":324,"date":"2026-08-26T10:02:01","date_gmt":"2026-08-26T02:02:01","guid":{"rendered":"https:\/\/ph.listeningo.cn\/index.php\/2026\/08\/26\/2026-08-25\/"},"modified":"2026-08-26T10:02:01","modified_gmt":"2026-08-26T02:02:01","slug":"2026-08-25","status":"publish","type":"post","link":"https:\/\/ph.listeningo.cn\/index.php\/2026\/08\/26\/2026-08-25\/","title":{"rendered":"PH\u70ed\u699c | 2026-08-25"},"content":{"rendered":"<p><!DOCTYPE html><br \/>\n<html lang=\"zh-CN\"><br \/>\n<head><br \/>\n    <meta charset=\"UTF-8\"><br \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><br \/>\n    <title>Product Hunt \u6bcf\u65e5\u70ed\u699c 2026-08-25<\/title><\/p>\n<style>\n        \/* --- \u5168\u5c40\u91cd\u7f6e\u4e0e\u5b57\u4f53 --- *\/\n        :root {\n            --ph-orange: #FF6154;\n            --text-main: #21293C;\n            --text-secondary: #4B587C;\n            --bg-ai: #F7F7F9;\n            --border-color: #E6E6E6;\n        }<\/p>\n<p>        body {\n            font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n            color: var(--text-main);\n            background-color: #ffffff;\n            line-height: 1.6;\n            margin: 0;\n            padding: 20px;\n        }<\/p>\n<p>        .container {\n            max-width: 800px;\n            margin: 0 auto;\n        }<\/p>\n<p>        \/* --- \u5361\u7247\u6837\u5f0f --- *\/\n        .app-card {\n            border-bottom: 1px solid var(--border-color);\n            padding-bottom: 40px;\n            margin-bottom: 40px;\n        }<\/p>\n<p>        \/* --- 1. \u5934\u90e8\u533a\u57df --- *\/\n        .app-header {\n            display: flex;\n            align-items: flex-start;\n            gap: 16px;\n            margin-bottom: 20px;\n        }<\/p>\n<p>        .rank {\n            font-size: 24px;\n            font-weight: 300;\n            color: #999;\n            min-width: 30px;\n            padding-top: 4px;\n        }<\/p>\n<p>        .title-group {\n            flex: 1;\n        }<\/p>\n<p>        .app-title {\n            font-size: 24px;\n            font-weight: 800;\n            margin: 0 0 4px 0;\n            color: var(--text-main);\n            text-decoration: none;\n            display: inline-block;\n        }<\/p>\n<p>        .app-title:hover {\n            color: var(--ph-orange);\n            text-decoration: underline;\n        }<\/p>\n<p>        .vote-btn {\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 8px 12px;\n            background: #fff;\n            min-width: 60px;\n            box-shadow: 0 1px 2px rgba(0,0,0,0.05);\n        }<\/p>\n<p>        .vote-arrow {\n            color: var(--ph-orange);\n            font-size: 14px;\n            margin-bottom: -2px;\n        }<\/p>\n<p>        .vote-count {\n            font-weight: 600;\n            font-size: 14px;\n        }<\/p>\n<p>        \/* --- 2. \u5347\u7ea7\u7248\u5a92\u4f53\u753b\u5eca (\u5173\u952e\u4fee\u6539) --- *\/\n        .media-gallery {\n            display: flex;\n            gap: 16px;\n            overflow-x: auto; \/* \u5141\u8bb8\u6a2a\u5411\u6eda\u52a8 *\/\n            padding-bottom: 16px; \/* \u7559\u51fa\u6eda\u52a8\u7a7a\u95f4 *\/\n            scroll-snap-type: x mandatory; \/* \u6eda\u52a8\u5438\u9644\u6548\u679c *\/\n            -webkit-overflow-scrolling: touch; \/* iOS \u5e73\u6ed1\u6eda\u52a8 *\/\n            margin-bottom: 20px;<\/p>\n<p>            \/* \u9690\u85cf\u9ed8\u8ba4\u6eda\u52a8\u6761\u4f46\u4fdd\u7559\u529f\u80fd (Firefox) *\/\n            scrollbar-width: thin;\n            scrollbar-color: #ddd transparent;\n        }<\/p>\n<p>        \/* Webkit \u6eda\u52a8\u6761\u6837\u5f0f\u4f18\u5316 *\/\n        .media-gallery::-webkit-scrollbar {\n            height: 6px;\n        }\n        .media-gallery::-webkit-scrollbar-track {\n            background: transparent;\n        }\n        .media-gallery::-webkit-scrollbar-thumb {\n            background-color: #eee;\n            border-radius: 10px;\n        }<\/p>\n<p>        .media-item-wrapper {\n            flex: 0 0 auto; \/* \u9632\u6b62\u88ab\u538b\u7f29 *\/\n            width: 80%;     \/* \u79fb\u52a8\u7aef\u9ed8\u8ba4\u9732\u51fa\u4e00\u70b9\u4e0b\u4e00\u5f20\uff0c\u63d0\u793a\u53ef\u6ed1\u52a8 *\/\n            max-width: 500px; \/* \u684c\u9762\u7aef\u6700\u5927\u5bbd\u5ea6 *\/\n            aspect-ratio: 16\/9; \/* \u7edf\u4e00\u6bd4\u4f8b *\/<\/p>\n<p>            position: relative;\n            border-radius: 12px;\n            overflow: hidden;\n            border: 1px solid rgba(0,0,0,0.08);\n            background-color: #f5f5f5;\n            scroll-snap-align: center; \/* \u6eda\u52a8\u505c\u6b62\u65f6\u5c45\u4e2d *\/\n        }<\/p>\n<p>        .media-content {\n            width: 100%;\n            height: 100%;\n            object-fit: cover; \/* \u586b\u5145\u5bb9\u5668 *\/\n            display: block;\n            cursor: pointer;\n        }<\/p>\n<p>        \/* \u89c6\u9891\u6807\u7b7e\u7279\u6b8a\u5904\u7406 *\/\n        video.media-content {\n            background-color: #000;\n            cursor: pointer;\n        }<\/p>\n<p>        \/* \u5982\u679c\u53ea\u67091\u4e2a\u5a92\u4f53\uff0c\u4e0d\u8981\u6eda\u52a8\uff0c\u4e14\u5bbd\u5ea6\u81ea\u9002\u5e94 *\/\n        .media-gallery.single-item .media-item-wrapper {\n            width: 100%;\n            max-width: 100%;\n        }<\/p>\n<p>        \/* --- 3. \u63cf\u8ff0\u4e0e\u6807\u7b7e --- *\/\n        .one-liner {\n            font-size: 18px;\n            color: var(--text-secondary);\n            margin-bottom: 12px;\n            font-weight: 500;\n        }<\/p>\n<p>        .tags-container {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 8px;\n            margin-bottom: 24px;\n        }<\/p>\n<p>        .tag {\n            font-size: 12px;\n            color: var(--text-secondary);\n            background-color: #F2F2F2;\n            padding: 4px 10px;\n            border-radius: 20px;\n            font-weight: 600;\n            text-transform: uppercase;\n        }<\/p>\n<p>        \/* --- 4. AI \u6458\u8981\u533a --- *\/\n        .ai-section {\n            background-color: var(--bg-ai);\n            border-radius: 12px;\n            padding: 20px;\n            margin-bottom: 20px;\n            border-left: 4px solid var(--ph-orange);\n        }<\/p>\n<p>        .ai-title {\n            font-size: 14px;\n            font-weight: 700;\n            color: var(--text-main);\n            margin: 0 0 12px 0;\n            display: flex;\n            align-items: center;\n            gap: 6px;\n        }<\/p>\n<p>        .ai-content {\n            font-size: 15px;\n            color: #333;\n            margin-bottom: 0;\n            line-height: 1.7;\n        }<\/p>\n<p>        \/* --- 5. \u8bc4\u8bba\u533a --- *\/\n        .reviews-section {\n            margin-top: 10px;\n        }<\/p>\n<p>        .review-item {\n            display: flex;\n            gap: 10px;\n            margin-bottom: 12px;\n            font-size: 14px;\n        }<\/p>\n<p>        .review-avatar {\n            font-size: 18px;\n            margin-top: 2px;\n            min-width: 24px;\n        }<\/p>\n<p>        .review-bubble {\n            background: #fff;\n            border: 1px solid var(--border-color);\n            padding: 8px 12px;\n            border-radius: 0 12px 12px 12px;\n            color: var(--text-secondary);\n            line-height: 1.5;\n        }<\/p>\n<p>        .review-author {\n            font-weight: 700;\n            color: var(--text-main);\n            margin-right: 4px;\n            font-style: normal;\n        }<\/p>\n<p>        .comments-section {\n            margin-top: 30px;\n            border-top: 1px solid var(--border-color);\n            padding-top: 20px;\n        }<\/p>\n<p>        .comments-toggle {\n            background-color: #f8f9fa;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 12px 20px;\n            cursor: pointer;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            width: 100%;\n            font-size: 14px;\n            font-weight: 600;\n            color: var(--text-main);\n            transition: all 0.3s ease;\n        }<\/p>\n<p>        .comments-toggle:hover {\n            background-color: #e9ecef;\n        }<\/p>\n<p>        .comments-toggle .toggle-arrow {\n            font-size: 18px;\n            transition: transform 0.3s ease;\n        }<\/p>\n<p>        .comments-toggle.open .toggle-arrow {\n            transform: rotate(180deg);\n        }<\/p>\n<p>        .comments-container {\n            max-height: 0;\n            overflow: hidden;\n            transition: max-height 0.5s ease;\n            margin-top: 15px;\n        }<\/p>\n<p>        .comments-container.open {\n            max-height: 800px;\n            overflow: auto;\n        }<\/p>\n<p>        .comment-item {\n            background-color: #fff;\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 16px;\n            margin-bottom: 12px;\n            font-size: 14px;\n        }<\/p>\n<p>        .comment-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: flex-start;\n            margin-bottom: 8px;\n        }<\/p>\n<p>        .comment-author {\n            font-weight: 600;\n            color: var(--text-main);\n            margin-right: 8px;\n        }<\/p>\n<p>        .comment-content {\n            color: var(--text-secondary);\n            line-height: 1.5;\n            margin-bottom: 10px;\n            word-break: break-word;\n            word-wrap: break-word;\n            overflow-wrap: anywhere;\n            white-space: normal;\n        }<\/p>\n<p>        .comment-content p {\n            margin: 0;\n            word-break: break-word;\n            word-wrap: break-word;\n            overflow-wrap: anywhere;\n            white-space: normal;\n        }<\/p>\n<p>        \/* \u4f18\u5316\u8868\u60c5\u7b26\u53f7\u663e\u793a *\/\n       .emoji {\n            display: inline;\n            max-width: 15px;\n            overflow-wrap: normal;\n        }<\/p>\n<p>        .comment-actions {\n            display: flex;\n            align-items: center;\n            gap: 16px;\n            font-size: 12px;\n            color: var(--text-secondary);\n        }<\/p>\n<p>        .comment-vote {\n            display: flex;\n            align-items: center;\n            gap: 4px;\n            cursor: pointer;\n        }<\/p>\n<p>        .comment-replies {\n            margin-top: 12px;\n            margin-left: 20px;\n            padding-left: 12px;\n            border-left: 2px solid var(--border-color);\n        }<\/p>\n<p>        .reply-item {\n            background-color: #f8f9fa;\n            border: 1px solid var(--border-color);\n            border-radius: 6px;\n            padding: 12px;\n            margin-bottom: 8px;\n            font-size: 13px;\n        }<\/p>\n<p>        .reply-content {\n            color: var(--text-secondary);\n            line-height: 1.4;\n            margin-bottom: 6px;\n        }<\/p>\n<p>        \/* --- \u54cd\u5e94\u5f0f\u5fae\u8c03 --- *\/\n        @media (min-width: 600px) {\n            .media-item-wrapper {\n                width: 60%; \/* \u684c\u9762\u7aef\u7a0d\u5fae\u7a84\u4e00\u70b9\uff0c\u5c55\u793a\u66f4\u591a\u5f20 *\/\n                scroll-snap-align: start; \/* \u684c\u9762\u7aef\u9760\u5de6\u5bf9\u9f50 *\/\n            }\n        }<\/p>\n<p>        \/* \u79fb\u52a8\u8bbe\u5907\u54cd\u5e94\u5f0f\u4f18\u5316 *\/\n        @media (max-width: 599px) {\n            \/* \u6a21\u6001\u6846\u4f18\u5316 *\/\n            .modal-content {\n                max-width: 95%;\n                max-height: 85vh;\n                margin: 10vh auto;\n            }<\/p>\n<p>            .close {\n                top: 10px;\n                right: 20px;\n                font-size: 30px;\n                \/* \u589e\u5927\u70b9\u51fb\u533a\u57df *\/\n                padding: 15px;\n            }<\/p>\n<p>            \/* \u89c6\u9891\u64ad\u653e\u56fe\u6807\u4f18\u5316 *\/\n            .play-icon {\n                width: 60px;\n                height: 60px;\n                font-size: 18px;\n            }<\/p>\n<p>            \/* \u786e\u4fdd\u5a92\u4f53\u5185\u5bb9\u5728\u5c0f\u5c4f\u5e55\u4e0a\u6b63\u786e\u663e\u793a *\/\n            .media-content {\n                object-fit: cover;\n            }\n        }<\/p>\n<p>        \/* --- \u56fe\u7247\u653e\u5927\u6a21\u6001\u6846\u6837\u5f0f --- *\/\n        .modal {\n            display: none;\n            position: fixed;\n            z-index: 1000;\n            left: 0;\n            top: 0;\n            width: 100%;\n            height: 100%;\n            background-color: rgba(0, 0, 0, 0.9);\n            overflow: auto;\n            transition: opacity 0.3s ease;\n        }<\/p>\n<p>        .modal-content {\n            display: block;\n            max-width: 90%;\n            max-height: 90vh;\n            margin: 5vh auto;\n            object-fit: contain;\n            animation: zoom 0.3s;\n        }<\/p>\n<p>        @keyframes zoom {\n            from {transform: scale(0.8); opacity: 0;}\n            to {transform: scale(1); opacity: 1;}\n        }<\/p>\n<p>        .close {\n            position: absolute;\n            top: 20px;\n            right: 35px;\n            color: #fff;\n            font-size: 40px;\n            font-weight: bold;\n            transition: 0.3s;\n            cursor: pointer;\n            \/* \u6dfb\u52a0\u89e6\u63a7\u4f18\u5316 *\/\n            padding: 10px;\n            line-height: 1;\n            user-select: none;\n            -webkit-user-select: none;\n        }<\/p>\n<p>        .close:hover,\n        .close:focus {\n            color: #bbb;\n            text-decoration: none;\n        }<\/p>\n<p>        \/* \u89c6\u9891\u70b9\u51fb\u63d0\u793a\u6837\u5f0f *\/\n        .video-overlay {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            background-color: rgba(0, 0, 0, 0.2);\n            opacity: 0;\n            transition: opacity 0.3s ease;\n            \/* \u89e6\u63a7\u4f18\u5316 *\/\n            touch-action: manipulation;\n            cursor: pointer;\n        }<\/p>\n<p>        .media-item-wrapper:hover .video-overlay {\n            opacity: 1;\n        }<\/p>\n<p>        \/* \u4e3a\u89e6\u6478\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u6548\u679c *\/\n        .media-item-wrapper:active .video-overlay {\n            opacity: 0.8;\n        }<\/p>\n<p>        .play-icon {\n            width: 80px;\n            height: 80px;\n            background-color: rgba(255, 255, 255, 0.9);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            color: var(--ph-orange);\n            font-size: 24px;\n            font-weight: bold;\n            \/* \u89e6\u63a7\u4f18\u5316 *\/\n            user-select: none;\n            -webkit-user-select: none;\n        }<\/p>\n<p>        \/* --- \u54cd\u5e94\u5f0f\u5fae\u8c03 --- *\/\n        @media (min-width: 600px) {\n            .media-item-wrapper {\n                width: 60%; \/* \u684c\u9762\u7aef\u7a0d\u5fae\u7a84\u4e00\u70b9\uff0c\u5c55\u793a\u66f4\u591a\u5f20 *\/\n                scroll-snap-align: start; \/* \u684c\u9762\u7aef\u9760\u5de6\u5bf9\u9f50 *\/\n            }\n        }<\/p>\n<p>        \/* \u79fb\u52a8\u8bbe\u5907\u54cd\u5e94\u5f0f\u4f18\u5316 *\/\n        @media (max-width: 599px) {\n            \/* \u6a21\u6001\u6846\u4f18\u5316 *\/\n            .modal-content {\n                max-width: 95%;\n                max-height: 85vh;\n                margin: 10vh auto;\n            }<\/p>\n<p>            .close {\n                top: 10px;\n                right: 20px;\n                font-size: 30px;\n                \/* \u589e\u5927\u70b9\u51fb\u533a\u57df *\/\n                padding: 15px;\n            }<\/p>\n<p>            \/* \u89c6\u9891\u64ad\u653e\u56fe\u6807\u4f18\u5316 *\/\n            .play-icon {\n                width: 60px;\n                height: 60px;\n                font-size: 18px;\n            }<\/p>\n<p>            \/* \u786e\u4fdd\u5a92\u4f53\u5185\u5bb9\u5728\u5c0f\u5c4f\u5e55\u4e0a\u6b63\u786e\u663e\u793a *\/\n            .media-content {\n                object-fit: cover;\n            }\n        }\n    <\/style>\n<p><\/head><br \/>\n<body><\/p>\n<div class=\"container\">\n<h1 style=\"text-align:center; margin-bottom:40px; font-weight:900;\">PH\u70ed\u699c | 2026-08-25<\/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\/7VLENQJQZQK4EG\" class=\"app-title\">akta.pro<\/a><\/p>\n<div class=\"one-liner\">Private company data and signals API for the agent economy<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">355<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>akta.pro \u4e3aAI\u667a\u80fd\u4f53\u548cGTM\u56e2\u961f\u63d0\u4f9b\u6df1\u5ea6\u8fbePitchBook\u56db\u500d\u3001\u8986\u76d6\u9762\u4e24\u500d\u7684\u79c1\u8425\u516c\u53f8\u7ed3\u6784\u5316\u6570\u636e\u4e0e100+\u5b9e\u65f6\u4e8b\u4ef6\u4fe1\u53f7API\uff0c\u6309\u91cf\u4ed8\u8d39\uff0c\u89e3\u51b3\u4f20\u7edf\u6570\u636e\u5e93\u6309\u5e2d\u4f4d\u6536\u8d39\u3001\u65e0\u4fe1\u53f7\u5c42\u4ee5\u53ca\u641c\u7d22API\u566a\u58f0\u5927\u3001token\u6d88\u8017\u9ad8\u3001\u65e0\u6cd5\u76f4\u63a5\u9a71\u52a8\u81ea\u52a8\u5316\u51b3\u7b56\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\/37968db6-2d1b-4496-b860-f96d27b11af9.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\/d8b1485a-5fbf-47f0-91d0-e9a5c1e8e47c.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\/fd2e6e2a-c9d0-4a7b-989b-280629d0308c.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\/9f984c54-6b8b-4413-b11c-08d9ee123789.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\/de8ae6e6-2fd5-4722-b54c-703b6eb6d271.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\/ebfc05a0-092b-4478-90a3-f5813e488c8e.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\/3f5a3318-1b4c-4bf1-b3a2-a9a6eabbc08b.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/o6jUUFZSa7U\"><source src=\"https:\/\/youtu.be\/o6jUUFZSa7U\" 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\">API<\/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\">\u79c1\u8425\u516c\u53f8\u6570\u636e<\/span><br \/>\n            <span class=\"tag\">\u4e8b\u4ef6\u4fe1\u53f7API<\/span><br \/>\n            <span class=\"tag\">AI\u667a\u80fd\u4f53<\/span><br \/>\n            <span class=\"tag\">\u91d1\u878d\u79d1\u6280<\/span><br \/>\n            <span class=\"tag\">GTM\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u4f53\u89e3\u6790<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u65b0\u95fb\u6d41<\/span><br \/>\n            <span class=\"tag\">\u6309\u91cf\u4ed8\u8d39<\/span><br \/>\n            <span class=\"tag\">MCP\u534f\u8bae<\/span><br \/>\n            <span class=\"tag\">\u5c3d\u804c\u8c03\u67e5<\/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>\u591a\u6570\u8bc4\u8bba\u8ba4\u53ef\u6570\u636e+\u4fe1\u53f7\u7684\u7ed3\u5408\u4ef7\u503c\u3002\u6838\u5fc3\u95ee\u9898\u96c6\u4e2d\u5728\uff1a1\uff09\u5b9e\u4f53\u89e3\u6790\u7684\u5ef6\u8fdf\u4e0e\u51c6\u786e\u6027\uff1b2\uff09\u4e8b\u4ef6\u53d1\u751f\u5230API\u53ef\u67e5\u7684\u65f6\u5ef6\uff0c\u8d28\u7591\u5bf9\u51fa\u7ad9\u89e6\u8fbe\u7684\u53ca\u65f6\u6027\uff1b3\uff09\u6570\u636e\u66f4\u65b0\u9891\u7387\u4e0e\u5b57\u6bb5\u5237\u65b0\u673a\u5236\uff1b4\uff09\u671f\u5f85webhook\u63a8\u9001\u4ee5\u589e\u5f3a\u81ea\u52a8\u5316\u3002\u521b\u59cb\u4eba\u56de\u5e94\u4e86\u7ea680%\u566a\u58f0\u8fc7\u6ee4\u3001\u5b57\u6bb5\u7ea7\u52a8\u6001\u5237\u65b0\u53ca\u5b9e\u4f53\u56fe\u8c31\u57fa\u5e95\u8bbe\u8ba1\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                akta.pro\u7684\u5b9a\u4f4d\u7cbe\u51c6\u8e29\u5728\u751f\u6210\u5f0fAI\u843d\u5730B2B\u6570\u636e\u670d\u52a1\u7684\u5173\u952e\u88c2\u7f1d\u4e0a\u2014\u2014\u4f20\u7edf\u6570\u636e\u5e93\uff08PitchBook\u3001ZoomInfo\uff09\u662f\u201c\u7ed9\u4eba\u770b\u7684\u4eea\u8868\u76d8\u201d\uff0c\u800cLLM\u65f6\u4ee3\u7684Agent\u9700\u8981\u7684\u662f\u201c\u53ef\u63a8\u7406\u7684\u7ed3\u6784\u5316\u8bed\u6599\u201d\u3002\u5176\u672c\u8d28\u4e0d\u662f\u6570\u636e\u7684\u5806\u79ef\uff0c\u800c\u662f\u5c06\u6570\u636e\u51c6\u5907\u3001\u5b9e\u4f53\u89e3\u6790\u3001\u566a\u58f0\u8fc7\u6ee4\u7684\u6210\u672c\u5185\u5316\u5230\u7ba1\u9053\u4e0a\u6e38\uff0c\u628aAPI\u5851\u9020\u6210\u4e00\u4e2a\u201c\u601d\u8003\u8fc7\u7684\u77e5\u8bc6\u56fe\u8c31\u201d\u3002\u8fd9\u4e2a\u7b56\u7565\u975e\u5e38\u806a\u660e\uff1a\u5728\u6570\u636e\u540c\u8d28\u5316\u4e25\u91cd\u7684\u5e02\u573a\uff0c\u7528\u201c\u4f4e\u566a\u58f0+\u786e\u5b9a\u6027Schema+\u6309\u91cf\u8ba1\u8d39\u201d\u6784\u5efa\u5f00\u53d1\u8005\u5fc3\u667a\u58c1\u5792\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7136\u800c\uff0c\u5176\u5ba3\u79f0\u7684\u201c4x\u6df1\u5ea6\u30012x\u8986\u76d6\u7387\u201d\u7f3a\u4e4f\u7b2c\u4e09\u65b9\u57fa\u51c6\u9a8c\u8bc1\uff0c\u4e14\u8bc4\u8bba\u4e2d\u63d0\u5230\u7684\u201c\u4fe1\u53f7\u5ef6\u8fdf\u201d\u4ecd\u662f\u81f4\u547d\u75db\u70b9\u2014\u2014\u5bf9\u89e6\u8fbe\u7c7bGTM\u573a\u666f\uff0c\u665a\u4e00\u5929\u7684\u6570\u636e\u4ef7\u503c\u8d8b\u8fd1\u4e8e\u96f6\u3002webhooks\u5c1a\u672a\u843d\u5730\uff0c\u610f\u5473\u7740\u5728\u5b9e\u65f6\u6027\u4e0a\u5b83\u5c1a\u672a\u5b8c\u5168\u6446\u8131\u201c\u8f6e\u8be2\u201d\u8fd9\u4e00\u4f4e\u6548\u8303\u5f0f\u3002\u66f4\u6df1\u5c42\u7684\u6311\u6218\u5728\u4e8e\uff1a\u5f53\u6240\u6709AI Agent\u90fd\u63a5\u5165MCP\u540e\uff0c\u6570\u636e\u7684\u7a00\u7f3a\u6027\u4f1a\u88ab\u5feb\u901f\u7a00\u91ca\uff0c\u6700\u7ec8\u6bd4\u62fc\u7684\u662f\u72ec\u5bb6\u6570\u636e\u6e90\uff08\u5982\u975e\u516c\u5f00\u4ea4\u6613\u6d41\u3001\u5c3d\u8c03\u5907\u5fd8\u5f55\uff09\u7684\u83b7\u53d6\u80fd\u529b\uff0c\u800c\u8fd9\u6b63\u662f\u5176\u76ee\u524d\u8bed\u7109\u4e0d\u8be6\u7684\u5730\u65b9\u3002akta.pro\u76ee\u524d\u89e3\u51b3\u4e86\u201c\u7ed3\u6784\u5316\u201d\u548c\u201c\u6210\u672c\u201d\u95ee\u9898\uff0c\u4f46\u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u2014\u2014\u4e0d\u53ef\u66ff\u4ee3\u7684\u9ad8\u4ef7\u503c\u79c1\u6709\u4fe1\u53f7\u2014\u2014\u4ecd\u9700\u8bc1\u660e\u5176\u53ef\u6301\u7eed\u6027\u3002\u5efa\u8bae\u5173\u6ce8\u5176\u5ba2\u6237\u7559\u5b58\u7387\u800c\u975e\u83b7\u5ba2\u901f\u5ea6\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\">akta.pro<\/span>\n                <\/div>\n<div class=\"comment-content\">Private company data with 4x the depth and 2x the coverage of PitchBook, plus 100+ event signals and news across companies, industries, and topics. Source and diligence deals or make outreach lists and trigger outbound. Built for financial services and GTM teams, pay-as-you-go.<\/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,<\/p>\n<p>Sid here, co-founder at <a href=\"http:\/\/akta.pro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">akta.pro<\/a>. Private company data and signals API for agents, priced by consumption.<\/p>\n<p>We were building AI agents for private markets and kept hitting the same two dead ends.<\/p>\n<ul>\n<li>\n<p>Legacy databases have company data, but they gate it behind a UI, charge by seat, carry no signal layer.<\/p>\n<\/li>\n<li>\n<p>Search APIs return what ranks on SEO. Your agent burns tokens reading 100s of pages to find one event.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/akta.pro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">akta.pro<\/a> gives an agent both sides, already structured.<\/p>\n<p><strong>Company data:<\/strong> 20M+ companies with 70+ fields, i.e., 2x coverage of PitchBook, 4x depth of ZoomInfo\/Apollo.<\/p>\n<ul>\n<li>\n<p>Fundamentals: firmographics, management, funding history, investors, revenue and financial estimates.<\/p>\n<\/li>\n<li>\n<p>The fields most databases skip: competitive moat, gtm motion, business model, tech stack, AI maturity.<\/p>\n<\/li>\n<\/ul>\n<p><strong>News and signals:<\/strong> monitor a company, a sector, or a topic in plain language.<\/p>\n<ul>\n<li>\n<p>Feeds are de-duplicated, matched to the right company, and scored for impact and sentiment.<\/p>\n<\/li>\n<li>\n<p>Tagged across 100+ event types like funding round, exec change, expansion etc., that work as triggers.<\/p>\n<\/li>\n<li>\n<p>Alternative signals tied to the same company ID: headcount trends, web traffic, jobs, social posts, reviews.<\/p>\n<\/li>\n<\/ul>\n<p>On cost, <strong>company data runs 5x cheaper <\/strong>than legacy databases like PitchBook. <strong>News runs 10x cheaper<\/strong> than putting the same work through Claude or Parallel search APIs, where retrieval comes out of your token spend.<\/p>\n<p>Used today by AI builders shipping agents, GTM teams triggering outbound, and investors screening startups.<br \/>Works as an API, over MCP, or CLI.<\/p>\n<p>Try for free. <strong>Code PH50 gets you 50 credits<\/strong>: <a href=\"http:\/\/playground.akta.pro\/signup\/?coupon_code=PH50\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">playground.akta.pro\/signup\/?coupon_code=PH50<\/a><\/p>\n<p>If you have evaluated legacy databases, news or search API providers, or GTM intent data, I am happy to do a specific comparison in the comments.<\/p>\n<p>Here all day, and the critical feedback is the useful kind.<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@siddhant_masson\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@siddhant_masson<\/a>&nbsp;The 10x cost advantage versus Claude really speaks to the token pain we all face building agents \u2013 it\u2019s impressive that <a href=\"http:\/\/akta.pro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">akta.pro<\/a> structures news and signals so efficiently; Nice 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\/@siddhant_masson\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@siddhant_masson<\/a>&nbsp;you mentioned dropping 80% of noise before a response. how are you handling entity resolution upstream to match messy news feeds to the right 20M+ company IDs without blowing up latency?<\/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\/@siddhant_masson\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@siddhant_masson<\/a>&nbsp;Many congratulations Siddhant, Shiv, Neeraj and team! \ud83d\ude0a <\/p>\n<\/p>\n<p>When I first met Neeraj discussing the challenges of building AI agents for private-market research. What stood out immediately was how clearly they understood the gap: traditional databases lock valuable company data behind expensive interfaces, while search APIs often return too much noise and consume excessive tokens.  <\/p>\n<\/p>\n<p>Akta pro brings both sides together through a structured API: deep private-company data across 20M+ companies, enriched with 100+ real-time signals covering funding, hiring, leadership changes, partnerships, expansion, and more. <\/p>\n<\/p>\n<p>I\u2019m endorsing it because the team has focused on the details that matter: clean entity resolution, deduplicated data, relevant signals, and consumption-based pricing. It makes private-company research faster, more intelligent, and far more useful for building automated workflows. <\/p>\n<\/p>\n<p>It\u2019s built for AI agents, investors, and GTM teams that need actionable intelligence. Definitely worth checking out if you\u2019re working in AI, financial research, or B2B growth. \ud83d\ude42<\/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>Happy to go deep on the technical side.<\/p>\n<p>Reasoning models changed the economics of proprietary data. For years the winning move was a large team of analysts manually cleaning, normalizing and QAing structured datasets. That model is going obsolete.<\/p>\n<p>Demand growth is in agents now, and agents do not want a handful of structured fields in a subscription model. They want a large, reliable corpus of structured qualitative knowledge they can reason over and scale consumption as needed. That changes how you architect the platform.<\/p>\n<p>So we made entity resolution the foundation everything else sits on. Every company gets a canonical identity connecting parents, subsidiaries, products, executives, investors, news and hiring signals.<\/p>\n<p>Once identity is solved, coverage stops being a fixed list you either have or lack and becomes an extensible graph, where anything new resolves against identities that already exist, including data you bring in yourself.<\/p>\n<p>The real-time news pipeline runs on those same identities, with no batch refresh window. Every article goes through:<\/p>\n<ul>\n<li>\n<p>Deduplication and entity resolution back to company IDs<\/p>\n<\/li>\n<li>\n<p>Classification against an 100+ event taxonomy<\/p>\n<\/li>\n<li>\n<p>Mapping to NAICS, SIC, IAB and IPTC codes<\/p>\n<\/li>\n<li>\n<p>Scoring for impact, sentiment and story centrality<\/p>\n<\/li>\n<\/ul>\n<p>Each of 20M+ companies are tagged to 30k+ industry codes and qualitative source-traceable data across 70+ fields. <\/p>\n<p>The noise gets filtered along the way, and whatever survives is queryable the moment it lands.<\/p>\n<p>The schema is built for reasoning over a corpus rather than browsing rows in a dashboard, which changes the interface too. Everything is API-first, with MCP and CLI as first-class surfaces built for token efficiency and composability inside agent workflows.<\/p>\n<p>The goal is simple: make private markets data programmable for anyone building with AI.<\/p>\n<p>Try for free. <strong>Code PH50 gets you 50 credits, no card required<\/strong>: <a href=\"http:\/\/playground.akta.pro\/signup\/?coupon_code=PH50\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">playground.akta.pro\/signup\/?coupon_code=PH50<\/a> \u2014 If anything in the docs at <a href=\"https:\/\/docs.akta.pro\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/docs.akta.pro\/<\/a> is wrong or hard to follow, tell me and it usually gets fixed the same day<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>14<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I like that this goes beyond basic company profiles. Signals around funding, hiring, and other events can add much more context.<\/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>Thanks <a href=\"https:\/\/www.producthunt.com\/@awesome_america\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"awesome_america\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@awesome_america<\/a>. Exactly, profiles and firmographics are table stakes at this point, so beyond the profiles we built out signals as well, which is where we saw the real gap. <\/p>\n<p>The triangulation beyond what company&#8217;s website says, such as job postings, partnerships, hiring etc. is where you unlock unique intelligence. <\/p>\n<p>Real-time event triggers make it actionable for developers, sellers, investors. <\/p>\n<p>There are also structured fields for company assessment, GTM motion and tech capability, so you get a view on how a business actually operates and competes rather than just what it looks like on paper.<\/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\/@awesome_america\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@awesome_america<\/a>&nbsp;The one thing that determines whether these signals are usable for outbound is latency, not coverage. A funding round or exec change surfaced three days after everyone else already reached out is worse than not having the signal at all. What&#8217;s the typical gap between an event happening and it showing up through the API?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Would love to see webhooks for specific company events eventually. That could make the outbound automation possibilities huge. What do you think? <\/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<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;Agreed, and webhooks for signal alerts is coming soon!<\/p>\n<p>In the meantime polling gets you most of the way there. You can hit the news API on whatever frequency and offset suits your workflow, and credits are only charged on news actually returned. <\/p>\n<\/p>\n<p>For outbound specifically, the 86-category event taxonomy is the part worth looking at. You can filter to the handful of event types that actually trigger a play, funding rounds, leadership changes, expansion signals, rather than filtering a general feed downstream. <\/p>\n<\/p>\n<p>What use-cases on outbound automation are you looking at?<\/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 100+ event signals are what caught my attention. Having those alongside company data could make research much faster.<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>Thanks <a href=\"https:\/\/www.producthunt.com\/@alan_robert\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alan_robert<\/a>, and that pairing is exactly why we built both instead of picking one. An event on its own only tells you something happened, so the useful version is being able to pull the full company picture in the same breath.<\/p>\n<p>&nbsp;<\/p>\n<p>Full list of type codes is here if you want to see the range: <a href=\"https:\/\/docs.akta.pro\/news-types\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">News Types &#8211; <\/a><a href=\"http:\/\/akta.pro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">akta.pro<\/a><a href=\"https:\/\/docs.akta.pro\/news-types\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"> API Documentation<\/a>.<\/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 combination of private company data and real time signals is probably more useful than either one along. <\/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\/@veronica_ivy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@veronica_ivy<\/a>&nbsp;spot on, either data in isolation is commoditized. Tying signals to companies (particularly private) with entity resolution and de-duped is where the combination starts providing utility. <\/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>Having more coverage is great, but the real test is whether the data stays actionable for teams using it daily.<\/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\/@aria_turner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aria_turner<\/a>&nbsp;Completely agree, and it&#8217;s the right test. Coverage is the easy axis to compete on; what kills daily use is noise \u2014 an analyst who gets 200 items a day stops opening it by week two. So we optimised for precision over volume and drop roughly 80% of what comes in before it ever reaches a response.<\/p>\n<p>The event types such as funding, hiring, layoffs, partnerships etc. in the news signals endpoint can help make it actionable for teams using it daily. <\/p>\n<p>Check out the benchmarks for signals precision and recall here: <a href=\"https:\/\/akta.pro\/benchmarks\/company-news-retrieval\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/akta.pro\/benchmarks\/company-news-retrieval<\/a><\/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>How often are company profiles updated? Private company data can change pretty quickly.<\/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\/@yahya_rogers\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yahya_rogers<\/a>&nbsp;Good question &#8211; our refresh is field-aware and varies across 70+ fields. <\/p>\n<\/p>\n<p>Event-driven fields are updated real-time across thousands of publishers. Funding rounds, transactions and leadership changes get picked up by the real-time news pipeline as the event breaks, then reconciled onto the company profile<\/p>\n<\/p>\n<p>Alternative signals run closest to live. Job posts and web traffic are near real time. Headcount updates monthly, since it&#8217;s only meaningful read as a trend rather than a point-in-time number<\/p>\n<\/p>\n<p>Stable firmographics like legal name, company type, founded year and industry codes run on verification cycles that are dynamically scheduled rather than fixed. How often a company gets re-checked depends on its size, news volume, website updates and overall activity, so the ones actually moving get looked at more often than the ones sitting still.<\/p>\n<\/p>\n<p>Happy to go deeper on any specific field if there&#8217;s one you care about.<\/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>I\u2019ve worked with company research tools before, and keeping data organized is usually the hardest part.<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@grant_w1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@grant_w1<\/a>&nbsp;Agreed, and it&#8217;s most of the work. We do the organising upstream rather than at query time \u2014 resolution, dedup, categorisation happen before anything lands in a response, so what you get back is already settled. Less elegant than it sounds, but it&#8217;s the only way the latency works.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>3<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@grant_w1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@grant_w1<\/a>&nbsp;That&#8217;s the part people underestimate, and private companies are the hardest version of it. Public companies have a ticker and a filing calendar, so identity and timing are both solved for you. Private companies have neither. <\/p>\n<\/p>\n<p>So the organizing problem comes first. Entity resolution is the foundation everything else sits on: resolve identity once, across 20M+ companies under one stable identifier, and every dataset after that inherits it. <\/p>\n<\/p>\n<p>The refresh design follows from the same idea. Once records are resolved to a stable entity, you can update fields at different rhythms and still have them land on the same profile, so a funding round from the news pipeline and a headcount trend from a completely different source both attach real-time to the same company without creating duplicate entries or needing manual interventions that a legacy database needed<\/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>Interesting Concept. Congratulations on the Launch. <a href=\"https:\/\/www.producthunt.com\/@saswat_nanda2\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"saswat_nanda2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@saswat_nanda2<\/a> <a href=\"https:\/\/www.producthunt.com\/@siddhant_masson\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"siddhant_masson\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@siddhant_masson<\/a> <a href=\"https:\/\/www.producthunt.com\/@bharat_garg6\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"bharat_garg6\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bharat_garg6<\/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<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;Thanks a lot Dhanraj, appreciate the support<\/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 shipping! Reliable private company data through a clean API is essential for autonomous AI agents to make real decisions. Simple, high-utility infrastructure for dev teams.<\/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\/@thisiskp_\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thisiskp_<\/a>&nbsp;Thanks! Reliable is the word that matters most there, and in practice it comes down to schema and data consistency. Same shape every call, stable field names, nulls where data genuinely doesn&#8217;t exist. That means you write the parsing logic once and it keeps working, instead of defensive handling around every field that might or might not show up.<\/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! <\/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\/@marupelkar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@marupelkar<\/a>&nbsp;Thanks Nakul!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Love that you built this API-first for AI agents rather than dashboards, giving agents structured company signals to act on feels like the real unlock here.<\/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\/@ilko_kacharov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ilko_kacharov<\/a>&nbsp;thanks Ilko. With API-first approach, you basically give the end user (whether developer or business) to customize their own way of digesting information. Interestingly, lot of business users are using MCP with Claude to create extremely versatile dashboards \/ mini-apps. <\/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\/@ilko_kacharov\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ilko_kacharov<\/a>&nbsp;Thanks, and that&#8217;s the bet. We believe strongly that the future is headless &#8211; what matters then is whether the data arrives in a shape an agent can act on: resolve identity, deterministic schemas, signals structured. Build for that and the interface question mostly answers itself, since anyone can put whatever surface they want on top.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congratulations on the launch! Private-market data definitely needed something more developer-friendly for a while. Akta seems like a great solution. <\/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\/@syed_shayanur_rahman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@syed_shayanur_rahman<\/a>&nbsp;Thanks. In most legacy private markets tools the API is an afterthought. Responses come back bulky, the structuring is off, and you end up writing a normalization layer before the data is usable.<\/p>\n<\/p>\n<p>MCP usually repeats the problem. What gets exposed is a subset of the API wrapped once and shipped, so you inherit every constraint of the original surface plus a few new ones.<\/p>\n<\/p>\n<p>We built the other way round. Structured JSON with deterministic schemas, full access across every offering rather than a curated slice, and rate limits set for how agents actually query. The MCP server and CLI are designed around real workflows, not mechanical wrappers over endpoints.<\/p>\n<\/p>\n<p>Would love to hear feedback on what is working and what is not<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>2<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I question how teams measure success after using this API. would the main benefit be saving research time or finding better business opportunities?<\/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\/@new_user___209202627e87af67bf41b28\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@new_user___209202627e87af67bf41b28<\/a>&nbsp;It shows up as time first and opportunities later. Week one is usually the boring win, where the cleaning and matching layer that used to sit in front of every agent just goes away, because the company data comes back structured and the news comes back already filtered instead of as pages to read through. That is also where the cost drops, since retrieval stops coming out of token spend. The better part comes later, when the signals start doing the work for you and a funding round or an exec change surfaces without anyone going to look for it. GTM teams count that in meetings booked, investment teams in deals they saw before the round was announced.<\/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>I enjoy seeing tools that improve private market research. I would ask how <a href=\"http:\/\/akta.pro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">akta.pro<\/a> manages global coverage since company information varies widely across regions and markets.<\/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\/@darly_selby\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@darly_selby<\/a>&nbsp;Fair question, and the short answer is that coverage varies by layer rather than by region. The 20M+ is genuinely global, not a US core with a thin tail attached. Fundamentals like firmographics, location and industry classification hold up across the board. And that&#8217;s one of the advantages of having a purely agentic data extraction and synthesis<\/p>\n<\/p>\n<p>Transaction detail is where variation shows up. Funding and M&amp;A depend on how actively a market reports, so it&#8217;s really a long-tail effect rather than a regional one. A quiet company in the US looks much like a quiet company anywhere else.<\/p>\n<\/p>\n<p>The qualitative layer is the most consistent globally. Business model, moat, positioning and GTM motion come from how a company operates rather than what it chooses to disclose, so they don&#8217;t depend on local reporting norms.<\/p>\n<\/p>\n<p>In fact, we also have a company addition endpoint, through which in the off chance that you don&#8217;t find a company, you can add it live<\/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>More data can also create more noise. How do you help users focus on the signals that actually matter?<\/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>Hey <a href=\"https:\/\/www.producthunt.com\/@evan_taft1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@evan_taft1<\/a>&nbsp;, completely agree, and it is the exact problem that shaped how the feed was built. More volume only helps if the processing keeps pace, so the filtering happens before delivery rather than being left to whoever consumes the feed.<\/p>\n<\/p>\n<p>Every article entering the <a href=\"https:\/\/akta.pro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">akta.pro<\/a> pipeline is entity-resolved so every company mention collapses to a single stable identifier across parents, subsidiaries, and namesakes, then scored for impact and sentiment and tagged against an 80+ event taxonomy alongside industry codes. Deduplication and the rest of the filters are configurable, so the feed can be tuned to return one clean signal per event or narrowed by impact level, sentiment, event category, entity like event, person, product or geography.<\/p>\n<\/p>\n<p>Feed definition handles the rest, whether that is a company resolved across 20M+ entities, an industry selected across 30,000+ sub-sectors, or a custom topic turned into a structured feed. The signal space ends up defined by the question being asked, which keeps the irrelevant volume out by design.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Can users define their own triggers or signals based on the type of companies they\u2019re tracking?<\/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\">what a wow<\/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\/@shivam_bhotika\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shivam_bhotika<\/a>&nbsp;Thanks Shivam!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 great. Congrats, Siddhant and team.<\/p>\n<p>Since those are synthesized rather than reported data, would I be able to see what a given moat call was drawn from, or do I take the field as given?<\/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>Cool. Can you set up notifications when a specific signal is triggered? And can you create custom signals?<\/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>How granular are the sentiment and impact scores? Can developers access the underlying scoring fields through the API?? <\/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\/@zerotox\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zerotox<\/a>&nbsp;yes, numeric scores on a scale of 0 to 1. Raw scores are available in the api response for developers to use.<\/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 do you handle companies with very limited public information? <\/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\/@nuseir_yassin1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nuseir_yassin1<\/a>&nbsp;for such instances we rely on alternative data such as social media, blogs, podcasts etc. if there is limited information the company itself. We leverage a smart validation logic &#8211; if company has very limited public data, not all parameters are populated &#8211; only the one&#8217;s which can be backed by sufficient data are populated while others are left out. Prioritizing accuracy and fidelity yet retaining good fill rates. <\/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>As a developer, having this available through API, MCP, and CLI makes the product flexible and interesting to use. 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\/@roopreddy\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@roopreddy<\/a>&nbsp;Thanks Roop. That was the intent,. We wanted the choice of surface to be about how you work rather than a tradeoff, so API, MCP and CLI all return the same shapes.<\/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 do you keep the event signals fresh, especially when a company has very little public information?<\/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\">How customizable are the event triggers? I\u2019d love to define signals specific to a particular industry or workflow.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Per seat pricing on company data always punished the wrong person, since I need enrichment in bursts around a campaign and then not at all for weeks. On the signals layer, how fast does something like a funding round or a hiring spike actually show up after it happens?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>20M+ companies with 70+ fields is a serious amount of coverage. Congrats to the team! \ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">The entity resolution happening upstream is a smart architectural choice. It should make the API much cleaner for developers.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">#2<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/FBBFOTHWP2O4QH\" class=\"app-title\">Diet Claude<\/a><\/p>\n<div class=\"one-liner\">Never get blindsided by Claude&#8217;s usage limits again<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">334<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Diet Claude \u662f\u4e00\u6b3e\u6d4f\u89c8\u5668\u63d2\u4ef6\uff0c\u901a\u8fc7\u5b9e\u65f6\u53ef\u89c6\u5316\u7528\u91cf\u4eea\u8868\u76d8\uff0c\u5e2e\u52a9\u91cd\u5ea6 Claude \u7528\u6237\u5728\u4f1a\u8bdd\u4e2d\u76d1\u63a7\u4ee4\u724c\u6d88\u8017\u3001\u9884\u6d4b\u91cd\u7f6e\u65f6\u95f4\uff0c\u5e76\u5728\u89e6\u53d1\u9650\u989d\u65f6\u4e00\u952e\u5c06\u5bf9\u8bdd\u8fc1\u79fb\u81f3\u5176\u4ed6\u5927\u6a21\u578b\uff0c\u907f\u514d\u5de5\u4f5c\u4e2d\u65ad\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\/a91b20f7-2789-4ffb-bb85-3bd54ce276f1.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\/b025ed92-8c0d-4d1b-8663-d8c6f2c0a444.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\/c7bfa006-4665-42d4-a656-ba895b215ea6.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\/6381cc5a-40af-42b0-a552-41b302e0cf9a.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\/c653edd0-8925-4a7f-aa85-3cfec9733105.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\/6e357823-dc79-4a7a-b2e8-56bf0cc377ad.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\/e8560c88-c23d-42a4-8208-f98955b1f68d.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/HaObIpjTBN8\"><source src=\"https:\/\/youtu.be\/HaObIpjTBN8\" 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\">Chrome Extensions<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6d4f\u89c8\u5668\u63d2\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u7528\u91cf\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u4ee4\u724c\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u4f1a\u8bdd\u8fc1\u79fb<\/span><br \/>\n            <span class=\"tag\">Claude\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u529b<\/span><br \/>\n            <span class=\"tag\">\u9650\u989d\u63d0\u9192<\/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\u5b9e\u65f6\u8ffd\u8e2a\u548c\u89c6\u89c9\u8bbe\u8ba1\uff08\u5982\u6c7d\u6c34\u5f00\u7f50ASMR\u3001\u590d\u53e4\u50cf\u7d20\u98ce\uff09\u3002\u4e3b\u8981\u5efa\u8bae\u805a\u7126\u4e8e\u5b89\u88c5\u95e8\u69db\uff08\u9700\u660e\u786e\u4e3aChrome\u63d2\u4ef6\uff09\u53ca\u5bf9\u514d\u8d39\/\u4e13\u4e1a\u7248\u7528\u6237\u7684\u9002\u914d\u6027\u3002\u90e8\u5206\u7528\u6237\u63d0\u53ca\u7c7b\u4f3c\u5de5\u5177\u5b58\u5728\uff0c\u4f46\u54c1\u724c\u8bb0\u5fc6\u70b9\u7a81\u51fa\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                Diet Claude \u5207\u4e2d\u7684\u662f Claude \u91cd\u5ea6\u7528\u6237\u6700\u523a\u75db\u7684\u771f\u5b9e\u573a\u666f\u2014\u2014\u4e0d\u662f\u201c\u6015\u7528\u5b8c\u201d\uff0c\u800c\u662f\u201c\u4e0d\u77e5\u9053\u4f55\u65f6\u7528\u5b8c\u201d\u3002\u8fd9\u4e2a\u75db\u70b9\u88ab Anthropic \u5b98\u65b9\u957f\u671f\u5ffd\u89c6\uff0c\u5374\u6070\u6070\u662f\u7528\u6237\u7559\u5b58\u7387\u7684\u9690\u5f62\u6740\u624b\u3002\u4ea7\u54c1\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u6ca1\u6709\u8bd5\u56fe\u5bf9\u6297\u9650\u989d\uff0c\u800c\u662f\u901a\u8fc7\u201c\u53ef\u89c6\u5316+\u81ea\u6551\u901a\u9053\u201d\u53cc\u7ba1\u9f50\u4e0b\uff1a\u5148\u8ba9\u4f60\u77e5\u9053\u8fd8\u5269\u591a\u5c11\uff0c\u518d\u7ed9\u4f60\u4e00\u6761\u9003\u751f\u7684\u8def\uff08\u8fc1\u79fb\u5230\u5176\u4ed6LLM\uff09\u3002\u8fd9\u672c\u8d28\u4e0a\u662f\u5728\u505a\u201cAI\u65f6\u4ee3\u7684\u52a0\u6cb9\u7ad9\u4eea\u8868\u76d8\u201d\uff0c\u800c\u975e\u8bd5\u56fe\u6539\u9020\u53d1\u52a8\u673a\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u9690\u5fe7\u4e5f\u5f88\u660e\u663e\uff1a\u7b2c\u4e00\uff0c\u4e25\u91cd\u4f9d\u8d56 Claude \u7684 API\/\u7f51\u9875\u7aef\u884c\u4e3a\u53d8\u5316\uff0c\u82e5\u5b98\u65b9\u8c03\u6574\u9650\u989d\u7b56\u7565\u6216\u5f00\u653e\u66f4\u9ad8\u9891\u7684\u8ba1\u8d39\u63a5\u53e3\uff0c\u8be5\u5de5\u5177\u7684\u6838\u5fc3\u5356\u70b9\u4f1a\u88ab\u7a00\u91ca\u3002\u7b2c\u4e8c\uff0c\u201c\u8fc1\u79fb\u5230\u5176\u4ed6LLM\u201d\u542c\u8d77\u6765\u7f8e\u597d\uff0c\u5b9e\u9645\u64cd\u4f5c\u4e2d\u4e0a\u4e0b\u6587\u6620\u5c04\u3001\u5de5\u5177\u94fe\u517c\u5bb9\u3001\u63d0\u793a\u8bcd\u5fae\u8c03\u90fd\u662f\u6280\u672f\u503a\uff0c\u82e5\u4ec5\u505a\u201c\u590d\u5236\u7c98\u8d34\u4e2d\u8f6c\u7ad9\u201d\uff0c\u4ef7\u503c\u4f1a\u8fc5\u901f\u8d2c\u503c\u3002\u7b2c\u4e09\uff0c\u4ea7\u54c1\u76ee\u524d\u4f9d\u9644\u4e8e\u5355\u4e00\u5e73\u53f0\uff08Claude\uff09\uff0c\u5929\u82b1\u677f\u6e05\u6670\uff0c\u4e14\u7528\u6237\u8bc4\u8bba\u4e2d\u5df2\u6709\u4eba\u63d0\u5230\u201c\u7c7b\u4f3c\u4ea7\u54c1\u5b58\u5728\u201d\uff0c\u5dee\u5f02\u5316\u53ea\u9760\u54c1\u724c\u8da3\u5473\u6027\uff0c\u62a4\u57ce\u6cb3\u4e0d\u6df1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u673a\u4f1a\u5728\u4e8e\uff1a\u8981\u4e48\u5411\u4e0a\u6e38\u8d70\uff0c\u6210\u4e3a Anthropic \u5b98\u65b9\u63a8\u8350\u7684\u7ba1\u7406\u5de5\u5177\uff08\u88ab\u6536\u7f16\u6216\u6df1\u5ea6\u96c6\u6210\uff09\uff1b\u8981\u4e48\u5411\u4e0b\u6e38\u8d70\uff0c\u505a\u6210\u201c\u8de8\u6a21\u578b\u4f1a\u8bdd\u7ba1\u5bb6\u201d\u2014\u2014\u4e0d\u53ea\u662f\u9003\u79bb\u9650\u989d\uff0c\u800c\u662f\u8ba9\u7528\u6237\u5728 Claude\u3001GPT\u3001Gemini \u4e4b\u95f4\u65e0\u7f1d\u5207\u6362\uff0c\u6309\u4efb\u52a1\u590d\u6742\u5ea6\u52a8\u6001\u9009\u6a21\u578b\u3002\u5426\u5219\uff0c\u5b83\u5927\u6982\u7387\u4f1a\u6ca6\u4e3a\u4e00\u4e2a\u5c0f\u4f17\u7684\u6548\u7387\u63d2\u4ef6\uff0c\u70ed\u95f9\u4e00\u9635\uff0c\u7136\u540e\u88ab\u5e73\u53f0\u81ea\u8eab\u7684\u66f4\u65b0\u541e\u6ca1\u3002\u540d\u5b57\u548c\u8bbe\u8ba1\u786e\u5b9e\u8ba8\u559c\uff0c\u4f46\u201cDiet\u201d\u5982\u679c\u53ea\u80fd\u51cf\u8d1f\uff0c\u4e0d\u80fd\u589e\u808c\uff0c\u5c31\u59cb\u7ec8\u662f\u96f6\u98df\uff0c\u4e0d\u662f\u6b63\u9910\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\">Diet Claude<\/span>\n                <\/div>\n<div class=\"comment-content\">Hitting Claude&#8217;s limit mid-work is annoying af. Diet Claude gives a live usage meter shows how much of your session you\u2019ve used, how much time is left, and when your limits reset. It helps optimise token usage by context trimming, tightening prompts, suggesting apt models. And when you do run dry, it carries your conversation and context over to another LLM instead of starting from scratch.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hello Product Hunt \ud83d\udc4b\ud83c\udffc<\/p>\n<p>As someone who spends a lot of time building with AI, few things are more frustrating than hitting Claude\u2019s usage limit right in the middle of focused work.<\/p>\n<p>You rarely know how much of your session is left, when it will reset, or whether one long conversation is quietly burning through your tokens.<\/p>\n<p><a href=\"https:\/\/www.producthunt.com\/@surbhi_singla2\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"surbhi_singla2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@surbhi_singla2<\/a> is a Claude and Diet Coke maxi who turned this painfully familiar problem into a fun little product.<\/p>\n<p>I\u2019ll let her tell you more about it.<\/p>\n<p>Over to you \ud83d\udc47<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>11<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@akhilbvs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@akhilbvs<\/a>&nbsp;hellooo thanku akhil for hunting my product. <\/p>\n<\/p>\n<p>Diet Claude is for the ones who are hit by claude&#8217;s rate limiting and their workflow gets distrupted. we help by &#8211; <\/p>\n<p>one, awareness of usage left through visual meter can on the screen. <\/p>\n<p>two, by context trimming, branching a conversation to avoid burning tokens on context while retaining the context, <\/p>\n<p>three, by helping you simply continue the conversation in another llm if you still do hit rate limits. <\/p>\n<\/p>\n<p>there are a bunch of other features too simple coming out of my own use case. this is just the starting. what we aim is to understand pain points of a claude user and provide them with fun solutions. <\/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<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@surbhi_singla2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@surbhi_singla2<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@akhilbvs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@akhilbvs<\/a>&nbsp;Congratulations on the launch! This is the exact thing I didn&#8217;t know I needed &#8211; and how fun, too! Definitely going to take it for a spin \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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>love that i can get the last juice from my claudee<\/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\/@wisenavi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@wisenavi<\/a>&nbsp;yessss <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Monitoring tokens got really interesting with the fizz of a soda Can opening ASMR sound. Super awesome to use it.<\/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\/@chinmay_changde1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@chinmay_changde1<\/a>&nbsp;thanks for giving it a shot chinmayy<\/p>\n<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I&#8217;m on Max plan but I have 50+ friends who&#8217;re on $20 plan and they all will love this. Forwarding them this &#8211; rad video. Super cool stuff Surbhi \ud83d\udd25<\/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\/@sankalpdomore\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sankalpdomore<\/a>&nbsp;thankuu sankalp. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>love it, my friend made a diet coke can opening couple of months ago, u just click and hear psssst sounds that is it but this one is a good use of making it club with claude&#8217;s limit. <\/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\/@gamifykaran\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gamifykaran<\/a>&nbsp;pls go hear the asmr soda sounds. i love fidgeting around with it while waiting for my claude reply<\/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\">Honestly the name and branding is what makes this. The idea is simple and i&#8217;ve seen essentially this exact product a few times, but this name and branding is by far the best and memorable for me. Nice job!<\/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>Tracking rate limits real-time so workflow doesn&#8217;t hit a wall mid-prompt is super useful. Nice 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\/@thisiskp_\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thisiskp_<\/a>&nbsp;Yesss the product came out of my own need 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>Sorry guys, just wondering, should I install something before use? <\/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\/@maksym_shcherbakov1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@maksym_shcherbakov1<\/a>&nbsp;hi, you can install diet claude as a chrome plugin on any browser and use it for your claude. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">been running into this daily. looking forward to trying it out<\/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\/@eyal_nayowitz_testifly\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@eyal_nayowitz_testifly<\/a>&nbsp;thankuuu eyal pls do and let us know your feedback. this is just v1<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Hahah loved the video! You deserve being at top here! Wish you all the best guys!<\/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\/@german_merlo1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@german_merlo1<\/a>&nbsp;thankuuuuuu<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Useful and love the retro pixel design on the Diet Claude widget. <\/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\/@soumitrasen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@soumitrasen<\/a>&nbsp;thanku soumitraa<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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, I&#8217;ve built a local banner, but it&#8217;s hit and miss will try this, love the diet claude <a href=\"https:\/\/www.producthunt.com\/@surbhi_singla2\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"surbhi_singla2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@surbhi_singla2<\/a> <\/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\/@warrenmo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@warrenmo<\/a>&nbsp;yes pls try and let us know your feedback. this is v1. we plan to do a lot more. thanks for being kind enough to give it a try<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>LFG, super useful and needed<\/p>\n<p>Congrats on the launch <a href=\"https:\/\/www.producthunt.com\/@surbhi_singla2\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"surbhi_singla2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@surbhi_singla2<\/a> <\/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\/@pratyush_rungta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pratyush_rungta<\/a>&nbsp;thankuuuu <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">Subarashi, Surbhi! I will be forever arigatou for this product to track my fable usage.<\/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\/@endu_merlin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@endu_merlin<\/a>&nbsp;thankuuuuu<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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<\/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\/@pratyush_r8\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pratyush_r8<\/a>&nbsp;thankyouu so much<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Needed something like this so bad.<\/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\/@soaib_aktar\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@soaib_aktar<\/a>&nbsp;thankuuu, pls give us 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<div class=\"comment-item\">\n<div class=\"comment-content\">There should be an usage limit option to view the limit in Claude somewhere I\u2019m pretty sure<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Congrats on second place with a free Chrome extension. You built it out of your own use case, and you are still calling it v1 on launch day instead of overselling 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>Cool! Can it switch to a different Claude Code license as well? Switching AI providers can sometimes cause issues with understanding context, which could cause problems in some cases.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">#3<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/ETAPVE6UI3URIT\" class=\"app-title\">Agnost AI<\/a><\/p>\n<div class=\"one-liner\">Catch agent failures your evals miss<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">235<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Agnost AI\u901a\u8fc7\u81ea\u52a8\u9605\u8bfb\u751f\u4ea7\u73af\u5883\u4e2dAI Agent\u4e0e\u7528\u6237\u7684\u6bcf\u4e00\u6b21\u5bf9\u8bdd\uff0c\u8bc6\u522b\u51fa\u4f20\u7edf\u76d1\u63a7\uff08\u5982\u201c200 OK\u201d\uff09\u548c\u9884\u8bbe\u8bc4\u6d4b\uff08Evals\uff09\u65e0\u6cd5\u53d1\u73b0\u7684\u9759\u9ed8\u5931\u8d25\u3001\u884c\u4e3a\u6f02\u79fb\u3001\u5e7b\u89c9\u548c\u7528\u6237\u632b\u8d25\u611f\uff0c\u5e76\u5c06\u8fd9\u4e9b\u6d1e\u5bdf\u76f4\u63a5\u8f6c\u5316\u4e3a\u53ef\u4fee\u590d\u7684\u8bc4\u6d4b\u7528\u4f8b\u6216\u8c03\u8bd5\u6307\u4ee4\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\/363740f2-46a8-4f9f-b3a5-2ae32f3ec54e.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\/f3346fc7-bfe9-4246-b8d2-04f7c144631c.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\/52f3eec7-926e-4b16-a7b8-a4d3a70bb64d.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\/a08c4b7e-d0a0-4b73-913b-d638780938f1.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\/21f7e085-f65a-4641-a00d-65b7b6801e7c.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=gKyhf6rUELg\"><source src=\"https:\/\/www.youtube.com\/watch?v=gKyhf6rUELg\" 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\">Analytics<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u53ef\u89c2\u6d4b\u6027<\/span><br \/>\n            <span class=\"tag\">Agent\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">LLM\u8bc4\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u5bf9\u8bdd\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u9759\u9ed8\u5931\u8d25\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u5e7b\u89c9\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">AI\u8c03\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u751f\u4ea7\u73af\u5883\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u6d41\u5931\u9884\u8b66<\/span><br \/>\n            <span class=\"tag\">OpenTelemetry<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u5176\u201c\u8bfb\u53d6\u5bf9\u8bdd\u201d\u7684\u72ec\u7279\u4ef7\u503c\uff0c\u5171\u9e23\u5176\u6233\u7834\u201c200 OK\u201d\u5047\u8c61\u7684\u75db\u70b9\u3002\u6709\u6548\u95ee\u9898\u96c6\u4e2d\u5728\uff1a\u2460\u662f\u5426\u652f\u6301\u5bfc\u51fa\u5408\u6210\u6570\u636e\u96c6\u81f3DeepEval\u3001Braintrust\u7b49\u8bc4\u6d4b\u6846\u67b6\uff1b\u2461\u80fd\u5426\u5229\u7528\u6d1e\u5bdf\u964d\u4f4e\u6a21\u578b\u63a8\u7406\u6210\u672c\uff08\u5b98\u65b9\u56de\u5e94\u79f0\u53ef\u8bad\u7ec3\u66f4\u7cbe\u51c6\u7684SLM\u4ee5\u66ff\u4ee3\u524d\u6cbf\u6a21\u578b\uff09\uff1b\u53e6\u6709\u7528\u6237\u63d0\u53ca\u793e\u533a\u5408\u4f5c\u4e0e\u4f53\u9a8c\u53cd\u9988\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                Agnost AI\u7cbe\u51c6\u5207\u5165\u4e86\u4e00\u4e2a\u88ab\u4e25\u91cd\u4f4e\u4f30\u7684\u76f2\u533a\u2014\u2014Evals\u7684\u672c\u8d28\u662f\u201c\u5df2\u77e5\u95ee\u9898\u7684\u56de\u5f52\u6d4b\u8bd5\u201d\uff0c\u800c\u751f\u4ea7\u73af\u5883\u7684\u6545\u969c\u5f80\u5f80\u662f\u975e\u9884\u671f\u7684\u3002\u521b\u59cb\u4eba\u4ece\u81ea\u8eab\u201c\u5411\u521b\u59cb\u4eba\u53cd\u9988bug\u5374\u88ab\u544a\u77e5\u2018\u6211\u4eec\u4e0d\u77e5\u9053\u2019\u201d\u7684\u4eb2\u8eab\u7ecf\u5386\u51fa\u53d1\uff0c\u654f\u9510\u5730\u6293\u4f4f\u4e86\u201c\u76d1\u63a7\u4eea\u8868\u76d8\u663e\u793a\u6210\u529f\uff0c\u4f46\u5bf9\u8bdd\u903b\u8f91\u5df2\u5d29\u6e83\u201d\u8fd9\u4e00\u4e1a\u754c\u666e\u904d\u5b58\u5728\u7684\u8ba4\u77e5\u65ad\u5c42\u3002\u5176\u6838\u5fc3\u4ef7\u503c\u4e0d\u662f\u201c\u53c8\u4e00\u4e2a\u89c2\u6d4b\u5de5\u5177\u201d\uff0c\u800c\u662f\u5c06\u201c\u5bf9\u8bdd\u5b9a\u6027\u5206\u6790\u201d\u8fd9\u4e00\u9700\u8981\u4eba\u5de5\u7684\u3001\u4e0d\u53ef\u6269\u5c55\u7684\u8fc7\u7a0b\uff0c\u5347\u7ea7\u4e3a\u201c\u81ea\u52a8\u6a21\u5f0f\u8bc6\u522b+\u5f52\u56e0+\u95ed\u73af\u5230Eval\u751f\u6210\u201d\u7684\u81ea\u52a8\u5316\u5f15\u64ce\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u6218\u7565\u770b\uff0c\u8be5\u4ea7\u54c1\u8e29\u4e2d\u4e86\u4e24\u4e2a\u6b63\u5f53\u65f6\u7684\u6d6a\u5934\uff1a\u4e00\u662fAI Agent\u4eceDemo\u8d70\u5411\u751f\u4ea7\u540e\u7684\u53ef\u9760\u6027\u7126\u8651\uff0c\u4e8c\u662f\u201cEval-driven development\u201d\u65b9\u6cd5\u8bba\u5174\u8d77\u4f46\u5de5\u5177\u94fe\u8584\u5f31\u3002\u5176\u201c\u7528SLM\u57fa\u4e8e\u5931\u8d25\u6570\u636e\u8bad\u7ec3\u5c0f\u6a21\u578b\u964d\u672c\u201d\u7684\u601d\u8def\u5c24\u5176\u806a\u660e\uff0c\u5c06\u76d1\u63a7\u6d1e\u5bdf\u53cd\u5411\u8d4b\u80fd\u63a8\u7406\u6210\u672c\u4f18\u5316\uff0c\u8fd9\u6bd4\u5355\u7eaf\u5356\u201c\u76d1\u63a7\u8f6f\u4ef6\u201d\u6709\u66f4\u6df1\u7684\u4ef7\u503c\u951a\u70b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5fc5\u987b\u6cfc\u51b7\u6c34\uff1a\u9996\u5148\uff0c\u4ea7\u54c1\u76ee\u524d\u4f9d\u8d56\u201c\u8bfb\u53d6\u5bf9\u8bdd\u201d\u8fd9\u4e00\u6b63\u9762\u6253\u6cd5\uff0c\u4f46\u5176\u957f\u671f\u58c1\u5792\u5728\u4e8e\u201c\u5bf9\u5931\u8d25\u6a21\u5f0f\u7684\u8bed\u4e49\u7406\u89e3\u6df1\u5ea6\u201d\u2014\u2014\u4e00\u65e6\u5927\u5382\uff08\u5982LangSmith\u3001Dynatrace\uff09\u5c06\u7c7b\u4f3c\u903b\u8f91\u96c6\u6210\u5230\u73b0\u6709\u5e73\u53f0\uff0c\u72ec\u7acb\u5de5\u5177\u7684\u751f\u5b58\u7a7a\u95f4\u4f1a\u88ab\u6781\u5ea6\u538b\u7f29\u3002\u5176\u6b21\uff0c\u8bc4\u8bba\u4e2d\u5df2\u51fa\u73b0\u5bf9DeepEval\/Braintrust\u96c6\u6210\u3001\u6210\u672c\u4f18\u5316\u843d\u5730\u7684\u5177\u4f53\u95ee\u9898\uff0c\u82e5\u8fd9\u4e9b\u201c\u9526\u4e0a\u6dfb\u82b1\u201d\u7684\u529f\u80fd\u4ea4\u4ed8\u8282\u594f\u8fc7\u6162\uff0c\u4f1a\u6d88\u8017\u65e9\u671f\u7528\u6237\u70ed\u60c5\u3002\u6700\u540e\uff0c\u521b\u59cb\u4eba\u58f0\u79f0\u201c\u6bcf\u5929\u5206\u6790\u8d85\u767e\u4e07\u6761\u6d88\u606f\u201d\u662f\u6781\u597d\u7684\u53d9\u4e8b\uff0c\u4f46\u66f4\u5173\u952e\u7684\u662f\u6d1e\u5bdf\u7684\u51c6\u786e\u7387\u2014\u2014\u5982\u679c\u8bef\u62a5\u7387\u8fc7\u9ad8\uff0c\u53cd\u800c\u4f1a\u6210\u4e3a\u566a\u97f3\u3002\u603b\u4f53\u800c\u8a00\uff0c\u8fd9\u662f\u5f53\u524dAI\u57fa\u7840\u8bbe\u65bd\u8d5b\u9053\u91cc\u5c11\u89c1\u7684\u3001\u6709\u771f\u5b9e\u5207\u5165\u70b9\u548c\u6e05\u6670\u5546\u4e1a\u95ed\u73af\u7684\u4ea7\u54c1\uff0c\u4f46\u5fc5\u987b\u5feb\u901f\u4ece\u201c\u6d1e\u5bdf\u5de5\u5177\u201d\u8fdb\u5316\u4e3a\u201c\u95ee\u9898\u81ea\u52a8\u4fee\u590d\u5f15\u64ce\u201d\uff0c\u624d\u80fd\u62b5\u5fa1\u5de8\u5934\u78be\u538b\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\">Agnost AI<\/span>\n                <\/div>\n<div class=\"comment-content\">Agnost AI analyzes conversations between users and your production AI agents and discovers: silent failures, agent behavior drift, hallucinations, user frustration, hidden feature requests, and churn signals. It groups them into recurring patterns, shows the exact users and conversations behind each insight, and turns them into evals and fixes.<\/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! Shubham here \ud83d\udc4b<br \/>Parth and I try almost every AI product we come across (we\u2019re just young curious folks).<\/p>\n<p>And we kept on doing the same thing: a product launched with an insane claim, their agent would feel magical for 10 minutes, then it claimed it completed something it hadn\u2019t, invent a link, or make us repeat ourselves three times.<\/p>\n<p>We\u2019d then message the founders and hear: this is really useful feedback. we had no idea.<\/p>\n<p>And we\u2019d think: wait, you already have the entire conversation &amp; traces. why did we have to tell you?<\/p>\n<p>Turns out, their the AI observability dashboards showed a successful request: 200 OK, tool call succeeded, response generated.<\/p>\n<p>The failure was only visible if someone actually read the conversation. So we built Agnost AI.<\/p>\n<p>Agnost AI reads every production conversation across chat and voice agents. It groups them into recurring failures, behavior drift, hallucinated links, frustration, feature requests and churn signals, with the exact users and conversations behind each one.<\/p>\n<p>From there, you can create an eval, or ask your coding agent to debug the problem &amp; fix it.<\/p>\n<p>Because evals test problems you already know about. You can\u2019t write an eval for something you haven\u2019t discovered yet.<\/p>\n<p>Agnost AI connects in three lines of code or through OpenTelemetry and already analyzes more than one million messages every day.<\/p>\n<p>If you\u2019re running a user-facing agent, connect it. I\u2019ll personally help you find three things happening in your conversations that you probably don\u2019t know about.<\/p>\n<p>Also, how do you currently discover failures your evals don\u2019t cover: user complaints, manually reading traces, or something else?<\/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\/@shubhampalriwala\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shubhampalriwala<\/a>&nbsp;Congrats on launching&#8230;\ud83d\ude4c You mentioned turning discovered failures into evals does Agnost export synthetic test datasets directly to frameworks like DeepEval or Braintrust?<\/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\/@shubhampalriwala\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shubhampalriwala<\/a>&nbsp;Congrats on the launch, Mr. Shubham,  This resonates. I do content\/community work for early-stage AI products (currently run LoWisa&#8217;s social account, plus community management for a few Web3 projects). Would love to help you spread this launch and build out a community around it in exchange for early access, let me know if that&#8217;s useful<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@shubhampalriwala\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@shubhampalriwala<\/a>&nbsp;It&#8217;s wild that the failure was hiding behind a &#8216;200 OK&#8217; &#8211; your team&#8217;s frustration really resonates with how opaque agent performance can feel from the inside. 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">This is so cool!<\/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>Can I also save my model inference costs using the insights Agnost gives me?<\/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\/@sarthak_aggarwal4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sarthak_aggarwal4<\/a>&nbsp;Yes, we train you an SLM based on where your agent fails today with frontier! And its actually more accurate, faster, &amp; cheaper too!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 team!!! I played around with the product and it felt super snappy<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>congrats on the launch! Let&#8217;s go 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>Been waiting for a product like this. Congrats on the laucnh!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>You two kept messaging founders about failures in their agents and kept hearing that they had no idea. Congrats on shipping the version where they find out first, without needing you to tell 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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>You noticed that an invented link still comes back as a 200 OK on the dashboard. Congrats on building the thing that actually reads the conversation.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/2IXJ3KDUVPWSJK\" class=\"app-title\">Jotform AI Data Assistant<\/a><\/p>\n<div class=\"one-liner\">Turn form data into insights and action with AI<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">209<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Jotform AI Data Assistant \u662f\u5c06\u8868\u5355\u6570\u636e\u8f6c\u5316\u4e3a\u53ef\u89c6\u5316\u6d1e\u5bdf\u4e0e\u6279\u91cf\u64cd\u4f5c\u7684AI\u52a9\u624b\uff0c\u76f4\u63a5\u5d4c\u5165\u8868\u5355\u540e\u53f0\uff0c\u8ba9\u7528\u6237\u901a\u8fc7\u81ea\u7136\u5bf9\u8bdd\u5b8c\u6210\u6570\u636e\u5206\u6790\u3001\u56fe\u8868\u751f\u6210\u3001\u8bb0\u5f55\u66f4\u65b0\u7b49\u7e41\u7410\u5de5\u4f5c\uff0c\u89e3\u51b3\u201c\u6536\u96c6\u5b8c\u6570\u636e\u540e\u65e0\u4ece\u4e0b\u624b\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\/49deccb3-2007-438d-a0a5-aad6750c04d6.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\/e9c85cdc-7509-415f-bed6-92148744d302.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\/4715c6e0-9f5a-426c-ab47-5ca49d3eb6b9.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\/d49de062-dadd-44ab-9f49-5b83e79f38f3.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\/7c7c36c5-7309-4610-8d34-4ae251bb1a2e.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\/a4a5e482-cc8a-41bf-a218-297cb5b806a0.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=8a77xp0RxCo\"><source src=\"https:\/\/www.youtube.com\/watch?v=8a77xp0RxCo\" 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\">Data &#038; Analytics<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u8868\u5355\u6570\u636e<\/span><br \/>\n            <span class=\"tag\">AI\u6570\u636e\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u81ea\u7136\u8bed\u8a00\u67e5\u8be2<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u62a5\u8868<\/span><br \/>\n            <span class=\"tag\">\u6570\u636e\u53ef\u89c6\u5316<\/span><br \/>\n            <span class=\"tag\">\u6279\u91cf\u66f4\u65b0<\/span><br \/>\n            <span class=\"tag\">\u6587\u672c\u6458\u8981<\/span><br \/>\n            <span class=\"tag\">\u60c5\u7eea\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4ee3\u7801\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u666e\u904d\u8ba4\u53ef\u5176\u7701\u53bb\u4eba\u5de5\u6574\u7406\u8868\u683c\u7684\u7e41\u7410\uff0c\u8ba4\u4e3a\u586b\u8865\u4e86\u201c\u6536\u96c6\u4e0e\u884c\u52a8\u201d\u4e4b\u95f4\u7684\u7a7a\u767d\u3002\u4e3b\u8981\u7591\u95ee\u96c6\u4e2d\u5728\uff1a\u5bf9\u5f00\u653e\u5f0f\u6587\u672c\uff08\u975e\u9009\u62e9\u9898\uff09\u7684\u5904\u7406\u6548\u679c\uff0c\u4ee5\u53ca\u56e2\u961f\u5982\u4f55\u5229\u7528\u8be5\u5de5\u5177\u4ece\u539f\u59cb\u6570\u636e\u4e2d\u63d0\u70bc\u5173\u952e\u51b3\u7b56\u4fe1\u606f\u3002\u521b\u59cb\u4eba\u4eb2\u81ea\u56de\u590d\u89e3\u91ca\u652f\u6301\u6587\u672c\u4e3b\u9898\u5f52\u7eb3\u4e0eAI\u5217\u6269\u5c55\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                Jotform AI Data Assistant\u672c\u8d28\u4e0a\u4e0d\u662f\u4e00\u4e2a\u201c\u65b0AI\u201d\uff0c\u800c\u662f\u4e00\u4e2a\u5c06LLM\u80fd\u529b\u5c01\u88c5\u8fdb\u65e2\u6709\u8868\u5355\u540e\u7aef\u7684\u201c\u61d2\u4eba\u8fc7\u6ee4\u5668\u201d\u3002\u5b83\u7684\u4eae\u70b9\u4e0d\u5728\u4e8e\u591a\u806a\u660e\uff0c\u800c\u5728\u4e8e\u4f4d\u7f6e\u2014\u2014\u76f4\u63a5\u957f\u5728Jotform Tables\u548cInbox\u91cc\uff0c\u628a\u7528\u6237\u4ece\u201c\u5bfc\u51faCSV\u2192\u6e05\u6d17\u2192\u900f\u89c6\u8868\u2192\u505aPPT\u201d\u7684\u65e7\u6d41\u7a0b\u4e2d\u89e3\u653e\u51fa\u6765\u3002\u8fd9\u786e\u5b9e\u662f\u521a\u9700\uff0c\u5c24\u5176\u5bf9\u4e2d\u5c0f\u56e2\u961f\u548c\u8425\u9500\u8fd0\u8425\u4eba\u5458\u6765\u8bf4\uff0c\u7701\u4e0b\u7684\u4e0d\u662f\u51e0\u5206\u949f\uff0c\u800c\u662f\u6574\u4e2a\u201c\u6570\u636e\u6050\u60e7\u75c7\u201d\u7684\u53d1\u4f5c\u5468\u671f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u770b\uff0c\u5176\u6838\u5fc3\u5356\u70b9\u201c\u81ea\u7136\u8bed\u8a00\u95ee\u6570\u636e\u201d\u4ecd\u505c\u7559\u5728\u201c\u5bbd\u53e3\u5f84\u67e5\u8be2+\u6d45\u5c42\u805a\u5408\u201d\u9636\u6bb5\u3002\u5bf9\u771f\u6b63\u810f\u4e71\u5dee\u7684\u591a\u6e90\u6570\u636e\u3001\u590d\u6742\u5173\u8054\u67e5\u8be2\u6216\u9700\u8981\u56e0\u679c\u63a8\u65ad\u7684\u573a\u666f\uff0cAI\u5927\u6982\u7387\u4f1a\u4e00\u672c\u6b63\u7ecf\u5730\u80e1\u8bf4\u3002\u8bc4\u8bba\u4e2d\u552f\u4e00\u5c16\u9510\u7684\u63d0\u95ee\u2014\u2014\u201c\u5982\u4f55\u5904\u7406\u5f00\u653e\u5f0f\u6742\u4e71\u56de\u7b54\u201d\u2014\u2014\u5f97\u5230\u7684\u56de\u590d\u662f\u201c\u53ef\u4ee5\u603b\u7ed3\u3001\u5f52\u7c7b\u3001\u60c5\u611f\u5206\u6790\u201d\uff0c\u8fd9\u6070\u6070\u66b4\u9732\u4e86\u5b83\u66f4\u50cf\u4e00\u4e2a\u201c\u806a\u660e\u7684\u6458\u8981\u5668\u201d\uff0c\u800c\u975e\u201c\u53ef\u9760\u7684\u5206\u6790\u5e08\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u5916\uff0c\u4ea7\u54c1\u6346\u7ed1\u5728Jotform\u751f\u6001\u5185\uff0c\u610f\u5473\u7740\u5b83\u65e0\u6cd5\u72ec\u7acb\u5904\u7406\u5916\u90e8\u6570\u636e\u5e93\u6216API\u6570\u636e\uff0c\u8fd9\u9650\u5236\u4e86\u5b83\u7684\u4e0a\u9650\u300249\u6b21\u53d1\u5e03\u7684\u575a\u6301\u503c\u5f97\u5c0a\u656c\uff0c\u4f46\u8fd9\u6b21AI\u52a9\u624b\u66f4\u50cf\u662f\u5bf9\u5b58\u91cf\u7528\u6237\u7684\u4e00\u6b21\u201c\u9632\u6d41\u5931\u5347\u7ea7\u201d\uff0c\u800c\u975e\u589e\u91cf\u5229\u5668\u3002\u771f\u6b63\u7684\u8003\u9a8c\u5728\u4e8e\uff1a\u5f53\u7528\u6237\u95ee\u51fa\u201c\u4e3a\u4ec0\u4e48\u672c\u6708\u8f6c\u5316\u7387\u4e0b\u964d\u4e868%\u201d\u8fd9\u79cd\u9700\u8981\u8de8\u8868\u5355\u3001\u8de8\u65f6\u95f4\u8f74\u3001\u751a\u81f3\u5173\u8054\u5e7f\u544a\u6570\u636e\u7684\u95ee\u9898\u65f6\uff0c\u5b83\u80fd\u5426\u7ed9\u51fa\u53ef\u9a8c\u8bc1\u7684\u7b54\u6848\uff0c\u800c\u4e0d\u662f\u4e00\u6bb5\u542c\u8d77\u6765\u5408\u7406\u7684\u5e9f\u8bdd\u3002\u5982\u679c\u505a\u4e0d\u5230\uff0c\u5b83\u5c31\u6c38\u8fdc\u53ea\u662f\u8868\u683c\u7684\u201c\u8bed\u97f3\u52a9\u624b\u76ae\u80a4\u201d\uff0c\u800c\u975e\u201c\u6570\u636e\u51b3\u7b56\u5927\u8111\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\">Jotform AI Data Assistant<\/span>\n                <\/div>\n<div class=\"comment-content\">Jotform Data Assistant turns the data you collect into answers, insights, and action. Simply ask it to create or organize tables, analyze submissions, uncover trends, generate charts, summarize responses, or update records in bulk. Built directly into Jotform Tables and Inbox, it helps you manage your entire post-submission workflow through natural conversation, no formulas, complex filters, or repetitive manual work required.<\/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>When I started Jotform, the goal was simple: make it easier for anyone to collect information online.<\/p>\n<p>But collecting data is only the beginning. The real work often starts after someone clicks \u201cSubmit.\u201d<\/p>\n<p>You need to organize responses, find important details, identify patterns, create reports, update records, and follow up with the right people. Too often, that means wrestling with formulas, filters, spreadsheets, and repetitive manual tasks.<\/p>\n<p>Today, we&#8217;re excited to introduce Jotform AI Data Assistant, an AI assistant that turns form submissions into action.<\/p>\n<p>Instead of navigating menus or building everything manually, simply tell Data Assistant what you need. You can:<\/p>\n<p>\ud83d\udcca Ask questions about your submissions and get clear answers<br \/>\u2728 Identify patterns, recurring themes, and records that need attention<br \/>\ud83d\udcc8 Generate charts, summaries, and visual reports<br \/>\u26a1 Create and organize tables or update multiple records at once<br \/>\ud83e\udde0 Summarize, categorize, translate, and enrich data with AI Columns<br \/>\u2709\ufe0f Create replies, reminders, and follow-up emails directly from your data<\/p>\n<p>Data Assistant works inside Jotform Tables and Inbox, where your submission data already lives. That means you can move from collecting information to understanding it and acting on it without stitching together multiple tools.<\/p>\n<p>This launch also represents something bigger for Jotform AI.<\/p>\n<\/p>\n<p>We\u2019re continuing to expand AI across Jotform, building products that help you not only create faster, but also understand your data, get work done, and take action.<\/p>\n<\/p>\n<p>Jotform AI Data Assistant is the latest addition to our growing lineup of AI products, and there\u2019s more on the way. In fact, the next big one is coming soon. \ud83d\udc40<\/p>\n<\/p>\n<p>We\u2019d love to hear what you think. Try Jotform AI Data Assistant with your own submissions and let us know:<\/p>\n<\/p>\n<p>What would you ask your data first?<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@aytekintank\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aytekintank<\/a>&nbsp;This actually feels like the missing link between gathering responses and actually acting on them without the manual overhead. Well thought out, congrats!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@aytekintank\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aytekintank<\/a>&nbsp;How do you see teams using Jotform AI Data Assistant to turn raw form responses into meaningful follow-ups and decisions; especially in situations where the most valuable insight might otherwise get lost in a spreadsheet?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@aytekintank\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@aytekintank<\/a>&nbsp;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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This one&#8217;s pretty cool! Let me just ask some form data questions instead of digging through spreadsheets myself. Great for anyone drowning in form responses who just wants quick insights without the busywork \ud83d\ude42<\/p>\n<p>Makes me wonder how well it handles messy open-ended answers, though \u2013 not just the neat multiple-choice stuff?<\/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\">@yelyzaveta_kibets Great question! That\u2019s actually one of the areas we\u2019re most excited about. Data Assistant can work with open-ended responses too. <\/p>\n<p>You can ask it to summarize feedback, identify recurring themes, spot patterns, or even visualize the results.<\/p>\n<p>And with AI Columns, you can take it a step further by automatically categorizing responses, analyzing sentiment, translating answers, or extracting key information from messy text.<\/p>\n<p>So definitely not limited to the neat multiple-choice stuff!<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>1<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Cool, my friend was asking about a good form solution. Gonna share this with him \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\/@busmark_w_nika\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@busmark_w_nika<\/a>&nbsp;Thanks for sharing! Jotform can definitely help your friend create forms, and Data Assistant takes it further by helping them organize, analyze, and act on the responses they collect. \ud83d\ude0a<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 \ud83d\udc4f<\/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>Congratulations \ud83c\udf8a <\/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\/@madalina_barbu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@madalina_barbu<\/a>&nbsp;Thank you so much! We\u2019re excited to finally share Jotform AI Data Assistant with everyone. \ud83d\ude4c<\/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>Turning raw form submissions straight into actionable insights saves a ton of manual spreadsheet sorting. Great build!<\/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\">@thisiskp_ Exactly! That\u2019s a big part of what we wanted to solve, less time sorting through submissions and building reports, and more time actually using the data. <\/p>\n<p>\ud83d\ude4c\ud83c\udffb Really glad it resonated with you, and thanks for the support!<\/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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>You said the real work starts after someone clicks submit, and that is exactly where this one lives. Congrats on the forty ninth launch, which is a lot of shipping for one form builder.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 launch forty-nine since 2014, and the founder is still down in the thread replying himself. Easy to root for. Congrats on this one.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#5<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/5GM7KP7RMUFRD6\" class=\"app-title\">Nimbia<\/a><\/p>\n<div class=\"one-liner\">AI screen-sharing calls for user onboarding<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">157<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Nimbia\u662f\u4e00\u6b3e\u901a\u8fc7AI\u5b9e\u65f6\u5c4f\u5e55\u5171\u4eab\u901a\u8bdd\u6765\u66ff\u4ee3\u4eba\u5de51\u5bf91\u5f15\u5bfc\uff0c\u5e2e\u52a9SaaS\u4ea7\u54c1\u81ea\u52a8\u5b8c\u6210\u65b0\u7528\u6237 onboarding \u548c\u57f9\u8bad\u7684\u667a\u80fd\u52a9\u624b\uff0c\u80fd\u8bf4\u3001\u80fd\u542c\u3001\u80fd\u76f4\u63a5\u70b9\u51fb\u7528\u6237\u5c4f\u5e55\u64cd\u4f5c\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\/f25e53bd-acff-48fd-97c9-a73a436087ff.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\/6f6539af-c72e-4fdb-bec5-75e8c1bebdd5.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\/3ba19fce-a0a1-4394-81f5-1fdb36c59f5e.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\/49106e58-fb7e-4259-b8a8-0413841a9977.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\/64d5f08e-1af0-4109-8a24-bc3832d142b4.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\/3f46f4f5-4939-4856-8a01-92522281d2be.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\/e79eec48-a7f5-4a36-9c17-7800d80f3292.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\/d7d109ea-74ce-4a38-b0a5-d6c6e405af11.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\/eeb877b9-710c-4bf0-8b38-af36cea38dc2.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=-9mHTGsmpmA\"><source src=\"https:\/\/www.youtube.com\/watch?v=-9mHTGsmpmA\" 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\">Customer Success<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u9500\u552e\u966a\u8dd1<\/span><br \/>\n            <span class=\"tag\">\u7528\u6237\u6fc0\u6d3b<\/span><br \/>\n            <span class=\"tag\">\u4ea7\u54c1\u5f15\u5bfc<\/span><br \/>\n            <span class=\"tag\">\u5c4f\u5e55\u5171\u4eab<\/span><br \/>\n            <span class=\"tag\">\u5bf9\u8bdd\u5f0fAI<\/span><br \/>\n            <span class=\"tag\">SaaS onboarding<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u57f9\u8bad<\/span><br \/>\n            <span class=\"tag\">\u8f6c\u5316\u7387\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u534f\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u9690\u79c1\u5b89\u5168<\/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\u89e3\u51b3onboarding\u89c4\u6a21\u5316\u96be\u9898\u7684\u521b\u610f\uff0c\u5173\u6ce8\u652f\u4ed8\u5899\/\u9690\u79c1\u8fb9\u754c\u3001\u514d\u8d39\u5bf9\u8bdd\u81ea\u7531\u5ea6\u3001\u9632prompt\u6ce8\u5165\u673a\u5236\uff0c\u4ee5\u53ca\u540e\u7eed\u662f\u5426\u652f\u6301\u5ba2\u670d\u573a\u666f\u3002\u540c\u65f6\u8d5e\u8d4f\u5176\u4ea4\u4e92\u6548\u679c\u4f18\u4e8e\u4f20\u7edf\u4ea7\u54c1\u5bfc\u89c8\uff0c\u5e76\u597d\u5947\u6280\u672f\u5b9e\u73b0\u96be\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                Nimbia\u7684\u91ce\u5fc3\u4e0d\u6b62\u4e8e\u66ff\u4ee3\u201c\u4ea7\u54c1\u5bfc\u89c8\u201d\uff0c\u5b83\u5b9e\u8d28\u662f\u628a\u201c\u9876\u7ea7CSM\u76841\u5bf91\u670d\u52a1\u201d\u505a\u6210\u4e86\u53ef\u590d\u5236\u7684AI\u52b3\u52a8\u529b\u3002\u4ece\u5546\u4e1a\u903b\u8f91\u770b\uff0c\u8fd9\u76f4\u51fbPLG\u516c\u53f8\u6700\u75db\u7684\u201c\u6fc0\u6d3b\u5373\u4ed8\u8d39\u201d\u8f6c\u5316\u6f0f\u6597\u2014\u2014\u7528AI\u6a21\u62df\u771f\u4eba\u9500\u552e\u4ee3\u8868\u7684\u5b9e\u65f6\u5f15\u5bfc\uff0c\u8fdc\u6bd4\u56fe\u6587\u6559\u7a0b\u6216\u5f55\u5c4f\u66f4\u80fd\u5f71\u54cd\u7528\u6237\u51b3\u7b56\u3002\u51761.4X\u7684\u6fc0\u6d3b\u4e0e\u8bd5\u7528\u8f6c\u4ed8\u8d39\u63d0\u5347\uff0c\u6b63\u662f\u8d44\u672c\u6700\u60f3\u542c\u7684\u6545\u4e8b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5fc5\u987b\u6e05\u9192\u770b\u5230\u51e0\u4e2a\u786c\u4f24\uff1a\u5176\u4e00\uff0c\u6f14\u793a\u4e2d\u201cAI\u80fd\u70b9\u51fb\u7528\u6237\u5c4f\u5e55\u201d\u662f\u53cc\u5203\u5251\uff0c\u771f\u6b63\u4f01\u4e1a\u7ea7\u5ba2\u6237\uff08\u5c24\u5176\u662fHIPAA\/\u91d1\u878d\u573a\u666f\uff09\u5bf9AI\u76f4\u63a5\u64cd\u63a7\u7ec8\u7aef\u7684\u5b89\u5168\u5408\u89c4\u5929\u7136\u6050\u60e7\uff0c\u8bc4\u8bba\u4e2d\u9690\u79c1\u95ee\u9898\u7684\u786e\u662f\u6700\u5c16\u9510\u7684\u523a\u3002\u5176\u4e8c\uff0cAI\u5728\u5904\u7406\u591a\u6b65\u6d41\u7a0b\u3001\u5f02\u5e38\u5206\u652f\u3001\u7528\u6237\u4e34\u65f6\u7ed5\u8def\u65f6\u7684\u201c\u7ebf\u5934\u201d\u4f1a\u4e0d\u4f1a\u65ad\uff0c\u8bc4\u8bba\u4e2d\u201c\u662f\u5426\u4f1a\u5931\u53bb\u4e0a\u4e0b\u6587\u201d\u7684\u8d28\u7591\u6070\u6070\u6233\u4e2d\u5927\u591a\u6570\u5bf9\u8bdd\u5f0fAI\u7684\u8f6f\u808b\u3002\u5176\u4e09\uff0c\u770b\u4f3c\u8f7b\u91cf\uff08\u4e00\u884cJS\uff09\uff0c\u4f46\u80cc\u540e\u662f\u91cd\u5ea6\u6a21\u578b\u5b9a\u5236\u4e0e\u6301\u7eed\u8bad\u7ec3\uff0c\u8fd9\u51b3\u5b9a\u4e86\u5b83\u5f88\u96be\u6210\u4e3a\u4f4e\u4ef7\u81ea\u670d\u52a1\u4ea7\u54c1\uff0c\u800c\u66f4\u50cf\u9ad8\u5ba2\u5355\u4ef7\u7684\u201cAI\u4ee3\u8fd0\u8425\u201d\u670d\u52a1\u2014\u2014\u8fd9\u53c8\u56de\u5230\u5b83\u5ba3\u79f0\u8981\u6d88\u706d\u7684\u201c\u4e0d\u89c4\u6a21\u5316\u201d\u6096\u8bba\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u521b\u59cb\u4eba\u80cc\u666f\uff08\u505a\u8fc7lead gen\u3001\u505a\u8fc7Supademo\uff09\u8ba9Nimbia\u770b\u8d77\u6765\u50cf\u201c\u95ee\u9898\u8001\u624b\u201d\u7684\u7cbe\u51c6\u89e3\uff0c\u4f4618\u4e2a\u6708\u7684\u7814\u53d1\u5468\u671f\u4e5f\u610f\u5473\u7740\uff0c\u5f53GPT-5\u6216\u66f4\u7ec6\u7c92\u5ea6\u7684UI Agent\u6a21\u578b\u6210\u719f\u65f6\uff0c\u8fd9\u4e2a\u62a4\u57ce\u6cb3\u53ef\u80fd\u4e00\u591c\u53d8\u6d45\u3002\u77ed\u671f\u770b\uff0c\u5b83\u662f\u6548\u7387\u5de5\u5177\uff1b\u957f\u671f\u770b\uff0c\u5b83\u80fd\u5426\u4ece\u201cOnboarding Caller\u201d\u8fdb\u5316\u4e3a\u201c\u7ec8\u8eab\u4ea7\u54c1\u6559\u7ec3\u201d\uff0c\u624d\u662f\u4f30\u503c\u60f3\u8c61\u529b\u7684\u5206\u6c34\u5cad\u3002\u806a\u660e\uff0c\u4f46\u522b\u6025\u7740\u5c01\u795e\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\">Nimbia<\/span>\n                <\/div>\n<div class=\"comment-content\">Nimbia is an AI that does screen-sharing calls to onboard and train new users of software products. It speaks, listens, and can actually click on the user&#8217;s screen, so it can be truly helpful. The very first company using Nimbia is growing 40% faster because of it. When they ran an A\/B test against their previous onboarding solution, Nimbia delivered 1.4X higher week-one activation and trial-to-paid conversion rates.<\/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! \ud83d\udc4b<\/p>\n<\/p>\n<p><strong>Maker here. Some backstory on why this exists.<\/strong><\/p>\n<\/p>\n<p>My first B2B company was a lead gen product, where I personally onboarded every single customer 1-on-1. My next product was in user onboarding itself (demo videos, similar to Supademo). So I\u2019ve spent years inside this problem: those calls work, but they don\u2019t scale, so most users never get one.<\/p>\n<\/p>\n<p>About two years ago, right when GPT-4o came out, I ran an experiment. I gave it a goal inside our app plus a screenshot, and asked for the next step. I performed that step myself, sent it the new screenshot, and asked again. It walked through the entire flow on the first attempt. I hadn\u2019t expected that at all, and it took me a while to realize what it meant: someone was going to use this to replicate those 1-on-1 calls, and that would obliterate the legacy approach of product tours, help docs and tooltip overlays. I figured that someone should be me.<\/p>\n<\/p>\n<p>Going from that experiment to an AI that reliably does live screen-sharing calls with real users turned out to be very hard. It took our team 18 months. But it works now: it talks with your users like a human CS agent would, it sees their screen and clicks on things for them, and you add it to your app with a single line of JavaScript. We train it on your product, even on recordings of your past onboarding calls.<\/p>\n<\/p>\n<p>The first company running it is growing 40% faster.<\/p>\n<\/p>\n<p>Happy to answer anything about how we built this, what broke along the way, or where it&#8217;s going.<\/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>Congratulations on the launch! It&#8217;s something that I would like to try. Does it know where the payment wall is? What happens with the call when user gets redirected to the payment provider and back? Does it pause and continue when the user returns or does it loose the thread there?<\/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\/@alieksia\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alieksia<\/a>&nbsp;thanks a lot! Our AI explicitly cannot see payment information; only the page context around it. We had to build this product with privacy top of mind, because one of our customers has to be HIPAA compliant, so we&#8217;re pretty strict about those things.<\/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\">seems like a super interesting product solving a real pain point. onboarding customers at scale is hard!!<\/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\/@jobrietbergen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jobrietbergen<\/a>&nbsp;thanks! yes that&#8217;s hard indeed. even for the best product-led companies in the business it&#8217;s difficult. especially more mature products have such a large surface area that people still get lost. a poster-child of PLG is Miro; I know from the inside there that they faced huge challenges getting their users to even just discover their other products.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>This is going to help a lot to improve new user conversion rates to paid! Can you have complete free-form conversations with the AI? How are you preventing prompt-injections from screen content?<\/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\/@burpee\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@burpee<\/a>&nbsp;yes free-form conversations, but grounded of course so it doesn&#8217;t hallucinate. we&#8217;ve indeed considered prompt injections from screen content, and our guardrails take care of that \ud83d\ude05<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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. I had a chance to try an early version of this product, it&#8217;s great!<\/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\/@thijsc\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@thijsc<\/a>&nbsp;Thanks Thijs! Also thanks a lot for all of your feedback, ideas (and friendship)!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>What a cool application of AI. I&#8217;m always clicking away launch tours, but this way It can actually help me with what I want to do. Is the idea that it&#8217;s only there for the onboarding or also for later on in the journey as interactive help functionality<\/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\/@markijbema\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@markijbema<\/a>&nbsp;Thanks! It can definitely be used for support. But we&#8217;re focusing on onboarding first because that&#8217;s the highest-leverage point to start 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<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Wow, great idea! Much better than our plan to record videos for customers that can&#8217;t find a common schedule slot with us!<\/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\/@artk\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@artk<\/a>&nbsp;thanks! yeah 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>Can it also just literally call my parents?!<\/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\/@robertgaal\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@robertgaal<\/a>&nbsp;That&#8217;s on the roadmap but was too hard to put into the V1.<\/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\">This really beats the old product tours that highlight random parts of an app and always make me reach for the skip button. Looks cool!<\/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\/@juice10\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@juice10<\/a>&nbsp;Yeah those are super super annoying! It&#8217;s always best to get 1-on-1 help from the company directly, but that&#8217;s too expensive, so companies had no alternative but those annoying click-throughs. That&#8217;s why we built Nimbia.<\/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>Getting closer and closer to Her<br \/>(the movie)<\/p>\n<p>Great work, Joris!<br \/>Jonno, what a clean and beautiful design \ud83e\ude75<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Joris \ud83d\udcaa Super cool product, man!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@sneas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sneas<\/a>&nbsp;\u2764\ufe0f<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 screenshot experiment was two years ago, and it still took your team eighteen months to make it reliable enough to put in front of real users. Congrats on getting it out the door.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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_kahan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ben_kahan<\/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>Tested a very first version of the product which was already amazing! Excited to see where thinks 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@woutlaban\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@woutlaban<\/a>&nbsp;\ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Brilliant stuff. Everything coming from <a href=\"https:\/\/www.producthunt.com\/@machielse\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"machielse\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@machielse<\/a> is something I keep an eye on, and this one really grabbed my attention. Works just great. Can&#8217;t emphasize this enough. It&#8217;s amazing how something that&#8217;s so complex under the hood works so elegantly and smoothly.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@munkius\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@munkius<\/a>&nbsp;Thanks Sander!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Lekker Joris, congrats! Been giving screenshare demos for Salonized myself for years so I get exactly why you built this. 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@jorritpost\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jorritpost<\/a>&nbsp;thanks Jorrit!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 given so many product demos over screenshare to small contractors, always walking the customer through it themselves while I explained stuff live. Obviously it converted way better than without, but it ate up a lot of my time.<\/p>\n<\/p>\n<p>At the same time, I valued the personal contact. Those calls gave me a ton of feedback on the product itself: hearing what people actually get stuck on, the words they use for their problem, stuff you&#8217;d never get from a support ticket.<\/p>\n<\/p>\n<p>Nimbia takes that call off your plate, which is great. Curious though how you&#8217;re handling that feedback loop. When the AI runs the call instead of me, how do I still get that &#8220;oh interesting, they always struggle here&#8221; insight? Feels like that&#8217;s the hardest part to replace.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@steuijt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@steuijt<\/a>&nbsp;Nothing beats live calls with the actual founders! But we mine feedback of course through the transcripts and call recordings.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 send Google Docs with instructions and screenshots, this is the ideal replacement!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@joris_falter\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@joris_falter<\/a>&nbsp;ha good old google docs!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/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\/@machielse\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"machielse\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@machielse<\/a>. The product looks really helpful and really like the website design. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@paul_richards1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@paul_richards1<\/a>&nbsp;thanks a lot! on all counts!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Wow&#8230;  this is solving each CS \/ onboarding painpoint i&#8217;ve ever had in the past. Looks like Nimbia is onto something, awesome to see! <\/p>\n<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@manouk_dr\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@manouk_dr<\/a>&nbsp;\ud83d\ude80<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 this. Product tours were always a poor stand-in for someone sitting next to you, and you&#8217;re basically putting that person back. Congrats on shipping it, Joris!<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@micheldegraaf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@micheldegraaf<\/a>&nbsp;Yes that&#8217;s it exactly. Thanks Michel!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Great timing for launching this. Its exactly what we have been looking for. I just signed up and eager to see the demo.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@mcoevert\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mcoevert<\/a>&nbsp;Awesome! See you 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>Congrats Joris. Most onboarding tools optimize the top of the funnel. Going after the users who&#8217;d normally get a link is the harder and more valuable half.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@henry_shear\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@henry_shear<\/a>&nbsp;\ud83d\udc4d<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Excellent launch, Nimbia is really super well rounded up. I love that I can just give all my call transcripts from our previous onboarding calls for Nimbia to learn all about my product, that&#8217;s really good<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@rogerio_chaves\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rogerio_chaves<\/a>&nbsp;Thank you! Yeah we often even just train the AI on video recordings of the calls that the founders had with their users in the past. Founders are the gold standard for onboarding because they have the deepest knowledge about their users, and their product. So we&#8217;re literally trying to replicate that kind of quality with our AI.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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, been waiting to see this ship! The use case I keep comin back to is field teams who barely touch software: site foremen, crop managers, hotel floor staff. What does activation actually look like for someone like that? Does a manager roll it out for the team, or does each user have to set it up themselves?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@evelien_hoeben\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@evelien_hoeben<\/a>&nbsp;It&#8217;s indeed built specifically for applications that have a lot of non-tech-savvy users (i.e. &#8220;normal people&#8221; ;-)) so this should be a huge help to them. The people managing the software platforms decide which of their users get Nimbia&#8217;s help. Traditionally they would only manually help the &#8220;top 10%&#8221; of their customers (i.e. the companies paying them the most amount of money). So only those 10% would get human help from Customer Success. Then the majority of their customers would just get sent a link to their self-service docs, even though those people would get the same product as the top 10%. That means the 90% would struggle a lot more with actually getting value out of the product. So they&#8217;re much more likely to get frustrated and even stop using it (early user churn is generally between 60 and 80%).<\/p>\n<p>We&#8217;re trying to solve that problem, <strong>by giving <em>all<\/em> users the super patient, empathic help that they deserve!<\/strong><\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Very cool! This is going to help to convert a lot more users into paying customers <\/p>\n<\/p>\n<p>Can you have a full conversation with the AI? How are you safeguarding it from prompt injections from screen content? <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@burpee\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@burpee<\/a>&nbsp;yes full on grounded conversation! safeguards against prompt injection are in place indeed! basically the main agent is separated from the agent that does the screen control<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/2LUVN6DSPZLZVG\" class=\"app-title\">Memoria<\/a><\/p>\n<div class=\"one-liner\">Search photos by text, speech, object &#038; faces. 100% offline.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">143<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Memoria \u662f\u4e00\u6b3e\u5b8c\u5168\u79bb\u7ebf\u7684\u672c\u5730\u76f8\u518c\u641c\u7d22\u5f15\u64ce\uff0c\u901a\u8fc7\u8bbe\u5907\u7aefAI\u8f6c\u5f55\u89c6\u9891\u8bed\u97f3\u3001\u8bc6\u522b\u622a\u56fe\u6587\u5b57\u4e0e\u4eba\u8138\/\u7269\u4f53\uff0c\u8ba9\u4f60\u7528\u4e00\u53e5\u8bdd\u6216\u4e00\u4e2a\u8bcd\u5c31\u80fd\u4ece\u6d77\u91cf\u7167\u7247\u89c6\u9891\u4e2d\u7cbe\u51c6\u627e\u5230\u76ee\u6807\uff0c\u544a\u522b\u65e0\u5c3d\u6eda\u52a8\u7ffb\u627e\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\/29e37da4-3cc6-4db5-9d45-a71408562816.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\/02cbf6c6-0915-4d85-b139-6ab413e41572.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\/0674db33-fbb0-44e8-b94e-a4c34cff5bef.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\/27be9f35-97e8-41ea-8846-796e56fbafb6.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\/919afa9c-e5ca-4a91-b739-f7031d6f81aa.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\/8d291b4b-82a1-4127-bf2a-0f4f74951abc.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=caWmgwb0eGs\"><source src=\"https:\/\/www.youtube.com\/watch?v=caWmgwb0eGs\" 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\">Privacy<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u672c\u5730AI\u641c\u7d22<\/span><br \/>\n            <span class=\"tag\">\u76f8\u518c\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">OCR\u6587\u5b57\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">\u8bed\u97f3\u8f6c\u5f55<\/span><br \/>\n            <span class=\"tag\">\u79bb\u7ebf\u9690\u79c1<\/span><br \/>\n            <span class=\"tag\">\u4eba\u8138\u8bc6\u522b<\/span><br \/>\n            <span class=\"tag\">\u65e0\u4e91\u7aef<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u7167\u7247\u68c0\u7d22<\/span><br \/>\n            <span class=\"tag\">\u4e70\u65ad\u5236<\/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\u6700\u5173\u5fc3\u5b58\u50a8\u5360\u7528\uff08\u786e\u8ba4\u4e0d\u590d\u5236\u539f\u6587\u4ef6\uff0c\u4ec5\u5efa\u6587\u672c\u7d22\u5f15\uff09\u53ca\u5927\u5e93\u652f\u6301\uff082\u4e07+\u6587\u4ef6\u53ef\u884c\uff09\uff1b\u8ba4\u53ef\u622a\u56fe\u6587\u5b57\u4e0e\u89c6\u9891\u8bed\u97f3\u641c\u7d22\u573a\u666f\uff1b\u8ffd\u95ee\u6a21\u578b\u4e0b\u8f7d\u673a\u5236\uff08Apple Speech\u514d\u4e0b\u8f7d\u3001Whisper\u7ea6460MB\u9700\u9996\u6b21\u62c9\u53d6\uff09\uff1b\u63d0\u51faOCR\/\u8f6c\u5f55\u5931\u8d25\u65f6\u201c\u65e0\u7ed3\u679c\u201d\u4e0e\u201c\u65e0\u5185\u5bb9\u201d\u7684\u56f0\u60d1\u5982\u4f55\u533a\u5206\uff0c\u5f00\u53d1\u8005\u672a\u76f4\u63a5\u56de\u5e94\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                Memoria\u7cbe\u51c6\u5207\u4e2d\u4e86\u82f9\u679c\u539f\u751f\u76f8\u518c\u7684\u81f4\u547d\u76f2\u533a\u2014\u2014\u5b83\u4e0d\u641c\u201c\u5185\u5bb9\u8bed\u4e49\u201d\uff0c\u53ea\u641c\u201c\u89c6\u89c9\u548c\u542c\u89c9\u6587\u672c\u201d\u3002\u5f53\u7528\u6237\u60f3\u627e\u4e00\u5f20\u5305\u542b\u201cWiFi\u5bc6\u7801\u201d\u7684\u622a\u56fe\u3001\u4e00\u6bb5\u670b\u53cb\u8bf4\u8fc7\u201c\u751f\u65e5\u5feb\u4e50\u201d\u7684\u89c6\u9891\uff0c\u4f20\u7edf\u76f8\u518c\u7684\u65f6\u95f4\u7ebf\u903b\u8f91\u5b8c\u5168\u5931\u6548\u3002\u8fd9\u6b3e\u4ea7\u54c1\u771f\u6b63\u7684\u4ef7\u503c\u4e0d\u5728\u201c\u641c\u7d22\u201d\uff0c\u800c\u5728\u201c\u628a\u4e0d\u53ef\u89c1\u7684\u4fe1\u606f\u53d8\u6210\u53ef\u68c0\u7d22\u7684\u7d22\u5f15\u201d\uff0c\u8fd9\u672c\u8d28\u4e0a\u662f\u5bf9\u672c\u5730\u5a92\u4f53\u8d44\u4ea7\u7684\u91cd\u65b0\u7ed3\u6784\u5316\u3002\u5f00\u53d1\u8005\u505a\u51fa\u4e86\u51e0\u4e2a\u5173\u952e\u4e14\u6b63\u786e\u7684\u53d6\u820d\uff1a\u7edd\u4e0d\u590d\u5236\u539f\u6587\u4ef6\uff0c\u53ea\u5efa\u8f7b\u91cf\u6587\u672c\u7d22\u5f15\uff08\u51e0\u5341MB\uff09\uff1b\u5c06\u6a21\u578b\u9009\u62e9\u6743\u4ea4\u7ed9\u7528\u6237\uff08Apple\u539f\u751f\u65e5\u8bed\u7cfb\u66f4\u7701\u7a7a\u95f4\u3001Whisper\u5f7b\u5e95\u79bb\u7ebf\u4f46\u5360460MB\uff09\uff1b\u9996250\u6761\u514d\u8d39\u8bd5\u7528\u7684\u9ec4\u91d1\u9975\u7b56\u7565\u3002\u8fd9\u79cd\u5766\u8bda\u2014\u2014\u627f\u8ba4\u7cfb\u7edf\u6a21\u578b\u6709\u4e91\u4ea4\u4e92\u98ce\u9669\u3001Whisper\u8017\u7535\u4e14\u9996\u6b21\u4e0b\u8f7d\u5927\u3001\u5bf9\u8349\u4e66\u548c\u4f4e\u8bed\u8bc6\u522b\u5dee\u2014\u2014\u53cd\u800c\u5efa\u7acb\u4e86\u4fe1\u4efb\u3002\u4f46\u9690\u5fe7\u540c\u6837\u660e\u663e\uff1a\u4e00\u662f\u201c\u96f6\u7ed3\u679c\u201d\u4e0e\u201c\u7d22\u5f15\u5931\u8d25\u201d\u7684\u8bed\u4e49\u9e3f\u6c9f\uff0c\u7528\u6237\u65e0\u6cd5\u5224\u65ad\u662f\u5185\u5bb9\u4e0d\u5b58\u5728\u8fd8\u662fAI\u6ca1\u8bfb\u51fa\u6765\uff0c\u8fd9\u662f\u4ea7\u54c1\u4fe1\u4efb\u7684\u6162\u6027\u6bd2\u836f\uff1b\u4e8c\u662f\u957f\u5c3e\u5546\u4e1a\u6a21\u5f0f\u8106\u5f31\uff0c\u4e00\u65e6Apple\u5728\u76f8\u518c\u4e2d\u8865\u9f50OCR\u6216\u8bed\u97f3\u641c\u7d22\uff0c\u7b2c\u4e09\u65b9\u5de5\u5177\u7684\u751f\u5b58\u7a7a\u95f4\u4f1a\u88ab\u8fc5\u901f\u6324\u538b\u3002\u524d\u6709Google Photos\u7684\u4e91\u5305\u6284\uff0c\u540e\u6709\u82f9\u679c\u7cfb\u7edf\u7ea7\u5347\u7ea7\u7684\u6f5c\u5728\u5a01\u80c1\uff0cMemoria\u5fc5\u987b\u9760\u201c\u6c38\u8fdc\u4e0d\u4e0a\u4e91\u201d\u7684\u504f\u6267\u7acb\u573a\u548c\u6781\u81f4\u7684\u672c\u5730\u7d22\u5f15\u901f\u5ea6\uff0c\u624d\u80fd\u5b88\u4f4f\u90a3\u6279\u771f\u6b63\u5728\u610f\u9690\u79c1\u7684\u4e13\u4e1a\u7528\u6237\u3002\u5f53\u524d143\u7968\u7684\u8d77\u6b65\u6570\u636e\u8bf4\u660e\u5b83\u627e\u5230\u4e86\u5171\u9e23\uff0c\u4f46\u79bb\u201c\u7206\u53d1\u201d\u8fd8\u5dee\u4e00\u4e2a\u201c\u7167\u7247\u5907\u6ce8\u540d\u201d\u8fd9\u6837\u7684\u6740\u624b\u7ea7\u5fae\u521b\u65b0\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\">Memoria<\/span>\n                <\/div>\n<div class=\"comment-content\">Tired of endless scrolling? Memoria is a local search engine for your camera roll. It uses on-device AI to transcribe video audio, read text in screenshots, and recognize faces and objects. No cloud, no subscriptions. Type what was said or written, it finds the media.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>How much space does the data take up? Is it reuploading the photos and videos to the app? I have <em>a lot<\/em> of media in my Photos app. Could it handle large libraries?<\/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>Great question <a href=\"https:\/\/www.producthunt.com\/@mattbinder\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mattbinder<\/a>. The short answer is no, Memoria does <strong>not<\/strong> duplicate or re-save your media!<\/p>\n<\/p>\n<p>It simply reads your existing camera roll in place and builds a lightweight text index to make everything searchable. Because this index is strictly text and metadata, the storage footprint is tiny (just a few dozen megabytes), even for massive libraries of 20,000+ items. So yes, it handles large libraries easily!<\/p>\n<\/p>\n<p>Full transparency though: that <em>initial<\/em> indexing scan will take some time and battery power since your phone&#8217;s chip is doing all the heavy lifting. Once that first scan is done, day-to-day updates are practically invisible.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 receipt example sold me, that is the exact search Apple Photos fails at. Doing it fully on device is also the harder engineering path, and the one that means I never have to wonder what a server saw. Where does the offline model start to struggle, handwriting or accents?<\/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>&nbsp;Thanks so much <a href=\"https:\/\/www.producthunt.com\/@yelyzaveta_kibets\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yelyzaveta_kibets<\/a>! You&#8217;re spot on about the engineering path, getting these models to run locally without melting the phone was a huge challenge, but zero server anxiety makes it 100% worth it.<\/p>\n<\/p>\n<p>To answer your question transparently: the on-device models do have limits. <\/p>\n<ul>\n<li>\n<p><strong>For OCR<\/strong>, it handles printed text and standard block handwriting beautifully, but it will absolutely struggle with messy cursive. <\/p>\n<\/li>\n<li>\n<p><strong>For audio<\/strong>, since we are running the Whisper &#8216;Small&#8217; model locally to protect your battery and storage, it handles accents surprisingly well, but its real kryptonite is mumbling. If a person isn&#8217;t articulating clearly, the local model will definitely struggle to transcribe it accurately.<\/p>\n<\/li>\n<\/ul>\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>honestly, screenshots of text conversations &#8211; I take one to remember an address or a plan someone mentioned, then a week later I can&#8217;t find it because I don&#8217;t remember which app it came from or what day. video audio search is the feature that would actually solve that for me since half the time it was said out loud, not typed. question on the on-device part: does the model that does the transcription\/face recognition ship with the app, or does it pull something down on first launch? asking because I&#8217;ve got an older iPhone and &#8220;100% offline&#8221; sometimes quietly means &#8220;downloads a few hundred MB the first time you open it.&#8221;<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<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;Spot on regarding text conversations &#8211; that exact scenario is why I built this.<\/p>\n<\/p>\n<p>To answer your question about the model size: you have two choices in the settings depending on your storage and privacy needs:<\/p>\n<ol>\n<li>\n<p><strong>Apple Speech: <\/strong>Uses native system transcription. Zero extra download, but Apple doesn&#8217;t give full transparency on what stays on-device versus what goes to their servers.<\/p>\n<\/li>\n<li>\n<p><strong>Whisper: <\/strong>Downloads a ~460MB model on first launch. It runs 100% locally on your hardware, handles edge cases better, and keeps everything completely offline.<\/p>\n<\/li>\n<\/ol>\n<p>If you are on an older iPhone and want to save space, you can use Apple&#8217;s engine. If you want absolute local execution without touching external servers, the Whisper model downloads once during setup and stays put.<\/p>\n<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/0f1eac6e-dc85-4218-9e22-2e317e593625.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<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p>that&#8217;s a genuinely useful tradeoff to expose as a setting rather than picking one for me. 460MB once for full offline accuracy is a fair price. going with Whisper.<\/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 everyone! I&#8217;m Anas, the maker of Memoria.<\/p>\n<p>I always found myself scrolling for 10 minutes just to find a specific meme, a receipt, or a video clip of a friend saying a specific word. You know the exact image or video is in your phone, but you just can&#8217;t find it.<\/p>\n<p>Apple Photos is limited when you want to search for text or audio. Google Photos works, but it requires a monthly subscription and forces you to upload your personal life to the cloud.<\/p>\n<p>I wanted a private alternative. <strong>Memoria indexes your camera roll locally.<\/strong> <\/p>\n<ul>\n<li>\n<p><strong>On-device AI:<\/strong> It transcribes video audio and reads text in your screenshots. Just type a word spoken in a video or a sentence written on a receipt, and the app finds the media.<\/p>\n<\/li>\n<li>\n<p><strong>100% private:<\/strong> Everything runs locally. There is no cloud processing and you don&#8217;t even need to create an account. Your data never leaves your phone.<\/p>\n<\/li>\n<li>\n<p><strong>No subscriptions:<\/strong> It&#8217;s completely free to test on your first 250 media. If you love it, the unlimited version is a one-time purchase heavily discounted for the launch period!<\/p>\n<\/li>\n<\/ul>\n<p>It&#8217;s free to test on your first 250 media. If you love it, the unlimited version is a one-time purchase, and it&#8217;s heavily discounted for the launch period!<\/p>\n<p>I will be here all day to answer your questions. I\u2019d be curious to know what is the hardest type of media for you to find in your camera roll right 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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@anasouh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anasouh<\/a>&nbsp;bro i js loved your idea&#8230; i mean, it&#8217;s one of the biggest problems i face everyday&#8230; sooo excited to use this app<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Hey <a href=\"https:\/\/www.producthunt.com\/@anasouh\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"anasouh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@anasouh<\/a> , one thing I keep thinking about with local search: if the OCR or the transcription doesn&#8217;t get a clean read, the media is still indexed, just with nothing useful attached to it. So the user searches, gets zero results, and can&#8217;t tell whether the media isn&#8217;t there or whether the text just didn&#8217;t come through. Have you found a way to surface that difference, or does it mostly not come up in practice?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/YMM5QLG2OGVHU6\" class=\"app-title\">coolplugz<\/a><\/p>\n<div class=\"one-liner\">A Claude orchestrator that saves developers loads of time<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">130<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Coolplugz \u662f\u4e00\u4e2a\u9762\u5411\u5f00\u53d1\u8005\u7684 Claude \u7f16\u6392\u5c42\uff0c\u81ea\u52a8\u4ece Jira\u3001GitHub\u3001Notion \u548c Slack \u6293\u53d6\u4e0a\u4e0b\u6587\u3001\u751f\u6210\u63d0\u793a\u8bcd\u5e76\u9a8c\u8bc1\u7f16\u7801\u4efb\u52a1\u5b8c\u6210\u5ea6\uff0c\u89e3\u51b3\u5f00\u53d1\u8005\u53cd\u590d\u5582\u4e0a\u4e0b\u6587\u3001\u76ef\u8fdb\u5ea6\u3001\u5ba1 PR \u7684\u9ad8\u9891\u8017\u65f6\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\/944e9e31-c857-4f42-8943-c352a654cd87.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\/c9a87239-d894-45d2-872d-7d089ffa3282.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\/555f3d28-3ec8-4e60-b69f-19644d82e5bd.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\/2572c143-070b-4083-ba1c-e579131bd89c.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\/7ab062ce-0623-43fa-8b61-03b19915e263.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\/5eab66b4-28ea-4a39-b79f-d8f87bf22b4a.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/AEACKmBa0QY\"><source src=\"https:\/\/youtu.be\/AEACKmBa0QY\" 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\">Development<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u7f16\u7a0b\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">Claude\u7f16\u6392<\/span><br \/>\n            <span class=\"tag\">MCP\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u6548\u7387<\/span><br \/>\n            <span class=\"tag\">\u4e0a\u4e0b\u6587\u805a\u5408<\/span><br \/>\n            <span class=\"tag\">\u4efb\u52a1\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">PR\u5ba1\u67e5<\/span><br \/>\n            <span class=\"tag\">CI\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">Jira\/Notion\u8054\u52a8<\/span><br \/>\n            <span class=\"tag\">\u63d0\u793a\u8bcd\u751f\u6210<\/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\u901f\u5ea6\u8868\u793a\u8ba4\u53ef\uff087\u520612\u79d2\u8dd1\u901aPR+CI\uff09\uff0c\u5e76\u5173\u6ce8CRISPE\u63d0\u793a\u8bcd\u7ed3\u6784\u662f\u5426\u539f\u751f\u652f\u6301\uff1b\u53e6\u4e00\u5219\u8d28\u7591\u6307\u5411\u4fe1\u606f\u51b2\u7a81\u5904\u7406\uff1a\u5f53Jira\u3001Notion\u3001GitHub\u6570\u636e\u77db\u76fe\u6216\u8fc7\u65f6\u65f6\uff0cCoolplugz\u662f\u4e3b\u52a8\u6807\u8bb0\u51b2\u7a81\uff0c\u8fd8\u662f\u76f2\u76ee\u4fe1\u4efb\u5355\u4e00\u6765\u6e90\uff1f\u76ee\u524d\u65e0\u5b98\u65b9\u56de\u590d\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                Coolplugz\u8e29\u4e2d\u4e86\u5f53\u524dAI\u7f16\u7801\u5de5\u5177\u6700\u771f\u5b9e\u7684\u75db\u70b9\uff1a\u4e0d\u662f\u6a21\u578b\u4e0d\u591f\u5f3a\uff0c\u800c\u662f\u5582\u7ed9\u6a21\u578b\u7684\u201c\u4f5c\u4e1a\u73af\u5883\u201d\u592a\u810f\u3002\u5b83\u628a\u5f00\u53d1\u8005\u7684\u65e5\u5e38\u5de5\u4f5c\u6d41\u2014\u2014\u7ffbJira\u3001\u67e5Notion\u3001\u770bGitHub\u8ba8\u8bba\u3001\u8d34CI\u62a5\u9519\u2014\u2014\u62bd\u8c61\u6210\u4e00\u4e2a\u81ea\u52a8\u5316\u7f16\u6392\u5c42\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u505a\u201c\u4e0a\u4e0b\u6587\u5de5\u7a0b\u201d\u3002\u8fd9\u4e2a\u65b9\u5411\u6bd4\u518d\u5806\u4e00\u4e2a\u4ee3\u7801\u751f\u6210\u5668\u6709\u4ef7\u503c\u5f97\u591a\uff0c\u56e0\u4e3aClaude Code\u8fd9\u7c7b\u5de5\u5177\u7684\u80fd\u529b\u8fb9\u754c\u5df2\u7ecf\u8db3\u591f\uff0c\u74f6\u9888\u5168\u5728\u8f93\u5165\u4fa7\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ea7\u54c1\u76ee\u524d\u5b58\u5728\u4e24\u4e2a\u81f4\u547d\u60ac\u7591\u3002\u7b2c\u4e00\uff0c\u4e0a\u4e0b\u6587\u6765\u6e90\u7684\u201c\u4fe1\u4efb\u4f18\u5148\u7ea7\u201d\u95ee\u9898\u88ab\u7528\u6237\u76f4\u63a5\u70b9\u540d\uff1a\u5f53Jira\u8bf4A\u3001GitHub\u4ee3\u7801\u8bf4B\u3001Notion\u53c8\u5199C\u65f6\uff0cCoolplugz\u7a76\u7adf\u662f\u4ee5\u4ec0\u4e48\u89c4\u5219\u88c1\u51b3\uff1f\u5982\u679c\u53ea\u662f\u7b80\u5355\u6309\u6765\u6e90\u5148\u540e\u8986\u76d6\uff0c\u90a3\u5b83\u4e0d\u8fc7\u662f\u4e2a\u811a\u672c\uff0c\u771f\u6b63\u7684\u667a\u80fd\u7f16\u6392\u5fc5\u987b\u5f15\u5165\u51b2\u7a81\u68c0\u6d4b\u548c\u7f6e\u4fe1\u5ea6\u8bc4\u4f30\u2014\u2014\u8fd9\u6070\u6070\u662f\u6700\u96be\u5543\u7684\u9aa8\u5934\u3002\u7b2c\u4e8c\uff0c7\u520612\u79d2\u8dd1\u5b8cPR+CI\u770b\u4f3c\u60ca\u8273\uff0c\u4f46\u4ee3\u4ef7\u53ef\u80fd\u662f\u8fc7\u5ea6\u6807\u51c6\u5316\uff1a\u5b83\u662f\u5426\u53ea\u64c5\u957f\u5904\u7406\u6a21\u677f\u5316\u4efb\u52a1\uff08\u4feebug\u3001\u52a0\u5355\u5143\u6d4b\u8bd5\uff09\uff0c\u800c\u9762\u5bf9\u67b6\u6784\u91cd\u6784\u3001\u8de8\u6a21\u5757\u8bbe\u8ba1\u8fd9\u7c7b\u6a21\u7cca\u9700\u6c42\u5c31\u4f1a\u9732\u602f\uff1f\u521b\u59cb\u4eba\u5728\u56de\u590d\u4e2d\u53ea\u5f3a\u8c03\u4e86\u201c\u8282\u7701\u65f6\u95f4\u201d\uff0c\u5bf9\u5931\u8d25\u7387\u3001\u4eba\u5de5\u4ecb\u5165\u6b21\u6570\u3001\u957f\u5c3e\u4efb\u52a1\u8868\u73b0\u53ea\u5b57\u672a\u63d0\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u66f4\u73b0\u5b9e\u7684\u95ee\u9898\u662f\uff0c\u8fd9\u7c7b\u5de5\u5177\u7684\u4ef7\u503c\u548cClaude Code\u81ea\u8eab\u7684\u6f14\u8fdb\u5f3a\u76f8\u5173\u3002Anthropic\u53ea\u8981\u5728\u539f\u751f\u5c42\u9762\u52a0\u5f3a\u4e0a\u4e0b\u6587\u8bb0\u5fc6\u548c\u4efb\u52a1\u62c6\u89e3\u80fd\u529b\uff0cCoolplugz\u7684\u201c\u7f16\u6392\u201d\u4f18\u52bf\u5c31\u4f1a\u88ab\u5feb\u901f\u7a00\u91ca\u3002\u5b83\u73b0\u5728\u7684\u62a4\u57ce\u6cb3\u4e0d\u662f\u6280\u672f\u58c1\u5792\uff0c\u800c\u662f\u5bf9\u7b2c\u4e09\u65b9\u5de5\u5177\u751f\u6001\uff08Jira\u3001Notion\u7b49\uff09\u7684\u6df1\u5ea6\u9002\u914d\u901f\u5ea6\u3002\u5982\u679c\u521b\u59cb\u56e2\u961f\u4e0d\u80fd\u5728\u4e0b\u4e2a\u7248\u672c\u7ed9\u51fa\u51b2\u7a81\u5904\u7406\u673a\u5236\uff0c\u5e76\u516c\u5e03\u4efb\u52a1\u6210\u529f\u7387\u548c\u4eba\u5de5\u5e72\u9884\u7387\u7684\u900f\u660e\u6570\u636e\uff0c\u8fd9\u6b3e\u4ea7\u54c1\u5927\u6982\u7387\u4f1a\u6ca6\u4e3a\u201c\u6f14\u793a\u60ca\u8273\u3001\u751f\u4ea7\u9e21\u808b\u201d\u7684\u77ed\u671f\u5de5\u5177\u3002\u65b9\u5411\u5bf9\u4e86\uff0c\u4f46\u79bb\u201c\u65e0\u9700\u76d1\u7763\u201d\u7684\u5ba3\u79f0\uff0c\u8fd8\u6709\u51e0\u573a\u786c\u4ed7\u8981\u6253\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\">coolplugz<\/span>\n                <\/div>\n<div class=\"comment-content\">An orchestration layer that guides Claude Code to deliver your coding tasks without requiring your constant supervision. It fetches your context from Jira, Github, Notion and Slack, writes your prompts and verifies that claude code completes tasks correctly.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey folks\ud83d\udc4b<\/p>\n<p>Im Tasos the maker of Coolplugz\ud83d\ude0e<\/p>\n<p>Really excited to be launching this.<br \/>\nAnd big shout out to @fmerian for the hunt\ud83d\ude4f<\/p>\n<p>I built this tool because I was spending way too much time daily gathering context from Jira tickets and notion documents, copy-pasting errors from CI back to coding agents, guiding claude code to work with the correct github repos and review PRs properly. And on top of that every time I was starting a new task or project i have to repeat this process.<\/p>\n<p>So I built Coolplugz, which is a custom mcp orchestrator tool that ensures Claude code delivers your tasks without you repeating instructions every 5 seconds. It guarantees that Claude Code has everything it needs to complete engineering tasks efficiently.<\/p>\n<p>Give it a go and let me know what you think \ud83d\ude01<\/p><\/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\/@fmerian\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fmerian<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@cryptosymposium\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cryptosymposium<\/a>&nbsp;are you running custom models for the CRISPE prompt structuring or is that native to the claude mcp? getting a full PR and CI pass done in 7m 12s is pretty fast tbh.<\/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\/@fmerian\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@fmerian<\/a>&nbsp; <a href=\"https:\/\/www.producthunt.com\/@cryptosymposium\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cryptosymposium<\/a> Congrats! Gathering context is often where coding agents get stuck. How does Coolplugz handle conflicting or outdated information across Jira, Notion, and GitHub? Does it flag the conflict or decide which source to trust?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"app-card\">\n<div class=\"app-header\">\n<div class=\"rank\">#8<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/XZKGFALU5JJJ4O\" class=\"app-title\">Purchase API by Agentcard<\/a><\/p>\n<div class=\"one-liner\">one API call and your agent buys anything online<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">118<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong><\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/c36bf996-a9eb-4704-a066-fc27f3769d37.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\/3354e6ec-cc50-4ae1-936b-dad336a8392d.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\/95815327-1c17-4eb8-bbc3-5322332eeaf4.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\/5fafc929-1c56-4cdb-acf9-1752fe1a71d5.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\/36b9916e-1700-41a9-8269-cdea5067ecf8.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\/544f1fd8-7de1-4354-b99e-ceb1003eda18.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\/e4956cd5-0007-4a8e-83d2-078d4bad9124.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\">Fintech<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/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>\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><\/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\">Purchase API by Agentcard<\/span>\n                <\/div>\n<div class=\"comment-content\">your agent can now buy things with one API call. tell it buy X from Y and Agentcard finds the product, runs checkout and pays with a single use card. works today with DoorDash, Amazon and most Shopify and Stripe stores. try it from agentcard.sh, your first order is free!<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">hi Product Hunt, I&#8217;m Karen, cofounder of Agentcard. we started with virtual cards for agents, then Buy for DoorDash. today we are opening the Purchase API, one call and your agent completes a whole purchase on DoorDash, Amazon and most Shopify and Stripe stores. would love your feedback, first order is free on our free plan \ud83d\ude42<\/div>\n<div class=\"comment-actions\">\n<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\/@keyserfaty\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@keyserfaty<\/a>&nbsp;love that you have a direct purchase api alongside the browser automations for openclaw. if we use the api for doordash, do you parse the exact cart totals for that $23.40 receipt yourself or does the agent still have to scrape 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>Looks like we cannot contact you guys : <a href=\"https:\/\/www.agentcard.sh\/contact\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.agentcard.sh\/contact<\/a> <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/d21c9c0a-88f9-4b61-8a01-bc6088e4b3c9.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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@quentinmousset\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@quentinmousset<\/a>&nbsp;email me at <a href=\"mailto:karen@agentcard.sh\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">karen@agentcard.sh<\/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\">#9<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/Q57SMSGYJL2BXW\" class=\"app-title\">Flare<\/a><\/p>\n<div class=\"one-liner\">The graph-first IDE and interactive map for agentic coding<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">116<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Flare \u662f\u4e00\u6b3e\u201c\u56fe\u8c31\u4f18\u5148\u201d\u7684\u4ee3\u7406\u7f16\u7801IDE\uff0c\u5c06\u4ee3\u7801\u4ed3\u5e93\u53ef\u89c6\u5316\u4e3a\u5b9e\u65f6\u66f4\u65b0\u7684\u6587\u4ef6\u4f9d\u8d56\u56fe\uff0c\u8ba9\u5f00\u53d1\u8005\u76f4\u89c2\u76d1\u63a7Claude Code\u3001Codex\u7b49AI\u4ee3\u7406\u7684\u6bcf\u6b21\u6539\u52a8\uff0c\u89e3\u51b3\u201c\u4ee3\u7406\u6539\u4e86\u4ec0\u4e48\u3001\u5f71\u54cd\u4e86\u8c01\u3001\u8981\u4e0d\u8981\u56de\u6eda\u201d\u8fd9\u4e00\u6838\u5fc3\u5931\u63a7\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\/c97f7205-0ced-4775-ab62-0f37449b8e2f.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\/08cc40d9-5e76-4f94-ac3a-d64ff5deb235.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\/a6abaa9d-1437-4149-a7c2-b7070e1041da.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\/a9232644-8d3c-4481-8b88-ba0146be44b3.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/AAZCzWqvKD0\"><source src=\"https:\/\/youtu.be\/AAZCzWqvKD0\" 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\">Vibe coding<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">AI\u7f16\u7a0b<\/span><br \/>\n            <span class=\"tag\">IDE<\/span><br \/>\n            <span class=\"tag\">\u53ef\u89c6\u5316\u56fe\u8c31<\/span><br \/>\n            <span class=\"tag\">\u4ee3\u7801\u5ba1\u67e5<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148<\/span><br \/>\n            <span class=\"tag\">MCP<\/span><br \/>\n            <span class=\"tag\">\u7248\u672c\u63a7\u5236<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u76d1\u63a7<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90<\/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\u5176\u89e3\u51b3\u201c\u4ee3\u7406\u7f16\u7801\u5931\u63a7\u201d\u8fd9\u4e00\u771f\u5b9e\u75db\u70b9\uff0c\u8ba4\u4e3a\u56fe\u8c31\u6bd4\u804a\u5929\u8bb0\u5f55\u66f4\u667a\u80fd\u3002\u4e3b\u8981\u7591\u95ee\u96c6\u4e2d\u4e8e\u591a\u4ee3\u7406\u5e76\u884c\u5de5\u4f5c\u65f6\u5982\u4f55\u6e05\u6670\u533a\u5206\u5e76\u5c55\u793a\u5404\u81ea\u6539\u52a8\uff0c\u671f\u5f85\u66f4\u7ec6\u7c92\u5ea6\u7684\u5f52\u5c5e\u4e0e\u51b2\u7a81\u53ef\u89c6\u5316\u80fd\u529b\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                Flare\u7cbe\u51c6\u51fb\u4e2d\u4e86\u5f53\u524d\u4ee3\u7406\u7f16\u7801\u6d6a\u6f6e\u4e2d\u6700\u5c34\u5c2c\u7684\u76f2\u533a\u2014\u2014AI\u5199\u4ee3\u7801\u7684\u901f\u5ea6\u5df2\u7ecf\u8fdc\u8d85\u4eba\u7c7b\u7406\u89e3\u4ee3\u7801\u7684\u901f\u5ea6\u3002PH\u4e0a116\u7968\u4e0d\u7b97\u7206\u6b3e\uff0c\u4f46\u8bc4\u8bba\u533a\u201c\u8fd9\u662f\u4e2a\u771f\u95ee\u9898\u201d\u7684\u5171\u9e23\uff0c\u6bd4\u6295\u7968\u6570\u66f4\u6709\u8bf4\u670d\u529b\u3002\u5b83\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u5f7b\u5e95\u653e\u5f03\u4e86\u201c\u5bf9\u8bdd\u6d41\u201d\u8fd9\u4e00\u8fc7\u65f6\u7684\u76d1\u63a7\u8303\u5f0f\uff0c\u8f6c\u800c\u7528\u4f9d\u8d56\u56fe\u8fd9\u79cd\u6570\u636e\u7ed3\u6784\u5316\u7684\u5e95\u5c42\u4e8b\u5b9e\u6765\u5448\u73b0\u53d8\u66f4\uff0c\u8fd9\u672c\u8d28\u4e0a\u662f\u5728\u4e3aAI\u65f6\u4ee3\u91cd\u5199\u201cdiff\u201d\u548c\u201ccode review\u201d\u7684\u5b9a\u4e49\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u7406\u5ff5\u4e0a\uff0c\u672c\u5730\u5316\u3001\u65e0\u8d26\u6237\u3001MIT\u534f\u8bae\u3001\u4e0d\u78b0\u4f60\u7684API key\uff0c\u8fd9\u4e9b\u53cd\u4e3b\u6d41\u505a\u6cd5\u53cd\u800c\u6210\u4e86\u5b83\u6700\u950b\u5229\u7684\u4fe1\u4efb\u72b6\u2014\u2014\u5728\u4e00\u4e2a\u6240\u6709\u5de5\u5177\u90fd\u60f3\u628a\u6570\u636e\u5f80\u4e91\u7aef\u62fd\u7684\u65f6\u4ee3\uff0c\u575a\u6301\u201c\u4f60\u7684\u673a\u5668\u3001\u4f60\u7684\u4ee3\u7801\u201d\u672c\u8eab\u5c31\u662f\u4e00\u79cd\u653f\u6cbb\u6b63\u786e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u4ef7\u503c\u4e0d\u5728\u201c\u770b\u201d\uff0c\u800c\u5728\u201c\u62e6\u201d\u3002\u5b83\u80fd\u5728\u4ee3\u7406\u91cd\u5199\u88ab\u5927\u91cf\u5bfc\u5165\u7684\u6838\u5fc3\u6587\u4ef6\u65f6\u4e3b\u52a8\u62c9\u4f60\u4ecb\u5165\uff0c\u8fd9\u662f\u76ee\u524d\u7edd\u5927\u591a\u6570agent\u5de5\u5177\u6b20\u7f3a\u7684\u5239\u8f66\u673a\u5236\u3002\u4f46\u98ce\u9669\u5728\u4e8e\uff1a\u56fe\u8c31\u53ef\u89c6\u5316\u5bf9\u8d44\u6df1\u5de5\u7a0b\u5e08\u662f\u798f\u5229\uff0c\u5bf9\u65b0\u624b\u53ef\u80fd\u662f\u566a\u97f3\u2014\u2014\u4f9d\u8d56\u56fe\u5728\u5927\u578bmonorepo\u91cc\u672c\u8eab\u5c31\u662f\u4e00\u5ea7\u8ff7\u5bab\u3002\u66f4\u8fdb\u4e00\u6b65\uff0c\u5b83\u81f3\u4eca\u53ea\u89e3\u51b3\u201c\u770b\u548c\u56de\u6eda\u201d\uff0c\u5e76\u672a\u89e3\u51b3\u201c\u5982\u4f55\u8ba9\u4ee3\u7406\u5c11\u72af\u9519\u201d\u8fd9\u4e00\u4e0a\u6e38\u95ee\u9898\uff0c\u672c\u8d28\u4ecd\u662f\u201c\u4e8b\u540e\u76d1\u7763\u201d\u800c\u975e\u201c\u4e8b\u524d\u7ea6\u675f\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u591a\u4ee3\u7406\u5e76\u884c\u5f52\u5c5e\u95ee\u9898\uff08\u8bc4\u8bba\u4e2d\u5df2\u6709\u7528\u6237\u63d0\u95ee\uff09\u82e5\u4e0d\u80fd\u4f18\u96c5\u89e3\u51b3\uff0c\u8fd9\u4e2a\u5de5\u5177\u5c06\u5f88\u5feb\u89e6\u53ca\u5929\u82b1\u677f\u3002\u6838\u5fc3\u5efa\u8bae\uff1a\u4e0e\u5176\u505a\u4e00\u4e2a\u6f02\u4eae\u7684\u56fe\u8c31IDE\uff0c\u4e0d\u5982\u628a\u8fd9\u4e2a\u5b9e\u65f6\u53d8\u66f4\u56fe\u6c89\u6dc0\u4e3a\u534f\u8bae\u6216\u63d2\u4ef6\uff0c\u5d4c\u5165\u5230\u73b0\u6709\u5de5\u4f5c\u6d41\u4e2d\u2014\u2014\u90a3\u624d\u662f\u66f4\u5927\u7684\u68cb\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\">Flare<\/span>\n                <\/div>\n<div class=\"comment-content\">Most agentic coding tools hand you a chat log. Flare hands you the map. Every file is a node, every import an edge, with a real terminal underneath where you run claude, codex or opencode. The graph updates live as the agent edits, attributes every write to whoever made it, and pulls you in when it rewrites something the rest of the app imports. Change bursts snapshot to local history you can diff and revert. Agents take work from a board over MCP. Your machine. No account. MIT licensed.<\/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 Flare because I kept losing track of what my agents were doing.<\/p>\n<p>You hand Claude Code or Codex a task, come back twenty minutes later, and<br \/>\nthere are thirty changed files and a chat transcript. The transcript tells<br \/>\nyou what the agent said. It doesn&#8217;t tell you that one of those files is<br \/>\nimported by nine others, or that the one change nothing tests is the one<br \/>\nholding the app together.<\/p>\n<p>So Flare reads the repo instead of the conversation. Files become nodes,<br \/>\nimports become edges, and the map updates as the agent writes. Every change<br \/>\nis attributed so when two agents cross over the same<br \/>\nfile you see it as a crossing on the map, not as a merge conflict tomorrow.<\/p>\n<p>A few things I&#8217;m glad I got right:<\/p>\n<p>\u2022 The terminal is a real terminal. Bring your own agent. Flare doesn&#8217;t wrap<br \/>\n  it, proxy it, or touch your keys.<br \/>\n\u2022 Every change burst is snapshotted locally, so you can diff and revert one<br \/>\n  file or the whole tree without involving git. You also get notified by every risky change and  have access to a &#8220;diff sub-graph&#8221; showing what changed in the last session.<br \/>\n\u2022 The task board is exposed over MCP, so the agent picks up work and asks its<br \/>\n  questions there. You&#8217;re both looking at the project rather than at each<br \/>\n  other&#8217;s messages.<br \/>\n\u2022 It all runs on your machine. No account, no telemetry, no cloud. MIT licensed.<\/p>\n<p>I&#8217;d love to hear how you&#8217;re keeping track of what your agents change right<br \/>\nnow, and if you try it, what the graph tells you about your own repo that<br \/>\nyou didn&#8217;t already know.<\/p><\/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\/@algonorhythm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@algonorhythm<\/a>&nbsp;This solve such a real problem with agentic coding. Seeing the actual impact of changes on the repo instead of digging through long transcripts feels like a much smarter way to stay in control.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@algonorhythm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@algonorhythm<\/a>&nbsp;This is a really thoughtful solution to a problem that&#8217;s becoming more common with agentic coding.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                                <span>\u25b2<\/span><br \/>\n                                <span>0<\/span>\n                            <\/div>\n<p>                            <span>\u56de\u590d<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Can multiple agents work on the same project at once while Flare shows their changes separately?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/5OOMHTQENABQUM\" class=\"app-title\">Ninj\u014d AI<\/a><\/p>\n<div class=\"one-liner\">AI sales agents on any channel that runs from Claude Code<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">115<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Ninj\u014d AI \u662f\u4e00\u6b3e\u57fa\u4e8e Claude Code \u7684 AI \u9500\u552e\u4ee3\u7406\u57fa\u7840\u8bbe\u65bd\uff0c\u901a\u8fc7 MCP \u534f\u8bae\u8ba9\u7528\u6237\u7528\u81ea\u7136\u8bed\u8a00\u5728 Instagram\u3001WhatsApp \u7b49\u6e20\u9053\u521b\u5efa\u3001\u6d4b\u8bd5\u5e76\u4f18\u5316\u81ea\u52a8\u5b8c\u6210\u9500\u552e\u95ed\u73af\uff08\u7ebf\u7d22\u7b5b\u9009\u3001\u8ddf\u8fdb\u3001\u6536\u6b3e\uff09\u7684 AI \u5458\u5de5\uff0c\u5185\u7f6e CRM \u548c\u7248\u672c\u56de\u6eda\uff0c\u5206\u949f\u7ea7\u4e0a\u7ebf\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\/75c033d7-8958-4cfb-9791-8d9eea89df32.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\/7500da8c-3d79-4637-9b3b-f75206930ccc.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\/3d01795d-3074-4134-8a02-22d0f5687cdb.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\/150e3400-ed2a-40b3-b92a-5f4e2cc2e416.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\">Sales<\/span><br \/>\n            <span class=\"tag\">SaaS<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u9500\u552e\u4ee3\u7406<\/span><br \/>\n            <span class=\"tag\">MCP\u670d\u52a1\u5668<\/span><br \/>\n            <span class=\"tag\">\u79c1\u57df\u8425\u9500\u81ea\u52a8\u5316<\/span><br \/>\n            <span class=\"tag\">\u5bf9\u8bdd\u5f0fCRM<\/span><br \/>\n            <span class=\"tag\">Claude Code\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">WhatsApp\/Instagram\u8425\u9500<\/span><br \/>\n            <span class=\"tag\">\u9500\u552e\u7ebf\u7d22\u57f9\u80b2<\/span><br \/>\n            <span class=\"tag\">\u4f4e\u4ee3\u7801AI\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">\u7535\u5546\u72ec\u7acb\u7ad9\u589e\u957f<\/span><br \/>\n            <span class=\"tag\">\u667a\u80fd\u5ba2\u670d\u8f6c\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\u80af\u5b9a\u5176\u5546\u4e1a\u5316\u843d\u5730\u80fd\u529b\uff08\u4fdd\u9669\u62a5\u4ef7\u3001\u9ad8\u5ba2\u5355\u4ef7\u9884\u7ea6\uff09\uff0c\u8ffd\u95ee\u5355\u5ba2\u6237\u6700\u9ad8\u8425\u6536\u6848\u4f8b\u53ca\u4eba\u673a\u4ea4\u63a5\u673a\u5236\uff1b\u6838\u5fc3\u7591\u8651\u96c6\u4e2d\u5728AI\u62df\u4eba\u5ea6\u4e0e\u7528\u6237\u53cdAI\u60c5\u7eea\uff0c\u4ee5\u53ca\u4f4e\u7f6e\u4fe1\u5ea6\u573a\u666f\u4e0b\u7684\u5408\u89c4\u98ce\u9669\u4e0e\u8f6c\u4eba\u5de5\u7b56\u7565\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                Ninj\u014d AI \u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u5b83\u6ca1\u6709\u8bd5\u56fe\u505a\u4e00\u4e2a\u201c\u66f4\u806a\u660e\u7684\u804a\u5929\u673a\u5668\u4eba\u201d\uff0c\u800c\u662f\u628a AI \u9500\u552e\u4ee3\u7406\u7684\u6574\u4e2a\u751f\u547d\u5468\u671f\uff08\u521b\u5efa-\u6d4b\u8bd5-\u5206\u6790-\u8fed\u4ee3\uff09\u5c01\u88c5\u6210\u4e86\u53ef\u88ab Claude\/ChatGPT \u76f4\u63a5\u8c03\u7528\u7684 MCP \u57fa\u7840\u8bbe\u65bd\u3002\u8fd9\u672c\u8d28\u4e0a\u662f\u4e00\u5957\u201c\u9500\u552e\u4f5c\u6218\u7cfb\u7edf\u201d\uff0c\u5176\u771f\u6b63\u62a4\u57ce\u6cb3\u4e0d\u662f\u6a21\u578b\u80fd\u529b\uff0c\u800c\u662f\u6c89\u6dc0\u7684 150+ \u751f\u4ea7\u73af\u5883\u9a8c\u8bc1\u8fc7\u7684\u63d0\u793a\u8bcd\u6a21\u677f\u3001\u53cd\u6a21\u5f0f\u5e93\u548c KPI \u8bc4\u5206\u89c4\u5219\u2014\u2014\u8fd9\u6070\u597d\u662f\u7edd\u5927\u591a\u6570 AI \u9500\u552e\u5de5\u5177\u6700\u6b20\u7f3a\u7684\u201c\u810f\u6d3b\u7d2f\u6d3b\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ece\u8bc4\u8bba\u770b\uff0c\u4ea7\u54c1\u786e\u5b9e\u89e3\u51b3\u4e86\u4ee3\u7406\u673a\u6784\u89c4\u6a21\u5316\u8fd0\u8425\u7684\u6838\u5fc3\u75db\u70b9\uff1a\u7528 3-4 \u4eba\u7ba1\u7406 150+ \u4ee3\u7406\uff0c\u5e76\u5728 4 \u5929\u6d3b\u52a8\u4e2d\u8ffd\u56de 47 \u7b14\u5f03\u5355\u4ed8\u6b3e\u3002\u4f46\u5fc5\u987b\u6307\u51fa\uff0c\u5176\u5546\u4e1a\u6a21\u5f0f\u7684\u8106\u5f31\u6027\u540c\u6837\u660e\u663e\uff1a\u9ad8\u5ea6\u7ed1\u5b9a Claude Code \u751f\u6001\uff0c\u4e00\u65e6 Anthropic \u8c03\u6574 MCP \u7b56\u7565\u6216\u63a8\u51fa\u539f\u751f\u7ade\u54c1\uff0c\u5b58\u5728\u88ab\u91dc\u5e95\u62bd\u85aa\u7684\u98ce\u9669\u3002\u5176\u6b21\uff0c\u6240\u8c13\u201c\u8bfb\u4f5c\u4eba\u7c7b\u201d\u7684\u627f\u8bfa\u5728 Instagram \u8fd9\u79cd\u9ad8\u793e\u4ea4\u654f\u611f\u573a\u666f\u4e2d\u662f\u628a\u53cc\u5203\u5251\uff0c\u5408\u89c4\u6027\uff08\u5982\u4fdd\u9669\u62a5\u4ef7\uff09\u548c\u7528\u6237\u5bf9 AI \u5192\u5145\u771f\u4eba\u7684\u4f26\u7406\u8d28\u7591\u4f1a\u662f\u5176\u89c4\u6a21\u5316\u8def\u4e0a\u7684\u9690\u5f62\u5730\u96f7\u3002\u6700\u540e\uff0c$750K \u7684\u7d2f\u8ba1 GMV \u5728 B2C \u79c1\u57df\u9500\u552e\u4e2d\u5e76\u4e0d\u7b97\u4eae\u773c\uff0c\u5176\u4ef7\u503c\u66f4\u591a\u5728\u4e8e\u9a8c\u8bc1\u4e86\u201cAI \u5168\u65e5\u65e0\u4f11\u8ffd\u5355\u201d\u5728\u51b2\u52a8\u6d88\u8d39\u573a\u666f\u4e2d\u7684 ROI\uff0c\u800c\u975e\u9769\u547d\u6027\u7a81\u7834\u3002\u82e5\u4e0d\u80fd\u4ece\u201c\u5e2e\u5ba2\u6237\u8d5a\u94b1\u7684\u5de5\u5177\u201d\u8fdb\u5316\u4e3a\u201c\u5ba2\u6237\u79c1\u57df\u8d44\u4ea7\u7684\u8fd0\u8425\u4e2d\u67a2\u201d\uff0c\u8fd9\u6ce2\u7ea2\u5229\u5403\u5b8c\u540e\u5f88\u5bb9\u6613\u88ab\u66f4\u4fbf\u5b9c\u3001\u66f4\u5782\u76f4\u7684\u7ade\u54c1\u6a21\u4eff\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\">Ninj\u014d AI<\/span>\n                <\/div>\n<div class=\"comment-content\">Ninj\u014d is infrastructure for AI sales agents on Instagram, WhatsApp &#038; every channel where you sell. Create, test, analyze and improve agents by talking to Claude, ChatGPT, Claude Code or Codex via MCP \u2014 backed by templates validated across 150+ production agents that closed real revenue ($750K generated for clients). Versioned changes with instant rollback, synthetic-conversation testing, follow-ups, keyword triggers and a built-in CRM. Zero to live in minutes. Start free with 1,000 messages.<\/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 I&#8217;m Lolo, one of the key members at Ninj\u014d.<\/p>\n<p>Two years ago we were a tiny agency building AI sales agents by hand for creators and coaches in LatAm. Fast-forward: we run 45+ clients and 150+ agents in production, handling millions of DMs on Instagram, WhatsApp and more channels.<\/p>\n<p>The only reason that&#8217;s possible is that we rebuilt our entire operation on top of Claude Code. We call it Cortex: every prompt template, KPI rubric, anti-pattern and playbook we learned from real conversations lives in one system that creates, tests, analyzes and improves agents.<\/p>\n<p>When MCP came out, it clicked: the product was never the dashboard. It&#8217;s the infrastructure plus the accumulated intelligence. So we exposed all of it through an MCP server. Today you can open Claude, Claude Code, Codex or ChatGPT and say &#8220;build me an agent for my client&#8217;s launch \u2014 qualify fast and send the payment link&#8221; \u2014 and it ships, connected to real DMs, verified, reversible.<\/p>\n<p>Some real numbers from production:<br \/>\n\u2022 $750K+ in sales generated from our agents &#8211; 1.9M conversations &#8211; millions of messages handled<br \/>\n\u2022 One agent did $65K in a single 4-day launch \u2014 839 conversations, recovering 47 declined payments one by one<br \/>\n\u2022 202 sales calls booked in one month on a single mentor&#8217;s Instagram<\/p>\n<p>There&#8217;s also Ninj\u014d Studio (web panel: real-time conversations, built-in CRM, funnel analytics) for when you want eyes on everything \u2014 but the day-to-day runs from a chat.<\/p>\n<p>For the PH community: 1,000 free messages, no credit card, with code PRODUCTHUNT. <\/p>\n<p>I&#8217;ll be here all day \u2014 ask me anything about running 150+ agents with 3-4 people, MCP design, or what actually converts in DMs. \ud83e\udd77<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>4<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>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\/@mcarmonas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mcarmonas<\/a>&nbsp;Thanks!<\/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 proposal \u2014 I&#8217;ll run a test on my end and get back to you. It&#8217;s a great fit for my current use case.<\/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\/@pablo_ferrero\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pablo_ferrero<\/a>&nbsp;Thanks! let us know your experience!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>More than an AI setter, a whole AI comercial solution. Amazing work! Lets see the automated CRM running<\/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\/@benjamin_sonne\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@benjamin_sonne<\/a>&nbsp;yes! we&#8217;re launching soon the agentic CRM and the new version of the UI.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 awesome&#8230; what&#8217;s the one use case that&#8217;s driven the most revenue for a single client so far? Would love a real example<\/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\/@agustin_oroquieta\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@agustin_oroquieta<\/a>&nbsp;Thanks! Few examples here:<\/p>\n<p>1. Launches. An agency client runs product launches over WhatsApp. In one 4-day launch a single agent: qualifying, handling objections, closing. <\/p>\n<p>The part I didn&#8217;t expect was where a real chunk came from: the agent chased declined payments one by one in the chat and recovered 47 of them. At launch peak every unanswered minute is money on the floor, and a human team physically cannot keep up with that volume inside that window.<\/p>\n<p>2. Ads \u2192 DM \u2192 high-ticket call (the most repeatable one). Way more boring, and it&#8217;s what most of our clients actually run: paid ads straight into IG\/WhatsApp DMs, the agent qualifies and books the call, a human closes. One client sits at 200+ booked calls a month, every month, ~$200K generated. Less spectacular than a launch spike, but it compounds instead of ending on day 4.<\/p>\n<p>3. The one I&#8217;m most excited about: an insurance broker. The agent quotes car insurance inside the chat, real quotes from 6 carriers, 29 options across 5 tiers, pulled live through a custom tool. You send a license plate and a postal code and get actual prices in the conversation instead of a link to a form. <\/p>\n<p>Happy to go deeper on the mechanics of any of 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>Hi Lorenzo,<\/p>\n<\/p>\n<p>this sounds extremely interesting and useful (and something that could help me cover the part where I, as someone who spent the last 20+ years writing software, suck) &#8211; is it safe to use this kind of product in the age where most of the content online is AI-generated and people are very quickly getting sick of seeing the usual AI patterns anywhere?<\/p>\n<\/p>\n<p>I am not trying to be annoying, I&#8217;d genuinely like to use this kind of product.<\/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\/@foobar_beer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@foobar_beer<\/a>&nbsp;Not annoying at all, it&#8217;s the right question. The AI-slop fatigue is real, but I think it&#8217;s mostly a <em>content<\/em> problem&#8230; mass-produced posts nobody asked for. We work 1:1 in DMs, where the person already raised their hand. And sounding human has been our whole focus from day one. We started with creators, where the agent had to represent an actual person. So we had no choice but to solve it. We&#8217;ve put a lot of development into exactly that, and at this point all our agents read as human.<\/p>\n<p>You can build a good agent in a few minutes using the MCP! Give it a try: <a href=\"https:\/\/www.ninjo.ai\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/www.ninjo.ai\/<\/a><\/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 insurance quoting example is a great one \u2014 that&#8217;s a use case where a bad answer is a compliance problem, not just an annoying one. how&#8217;s handoff handled when the agent isn&#8217;t confident mid-conversation? still feels like the hard part on multi-channel agents like this<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>0<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/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\/AJSTJ4ISNT6DBT\" class=\"app-title\">Altar II<\/a><\/p>\n<div class=\"one-liner\">The mechanical keyboard Apple never made<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">114<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Altar II \u662f\u4e00\u6b3e\u539a\u5ea6\u4ec54.75mm\u7684\u6781\u81f4\u8f7b\u8584\u5168\u673a\u68b0\u952e\u76d8\uff0c\u65e8\u5728\u7528\u771f\u5b9e\u673a\u68b0\u624b\u611f\u66ff\u6362\u82f9\u679cMagic Keyboard\uff0c\u89e3\u51b3Mac\u7528\u6237\u957f\u671f\u5728\u201c\u8584\u819c\u952e\u76d8\u624b\u611f\u5dee\u201d\u4e0e\u201c\u673a\u68b0\u952e\u76d8\u7b28\u91cd\u539a\u201d\u4e4b\u95f4\u59a5\u534f\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\/70de107c-5df7-4b4c-9840-a18ca9fe70de.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\/21e7ea29-0871-4854-9927-4a599f3e1d9c.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\/31f0f87e-b3a8-44ff-9280-5561c513211e.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\/68d4fb21-1bd0-4d89-9590-2b3221ea67c5.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\/60938e72-d030-4ac3-b4ba-036e610aec62.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\/2008b1cf-c4d3-4723-9af8-49114405bacf.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\/a121c74a-5dff-40b2-977f-3cb02c666728.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\/560a8fd5-9d38-4161-b9f4-a0a27ec74508.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\/1d06ecb4-a690-4ed7-95d9-cf6fee6bf793.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\/9ed8b126-94cb-4d25-afc3-de23d5944ae8.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\/be51293a-8358-4033-9287-48ff6807ddfd.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\/6d00e34d-bc91-40fa-8d8e-172ffcec4c03.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\/6f43c9ee-8930-4318-9bb6-507294eaf34d.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\/a30a7a54-1db6-4392-ada0-a322bf8cd371.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\/9fcd135e-29a6-46bc-8bc3-b175ac5a9a6f.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\/99828ace-1704-46fe-83ea-2349a7d0f3c2.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\/269e1aaf-99e4-48f6-bdef-25aec4cbfa6c.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\/f5890055-14d8-44f3-8b75-50e5585b58e2.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\/8e244935-7c62-44fb-9d04-79c59ae5ae5e.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\/bacb37f6-7cb5-46af-8d24-8ef14341f248.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\/8557772a-434b-4b8f-9e84-7b8855aa0312.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\/e031423b-53b0-4872-9feb-3b18bcefb356.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\/f28d3f9b-ae74-4abb-8b06-fa8224d549b9.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\/01f0ac5d-380f-4efa-96ee-9e325ee9aa12.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=rl-CEmrfALM\"><source src=\"https:\/\/www.youtube.com\/watch?v=rl-CEmrfALM\" 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\">Custom Keyboards<\/span><br \/>\n            <span class=\"tag\">Hardware<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u673a\u68b0\u952e\u76d8<\/span><br \/>\n            <span class=\"tag\">\u8d85\u8584\u952e\u76d8<\/span><br \/>\n            <span class=\"tag\">Mac\u5916\u8bbe<\/span><br \/>\n            <span class=\"tag\">\u5ba2\u5236\u5316\u952e\u76d8<\/span><br \/>\n            <span class=\"tag\">\u4f4e\u884c\u7a0b\u8f74\u4f53<\/span><br \/>\n            <span class=\"tag\">CNC\u94dd\u5408\u91d1<\/span><br \/>\n            <span class=\"tag\">\u82f9\u679c\u751f\u6001<\/span><br \/>\n            <span class=\"tag\">\u4f17\u7b79\u786c\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u684c\u9762\u7f8e\u5b66<\/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\u60ca\u53f9\u51764.75mm\u539a\u5ea6\u548c\u65c5\u884c\u4fbf\u643a\u6027\u3002\u6838\u5fc3\u7591\u95ee\u96c6\u4e2d\u5728\uff1a1\uff09\u914d\u5957App\u7684\u65cb\u94ae\/\u89e6\u89c9\u81ea\u5b9a\u4e49\u903b\u8f91\u5b58\u4e8e\u56fa\u4ef6\u8fd8\u662f\u8f6f\u4ef6\uff0c\u6362Mac\u662f\u5426\u9700\u91cd\u8bbe\uff1b2\uff09\u662f\u5426\u6709ISO\uff08\u6b27\u5f0f\u914d\u5217\uff09\u7248\u672c\uff1b3\uff09\u5b9e\u9645\u6253\u5b57\u58f0\u97f3\u8868\u73b0\uff1b4\uff091.8mm\u77ed\u884c\u7a0b\u662f\u5426\u4fdd\u7559\u4e86\u201c\u89e6\u5e95\u201d\u786e\u8ba4\u611f\u3002\u521b\u4f5c\u8005\u56de\u5e94\u79f0\u624b\u611f\u63a5\u8fd1MacBook\u4f46\u66f4\u786c\u6717\u3001\u6709\u660e\u786e\u6bb5\u843d\u611f\uff0c\u5e76\u63d0\u4f9b\u4e86\u5b98\u7f51\u5f55\u97f3\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                Altar II \u5728\u8425\u9500\u4e0a\u7cbe\u51c6\u51fb\u4e2d\u4e86Mac\u7528\u6237\u7684\u201c\u7cbe\u81f4\u7126\u8651\u201d\u2014\u2014\u7528\u94dd\u5408\u91d1\u4e00\u4f53\u6210\u578b\u548c4.75mm\u7684\u7269\u7406\u6781\u9650\uff0c\u628a\u201c\u673a\u68b0\u952e\u76d8\u201d\u4ece\u7406\u5de5\u7537\u684c\u9762\u56fe\u817e\u91cd\u65b0\u5305\u88c5\u6210\u82f9\u679c\u98ce\u7684\u5962\u4f88\u914d\u9970\u3002\u4ece\u5de5\u7a0b\u89d2\u5ea6\u770b\uff0c\u5b9a\u5236USB-C\u5916\u58f3\u3001\u538b\u7f29\u7535\u6c60\u548c\u5168\u9876\u90e8\u5143\u4ef6\u5e03\u5c40\u786e\u5b9e\u4f53\u73b0\u4e86\u8fd1\u4e4e\u504f\u6267\u7684\u786c\u4ef6\u5b9e\u529b\uff0c\u8fd9\u503c\u5f97\u5c0a\u656c\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u5ba1\u89c6\uff0c\u8fd9\u6b3e\u4ea7\u54c1\u672c\u8d28\u4e0a\u662f\u5728\u505a\u201c\u51cf\u6cd5\u201d\u7684\u9006\u5411\u5ba2\u5236\u5316\u30021.8mm\u884c\u7a0b\u548c\u52a0\u91cd\u6bb5\u843d\u611f\uff0c\u542c\u8d77\u6765\u50cf\u662f\u5bf9MacBook\u8774\u8776\u952e\u76d8\u7684\u201c\u5eb7\u590d\u8bad\u7ec3\u201d\uff0c\u800c\u975e\u673a\u68b0\u952e\u76d8\u7684\u7eaf\u7cb9\u4f53\u9a8c\u3002\u5bf9\u4e8e\u8ffd\u6c42Hipyo\u6216Topre\u90a3\u79cd\u201c\u6df1\u4e0d\u89c1\u5e95\u201d\u624b\u611f\u7684\u6838\u5fc3\u73a9\u5bb6\uff0c\u8fd9\u4f9d\u7136\u662f\u4e2a\u59a5\u534f\u7269\u3002\u771f\u6b63\u7684\u6f5c\u5728\u96f7\u533a\u5728\u4e8e\uff1a1\uff09249\u7f8e\u5143\u7684\u65e9\u9e1f\u4ef7\u5bf9\u4e00\u6b3e\u5c0f\u4f17\u952e\u76d8\u4e0d\u4fbf\u5b9c\uff0c\u4e14Kickstarter\u8df3\u7968\u98ce\u9669\u9ad8\uff1b2\uff09macOS\u751f\u6001\u4f9d\u8d56\u2014\u2014\u90a3\u6b3e\u539f\u751fApp\u548c\u56fa\u4ef6\u5b9a\u5236\u662f\u7075\u9b42\uff0c\u82e5\u540e\u7eed\u9002\u914d\u5dee\u6216\u7cfb\u7edf\u66f4\u65b0\u5c01\u88c5\uff0c\u786c\u4ef6\u4f53\u9a8c\u5c06\u5927\u5e45\u8d2c\u503c\uff1b3\uff09\u8bc4\u8bba\u91cc\u5bf9ISO\u914d\u5217\u7684\u8ffd\u95ee\u88ab\u65e0\u89c6\uff0c\u6697\u793a\u53ef\u80fd\u9996\u53d1\u4ec5\u9650ANSI\uff0c\u8fd9\u4f1a\u8ba9EU\u5e02\u573a\u76f8\u5f53\u4e00\u90e8\u5206\u6f5c\u5728\u7528\u6237\u76f4\u63a5\u6d41\u5931\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u5b83\u771f\u6b63\u7684\u4ef7\u503c\u4e0d\u662f\u201c\u6700\u597d\u7684\u952e\u76d8\u201d\uff0c\u800c\u662f\u201c\u6700\u4e0d\u673a\u68b0\u7684\u673a\u68b0\u952e\u76d8\u201d\u2014\u2014\u4e00\u79cd\u7ed9\u8ba8\u538c\u673a\u68b0\u952e\u76d8\u539a\u91cd\u611f\u3001\u53c8\u62d2\u7eddMagic Keyboard\u5ec9\u4ef7\u624b\u611f\u7684\u4eba\u63d0\u4f9b\u7684\u7b2c\u4e09\u9009\u9879\u3002\u82e5\u5b83\u80fd\u7ef4\u6301\u9ad8\u8d28\u91cf\u7684\u505a\u5de5\u548c\u8f6f\u4ef6\u7ef4\u62a4\uff0c\u6709\u673a\u4f1a\u6210\u4e3aMac\u684c\u9762\u7684\u8f7b\u5962\u6807\u914d\uff1b\u4f46\u82e5\u53ea\u662f\u4f17\u7b79\u4e00\u8f6e\u7684\u70ed\u5ea6\uff0c\u5b83\u53ea\u4f1a\u6210\u4e3a\u4e8c\u624b\u5e02\u573a\u91cc\u7684\u4e00\u4ef6\u6f02\u4eae\u7816\u5934\u3002\u9510\u8bc4\u7ed3\u8bba\uff1a\u5de5\u7a0b\u5947\u8ff9\uff0c\u4ea7\u54c1\u5b58\u7591\uff0c\u94b1\u5305\u614e\u5165\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\">Altar II<\/span>\n                <\/div>\n<div class=\"comment-content\">Shockingly thin, fully mechanical. Altar II combines a superlative typing experience with an unbelievable design.<\/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>Co-hunting something so physically beautiful with <a href=\"https:\/\/www.producthunt.com\/@conduit_design\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@conduit_design<\/a>. <\/p>\n<p>He called it \u201c<strong><em>the wildest keyboard I have ever seen<\/em><\/strong>\u201d\ud83e\udd2f<\/p>\n<p>At 4.75mm, Altar II barely looks like a mechanical keyboard. It sits almost as flat as a Magic Keyboard, without the usual height that comes with mechanical switches.<\/p>\n<p>The whole product is built around fitting a real mechanical typing experience into that almost impossibly thin frame. The switches still have 1.8mm of travel, and the engineering gets obsessive enough that even the USB-C housing had to be custom-made because normal ones were thicker than the keyboard.<\/p>\n<p>It\u2019s rare to see a hardware project nail the industrial design and acoustics this well!<\/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>Thanks  <a href=\"https:\/\/www.producthunt.com\/@zaczuo\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"zaczuo\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zaczuo<\/a> and <a href=\"https:\/\/www.producthunt.com\/@conduit_design\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"conduit_design\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@conduit_design<\/a> for hunting this, much appreciated!<\/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>Hi everyone, I&#8217;m Andrew, the creator of Altar II.<\/p>\n<\/p>\n<p>Altar II is an ultra-low profile (4.75mm) mechanical keyboard designed to replace your Magic Keyboard. It&#8217;s the keyboard I wish Apple made.<\/p>\n<\/p>\n<p>It has fully mechanical switches with 1.8mm of travel, a magnetically detachable dial, haptic feedback, a red backlight, a speaker, and a native macOS companion app. The chassis is a single piece of CNC-machined aluminium.<\/p>\n<\/p>\n<p>I&#8217;m a heavy Mac user and I feel Apple hasn&#8217;t given its keyboards the attention they deserve in terms of hardware, software or features, so I set out to change that. It has taken almost two years. The hardest parts were fitting a reasonably sized battery into the chassis and getting the power profiling right without touching the typing experience. There was also literally no space on the underside of the PCB, so every component had to go on top. Even the USB-C housing is custom because a standard one is thicker than the keyboard.<\/p>\n<\/p>\n<p>I&#8217;ve taken a lot of the feedback from our first keyboard, Altar I, and incorporated it into Altar II, including the detachable dial and pairing button placement.<\/p>\n<\/p>\n<p>Reservations are open now ($1 locks in the $249 price, against $349 retail). Kickstarter launches 10 November 2026.<\/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>At 4.75mm it is actually travel-viable. My current keyboard is a small brick that never leaves the desk. Question on the companion app: how much of the dial and haptic customization lives in app versus firmware? Asking because I want to know if my setup carries over on a second Mac or if I start from scratch each 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>Will this be available in ISO format at any 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>How does it sound when someone is typing? \ud83d\udc40 <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@ryanwrites\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryanwrites<\/a>&nbsp;There&#8217;s a typing test recorded on our website: <a href=\"https:\/\/electronicmaterialsoffice.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/electronicmaterialsoffice.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>A 4.75mm mechanical board is a compromise I did not think was possible. My Magic Keyboard is flat and lifeless, and every mechanical I tried sat on the desk like a brick. Did the short travel keep a real bottom out, or is that the tradeoff?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@yelyzaveta_kibets\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@yelyzaveta_kibets<\/a>&nbsp;In terms of typing feel, the closest comparison is a MacBook keyboard, but with more vertical travel and snappier feel. Altar II has 1.8mm travel whereas a MacBook has around 1.2mm. It doesn\u2019t sound like a lot but it makes a big difference. There\u2019s also a tactile \u201cbump\u201d which means you can feel when the switch actuates, and the weighting is heavier than a MacBook. It is a much different feeling than typing on a typical mechanical keyboard.<\/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\">#12<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/RTXOM7N7BNMKCO\" class=\"app-title\">Marble MCP<\/a><\/p>\n<div class=\"one-liner\">Manage your CMS content from Claude, Cursor, and Codex<\/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>Marble MCP \u662f\u4e00\u4e2a\u8ba9\u7528\u6237\u5728 AI \u7f16\u7a0b\u5de5\u5177\uff08Claude\u3001Cursor\u3001Codex\uff09\u5185\u76f4\u63a5\u7ba1\u7406 CMS \u5185\u5bb9\uff08\u53d1\u5e16\u3001\u6539\u5b57\u6bb5\u3001\u7ba1\u5a92\u4f53\uff09\u7684\u670d\u52a1\u5668\uff0c\u89e3\u51b3\u7684\u662f\u201c\u5199\u4ee3\u7801\u65f6\u88ab\u8feb\u8df3\u5230\u540e\u53f0\u505a\u5185\u5bb9\u7ef4\u62a4\u201d\u7684\u4e0a\u4e0b\u6587\u5207\u6362\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\/90865ff0-442d-4e44-b450-b3e20de3cc5a.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\/d73318f0-3ea2-4e30-97f2-ee53c0f54166.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\/f7f80536-70d5-4881-910f-314e806e4bf1.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\/e838cfbe-4c3b-4ada-9a92-b9aedc560490.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/FxzJCmu-y-k\"><source src=\"https:\/\/youtu.be\/FxzJCmu-y-k\" 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\">Writing<\/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\">MCP\u670d\u52a1\u5668<\/span><br \/>\n            <span class=\"tag\">CMS\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">AI\u7f16\u7a0b\u5de5\u5177\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u5185\u5bb9\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">Claude<\/span><br \/>\n            <span class=\"tag\">Cursor<\/span><br \/>\n            <span class=\"tag\">Codex<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u65e0\u5934CMS<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u8bc4\u8bba\u4e3b\u8981\u8868\u793a\u8ba4\u53ef\uff0c\u8ba4\u4e3a\u201c\u5728\u5199\u4f5c\u73b0\u573a\u76f4\u63a5\u66f4\u65b0\u5b57\u6bb5\u548c\u7ba1\u7406\u5a92\u4f53\u201d\u6bd4\u65b0\u589e\u82b1\u54e8AI\u529f\u80fd\u66f4\u52a1\u5b9e\uff0c\u80fd\u51cf\u5c11\u5185\u5bb9\u7ef4\u62a4\u7684\u52a8\u4f5c\u6210\u672c\u3002\u6682\u65e0\u5b9e\u8d28\u6027\u529f\u80fd\u63d0\u95ee\u6216\u6539\u8fdb\u5efa\u8bae\uff0c\u6574\u4f53\u53cd\u9988\u79ef\u6781\u4f46\u8f83\u6d45\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                Marble MCP \u7684\u4ef7\u503c\u4e0d\u5728\u201cAI \u5199\u5185\u5bb9\u201d\uff0c\u800c\u5728\u4e8e\u628a CMS \u4ece\u201c\u4eba\u670d\u52a1\u7684\u540e\u53f0\u201d\u964d\u7ea7\u4e3a\u201c\u6a21\u578b\u53ef\u8c03\u7528\u7684\u5de5\u5177\u201d\u3002\u8fd9\u987a\u5e94\u4e86\u4ece\u201c\u4eba\u7528 IDE + \u6d4f\u89c8\u5668\u5207\u6765\u5207\u53bb\u201d\u5230\u201cAgent \u4e00\u7ad9\u5f0f\u5b8c\u6210\u7f16\u7801\u4e0e\u5185\u5bb9\u8fd0\u7ef4\u201d\u7684\u5de5\u4f5c\u6d41\u8fc1\u79fb\u3002\u5bf9\u5f00\u53d1\u8005\u800c\u8a00\uff0c\u5b83\u6d88\u706d\u7684\u662f\u4f4e\u4ef7\u503c\u6253\u65ad\u2014\u2014\u4e0d\u7528\u9000\u51fa\u7ec8\u7aef\u53bb\u6539\u4e00\u4e2a meta description \u6216\u66ff\u6362\u4e00\u5f20\u56fe\uff0c\u8fd9\u786e\u5b9e\u662f\u4e00\u79cd\u771f\u5b9e\u7684\u6548\u7387\u89e3\u653e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u770b\uff0c92 \u7968\u548c\u96f6\u8d1f\u9762\u8bc4\u8bba\u7684\u753b\u9762\u8fc7\u4e8e\u201c\u5b89\u9759\u201d\u3002\u8bc4\u8bba\u533a\u8981\u4e48\u662f\u793c\u8282\u6027\u6367\u573a\uff0c\u8981\u4e48\u53ea\u662f\u590d\u8ff0\u529f\u80fd\uff0c\u6ca1\u6709\u4e00\u6761\u5173\u4e8e\u201c\u8ba4\u8bc1\u5982\u4f55\u4e0e\u56e2\u961f\u6743\u9650\u8054\u52a8\u201d\u201c\u5e76\u53d1\u5199\u51b2\u7a81\u600e\u4e48\u5904\u7406\u201d\u201cMCP \u534f\u8bae\u5728\u957f\u4e0a\u4e0b\u6587\u4e0b\u7684\u7a33\u5b9a\u6027\u201d\u7b49\u5b9e\u9645\u5de5\u7a0b\u95ee\u9898\u7684\u63d0\u95ee\u3002\u8fd9\u8bf4\u660e\u8be5\u4ea7\u54c1\u76ee\u524d\u66f4\u504f\u5411\u65e9\u671f\u5c1d\u9c9c\u8005\u7684\u53cb\u597d\u5305\uff0c\u800c\u975e\u7ecf\u53d7\u8fc7\u590d\u6742\u56e2\u961f\u534f\u4f5c\u8003\u9a8c\u7684\u6210\u719f\u65b9\u6848\u3002\u771f\u6b63\u7684\u5206\u6c34\u5cad\u5728\u4e8e\uff1a\u5f53\u4f60\u7684 CMS \u5185\u5bb9\u88ab AI Agent \u6539\u574f\u4e86\u3001\u88ab\u8bef\u6279\u5904\u7406\u4e86\uff0c\u5ba1\u8ba1\u548c\u56de\u6eda\u94fe\u8def\u662f\u5426\u8db3\u591f\u6e05\u6670\uff1fMCP \u53ea\u662f\u7ba1\u9053\uff0c\u771f\u6b63\u51b3\u5b9a\u4fe1\u4efb\u7684\u662f\u7ba1\u9053\u4e24\u7aef\u7684\u6cbb\u7406\u80fd\u529b\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u53e6\u5916\uff0cMarble MCP \u672c\u8d28\u4e0a\u662f\u5728\u8d4c\u201cAI \u7f16\u7a0b\u5de5\u5177\u6210\u4e3a\u672a\u6765\u7684\u8d85\u7ea7\u5e94\u7528\u5165\u53e3\u201d\u3002\u8d4c\u6ce8\u6b63\u786e\uff0c\u4f46\u5403\u4e0b\u8fd9\u4e2a\u7ea2\u5229\u7684\u4e0d\u662f\u5148\u505a MCP server \u7684\u4eba\uff0c\u800c\u662f\u8ba9\u5185\u5bb9\u64cd\u4f5c\u5177\u5907\u201c\u53ef\u89e3\u91ca\u3001\u53ef\u64a4\u9500\u3001\u53ef\u7248\u672c\u5316\u201d\u7684\u4eba\u3002\u5982\u679c Marble \u53ea\u628a MCP \u5f53\u4f5c\u63a5\u53e3\u5c42\uff0c\u672a\u80fd\u91cd\u5851 CMS \u7684\u6743\u9650\u6a21\u578b\u548c\u64cd\u4f5c\u65e5\u5fd7\uff0c\u90a3\u4e48\u5b83\u5f88\u5feb\u4f1a\u88ab\u539f\u751f\u96c6\u6210 MCP \u7684\u901a\u7528\u578b CMS\uff08\u5982 Notion\u3001WordPress \u7684\u5b98\u65b9 MCP\uff09\u53cd\u8d85\u3002\u76ee\u524d\u5b83\u8d62\u5728\u201c\u65e9\u534a\u6b65\u201d\uff0c\u4f46\u540e\u534a\u6b65\u2014\u2014\u4fe1\u4efb\u4e0e\u5b89\u5168\u2014\u2014\u624d\u662f\u62a4\u57ce\u6cb3\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\">Marble MCP<\/span>\n                <\/div>\n<div class=\"comment-content\">Marble now ships an MCP server, letting you manage your CMS content directly from AI coding tools like Claude, Cursor, and Codex. Create posts, update content, and manage media without leaving your editor or terminal.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey everyone \ud83d\udc4b<\/p>\n<p>We just shipped an MCP server for Marble. A lot of work is increasingly happening through AI agents now, so this gives you full access to managing your content creating posts, updating fields, managing media directly from tools like Claude, Cursor, and Codex, without ever touching the dashboard.<\/p>\n<p>Would love to hear what you think, and happy to answer any questions about how it works under the hood!<\/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<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@taqib\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@taqib<\/a>&nbsp;I appreciate that you\u2019re focusing on practical tasks like updating fields and managing media instead of just adding another AI feature. \ud83d\udc4d<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Keeping a site current is always the thing I quietly postpone because it means dropping what I am doing to go fiddle somewhere else. Doing it right where the writing already happens sounds calm and sane. Nice work Taqib.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@robin_de_lacroix\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@robin_de_lacroix<\/a>&nbsp;Thank you robin <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/N2HXC3OGDP4D6R\" class=\"app-title\">DockDuck<\/a><\/p>\n<div class=\"one-liner\">The native macOS file manager Finder should be<\/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>DockDuck \u662f\u4e00\u6b3e 100% Swift \u539f\u751f\u7684 macOS \u6587\u4ef6\u7ba1\u7406\u5668\uff0c\u7528\u6807\u7b7e\u9875\u3001\u53cc\u680f\u3001\u670d\u52a1\u5668\u8fde\u63a5\uff08SFTP\/SMB\uff09\u3001\u6279\u91cf\u91cd\u547d\u540d\u4e0e\u5373\u65f6\u641c\u7d22\uff0c\u76f4\u63a5\u5bf9\u6807 Finder \u7684\u8fdf\u949d\u4e0e\u7b2c\u4e09\u65b9 Electron \u66ff\u4ee3\u54c1\u7684\u81c3\u80bf\uff0c\u4e00\u6b21\u4ed8\u8d39\u4e70\u65ad\uff0c\u6587\u4ef6\u5168\u7a0b\u7559\u5728\u672c\u673a\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\/5e36738b-a85c-41f5-bf9d-6702b3184bb0.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\/7d5e378c-17bf-4ff1-9d3a-35200a7ffac0.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\/f612296e-e2f3-476f-9048-b19ffd3ad2bf.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\/b8e5cc37-99b7-434b-8dd0-6e2aececab22.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\/b8d98e07-d870-4202-b7f3-7bbc8bec8270.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\/54ed63ff-5c97-4196-8f44-de90e073441a.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\/c6f86a08-af0e-49aa-ab83-388c1cd81728.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\/18d93a20-3807-4d0a-8424-c3afda85f28e.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\/0189de4a-ac3e-4f04-bf9d-be1c09464366.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS \u6587\u4ef6\u7ba1\u7406\u5668<\/span><br \/>\n            <span class=\"tag\">\u539f\u751f Swift \u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">Finder \u66ff\u4ee3\u54c1<\/span><br \/>\n            <span class=\"tag\">\u53cc\u680f\u6587\u4ef6\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">SFTP\/SMB \u8fde\u63a5<\/span><br \/>\n            <span class=\"tag\">\u6279\u91cf\u91cd\u547d\u540d<\/span><br \/>\n            <span class=\"tag\">\u6807\u7b7e\u9875\u6d4f\u89c8<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u4f18\u5148\u9690\u79c1<\/span><br \/>\n            <span class=\"tag\">\u4e70\u65ad\u5236\u4ed8\u8d39<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u6700\u5173\u5fc3\u4e24\u70b9\uff1a\u4e00\u662f SFTP\/SMB \u51ed\u636e\u5b58\u50a8\u662f\u5426\u8d70 macOS \u94a5\u5319\u4e32\uff08\u5f00\u53d1\u8005\u786e\u8ba4\u7528\u6807\u51c6 Keychain\uff0c\u5bc6\u7801\u4e0d\u843d\u504f\u597d\u8bbe\u7f6e\uff0c\u4e14\u53ef\u9009\u6bcf\u6b21\u8be2\u95ee\uff09\uff1b\u4e8c\u662f\u65e7\u7248 Finder \u66ff\u4ee3\u54c1\u5728\u6eda\u52a8\u5927\u6587\u4ef6\u5939\u65f6\u5361\u987f\uff0c\u5f00\u53d1\u8005\u5f3a\u8c03\u96f6 Electron \u89e3\u51b3\u6b64\u75db\u70b9\u3002\u53e6\u6709\u7528\u6237\u5410\u69fd Finder \u79ef\u6028\u5df2\u4e45\uff0c\u671f\u5f85\u5176\u771f\u6b63\u88ab\u201c\u91cd\u65b0\u8bbe\u8ba1\u201d\uff0c\u5f00\u53d1\u8005\u56de\u5e94\u79f0\u613f\u5c06\u7528\u6237\u6028\u5ff5\u8f6c\u5316\u4e3a\u529f\u80fd\u6e05\u5355\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                DockDuck \u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u5b83\u7cbe\u51c6\u8e29\u4e2d\u4e86 macOS \u7528\u6237\u7684\u4e24\u5927\u75db\u70b9\uff1aFinder \u7684\u5341\u5e74\u4e0d\u601d\u8fdb\u53d6\uff0c\u4ee5\u53ca Electron \u6587\u4ef6\u7ba1\u7406\u5668\u201c\u6740\u5185\u5b58\u201d\u7684\u6076\u540d\u3002\u7528\u201c\u7eaf Swift + AppKit\u201d\u4f5c\u4e3a\u53d9\u4e8b\u951a\u70b9\uff0c\u672c\u8d28\u4e0a\u662f\u5728\u5411\u76ee\u6807\u7528\u6237\uff08\u5f00\u53d1\u8005\u3001\u8bbe\u8ba1\u5e08\u3001\u91cd\u5ea6\u6548\u7387\u63a7\uff09\u4ea4\u51fa\u4e00\u4efd\u4fe1\u4efb\u72b6\u2014\u2014\u8fd9\u7c7b\u4eba\u7fa4\u5b8c\u5168\u80fd\u5206\u8fa8\u539f\u751f\u548c\u58f3\u6d4f\u89c8\u5668\u7684\u6027\u80fd\u5dee\u5f02\uff0c\u4e5f\u613f\u610f\u4e3a\u201c\u4e0d\u8ba2\u9605\u3001\u4e70\u65ad\u5236\u201d\u7684\u6e05\u723d\u4e70\u5355\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u771f\u6b63\u503c\u5f97\u73a9\u5473\u7684\u4e0d\u662f\u6027\u80fd\uff0c\u800c\u662f\u521b\u59cb\u4eba\u5bf9\u7ec6\u8282\u7684\u6267\u5ff5\uff1a\u8bc4\u8bba\u91cc\u5173\u4e8e\u94a5\u5319\u4e32\u7684\u5b9e\u73b0\u65b9\u5f0f\uff0c\u4ed6\u4e0d\u4ec5\u56de\u7b54\u4e86\u201c\u7528 Keychain\u201d\uff0c\u8fd8\u8be6\u7ec6\u5230\u201cgeneric-password item\u201d\u3001\u201cwhen-unlocked \u53ef\u8bbf\u95ee\u6027\u201d\u3001\u201c\u7c98\u8d34 URL \u65f6\u5bc6\u7801\u81ea\u52a8\u5265\u79bb\u201d\u3002\u8fd9\u4e0d\u662f\u8425\u9500\u8bdd\u672f\uff0c\u662f\u5b9e\u6253\u5b9e\u7684\u5b89\u5168\u8bbe\u8ba1\u2014\u2014\u6070\u6070\u662f\u8fd9\u79cd\u56de\u7b54\uff0c\u624d\u80fd\u8ba9\u62c5\u5fc3\u670d\u52a1\u5668\u51ed\u636e\u6cc4\u9732\u7684\u7528\u6237\u6562\u628a SFTP \u5bc6\u7801\u4ea4\u51fa\u6765\u3002\u8fd9\u6bd4\u4efb\u4f55\u201c\u6211\u4eec\u5c0a\u91cd\u9690\u79c1\u201d\u7684\u6807\u8bed\u90fd\u6709\u6548\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u7f3a\u9677\u540c\u6837\u660e\u663e\uff1a89 \u7968\u5c5e\u4e8e\u65e9\u671f\u5c0f\u89c4\u6a21\u53d1\u5e03\uff0c\u8bc4\u8bba\u533a\u53ea\u6709\u4e00\u6761\u5b9e\u8d28\u8ffd\u95ee\uff0c\u8bf4\u660e\u4ea7\u54c1\u8fd8\u6ca1\u7ecf\u5386\u201c\u5343\u4eba\u5343\u9762\u201d\u7684\u6b8b\u9177\u68c0\u9a8c\u3002\u6807\u7b7e\u3001\u6279\u91cf\u91cd\u547d\u540d\u3001\u670d\u52a1\u5668\u8fde\u63a5\u8fd9\u4e9b\u529f\u80fd\uff0cFinder \u63d2\u4ef6\u6216\u5f00\u6e90\u5de5\u5177\uff08\u5982 ForkLift\u3001Nimble Commander\uff09\u65e9\u5df2\u8986\u76d6\uff0cDockDuck \u5fc5\u987b\u8bc1\u660e\u81ea\u5df1\u5728\u201c\u539f\u751f\u7f8e\u611f\u201d\u548c\u201c\u6d41\u7545\u6eda\u52a8\u201d\u4e4b\u5916\uff0c\u8fd8\u6709\u4e0d\u53ef\u66ff\u4ee3\u7684\u4ea4\u4e92\u903b\u8f91\u3002\u5426\u5219\uff0c\u5b83\u5f88\u5bb9\u6613\u6ca6\u4e3a\u201c\u53c8\u4e00\u6b3e\u6f02\u4eae\u7684 Finder \u76ae\u80a4\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u62a4\u57ce\u6cb3\u5728\u4e8e\u201c\u4e70\u65ad + \u65e0\u8ba2\u9605 + \u672c\u5730\u4f18\u5148\u201d\u7684\u7ec4\u5408\u4fe1\u4efb\u8d44\u4ea7\u3002\u5728 SaaS \u6cdb\u6ee5\u7684\u5f53\u4e0b\uff0c\u8fd9\u79cd\u59ff\u6001\u80fd\u5438\u5f15\u4e00\u6279\u201c\u53d7\u591f\u4e86\u6708\u8d39\u201d\u7684\u5fe0\u5b9e\u6838\u5fc3\u7528\u6237\uff0c\u4f46\u80fd\u5426\u6269\u5708\uff0c\u53d6\u51b3\u4e8e\u4ed6\u80fd\u5426\u628a\u201c\u79ef\u6028\u201d\u8f6c\u5316\u6210\u53ef\u6301\u7eed\u66f4\u65b0\u7684\u529f\u80fd\u6e05\u5355\u2014\u2014\u800c\u4e0d\u662f\u5728\u65e9\u671f\u7248\u672c\u91cc\u6c89\u8ff7\u96d5\u82b1\u3002\u6bd5\u7adf\uff0c\u6587\u4ef6\u7ba1\u7406\u5668\u662f\u57fa\u5efa\uff0c\u7528\u6237\u5bb9\u5fcd\u7684\u662f\u7a33\u5b9a\u4e8b\u6545\uff0c\u4e0d\u662f\u98ce\u683c\u70ab\u6280\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\">DockDuck<\/span>\n                <\/div>\n<div class=\"comment-content\">DockDuck is the native macOS file manager Finder should be \u2014 fast, beautiful, and 100% Swift. Tabs, dual-pane, a pinned Start dashboard, tags, instant search, batch rename, and connect to servers(SFTP\/SMB) \u2014 all in one window that opens the moment you click. Pay once, no subscription. Your files never leave your Mac.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>congrats on shipping this solo, the &#8220;zero Electron&#8221; framing is doing a lot of work and honestly for a file manager it should &#8211; I&#8217;ve quit using more than one &#8220;modern Finder&#8221; alternative purely because it lagged scrolling a folder with a few thousand files. curious about the SFTP\/SMB piece though &#8211; when you save server credentials, are those going into the macOS Keychain or do you roll your own storage for that? that&#8217;s usually the detail that decides whether I trust a new file manager with my actual server logins or just use it for local stuff.<\/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;Thanks! And good question &#8211; it&#8217;s the real macOS Keychain, not my own storage. Each saved server gets a standard generic-password Keychain item (you can see them in Keychain Access under app.dockduck.server), stored with when-unlocked accessibility so they&#8217;re not readable pre-unlock after a reboot. The connection metadata (host, user, port) lives in app preferences, but the password never gets written there,   even if you paste a full <a target=\"_blank\" rel=\"nofollow noopener noreferrer\">sftp:\/\/user:pass@host<\/a> URL, the password portion is split off and goes straight to the Keychain. Saving the password is also optional; you can just get prompted each time.<\/p>\n<\/p>\n<p>Rolling my own credential storage would&#8217;ve gone against the whole premise of the app &#8211; the point of zero-Electron\/all-native is that you get to lean on the platform&#8217;s security primitives instead of reinventing 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>Hey <a href=\"https:\/\/www.producthunt.com\/@mnemosynee\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"mnemosynee\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mnemosynee<\/a> Martin, I have quietly resented Finder for years and long since stopped expecting better, so watching someone finally give it a proper rival feels good.<\/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\/@jean_noel_escande\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jean_noel_escande<\/a>&nbsp;Thank you =), that&#8217;s exactly the itch that started this. I kept waiting for Finder to get its &#8220;Apple redesigns their own app&#8221; moment and eventually decided to stop waiting. If there&#8217;s a Finder frustration you&#8217;ve been quietly carrying for years, I&#8217;d genuinely love to hear it, those grudges make the best feature list. <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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>Hey Product Hunt \ud83d\udc4b I&#8217;m Martin, the solo developer behind DockDuck.<\/p>\n<p>I&#8217;ve lived on a Mac for years, and Finder always felt\u2026 stuck. It barely changes, and every &#8220;alternative&#8221; was either a powerful-but-dated power tool, or an Electron app that ate my RAM and battery just to list files.<\/p>\n<p>I wanted something that felt like Apple made it \u2014 fast, native, genuinely beautiful \u2014 but with the power features I actually reach for: dual-pane, connecting to servers, batch rename, tags, and a pinned dashboard for the stuff I open every day.<\/p>\n<p>So I built DockDuck. 100% Swift and AppKit, zero Electron. It opens instantly, stays out of your way, and your files never leave your Mac. And it&#8217;s pay-once (or yearly) \u2014 no subscription, because I&#8217;m tired of those too.<\/p>\n<p>It&#8217;s a free 14-day Pro trial, no card needed. And for the PH community, PRODUCTHUNT21 takes 10% off any plan until Sept 30.<\/p>\n<p>This is an early launch and I&#8217;m building it in public. I&#8217;d genuinely love your feedback on what would make DockDuck your daily file manager \u2014 and I&#8217;m happy to talk about how it&#8217;s built, the design decisions, any of it. \ud83e\udd86<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<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\/@mnemosynee\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@mnemosynee<\/a>&nbsp;The SFTP and SMB connections are the part worth asking about first. Where do those credentials live, Keychain or an app local store? That matters for restore scenarios, since a Time Machine restore or a fresh macOS install either carries them over cleanly or it doesn&#8217;t, and that&#8217;s usually where file manager add ons quietly break for people. Which way did you build 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<\/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\/E37NYCZNQQHBT6\" class=\"app-title\">Keymap<\/a><\/p>\n<div class=\"one-liner\">Every shortcut, one \u2318\u2318 away.<\/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>Keymap \u662f\u4e00\u6b3e macOS \u83dc\u5355\u680f\u5de5\u5177\uff0c\u901a\u8fc7\u53cc\u51fb \u2318 \u952e\u5373\u65f6\u5524\u51fa\u5f53\u524d\u5e94\u7528\u7684\u6240\u6709\u83dc\u5355\u5feb\u6377\u952e\u9762\u677f\uff0c\u89e3\u51b3\u952e\u76d8\u91cd\u5ea6\u7528\u6237\u201c\u8bb0\u4e0d\u4f4f\u5feb\u6377\u952e\u201d\u6216\u201c\u8de8\u5e94\u7528\u5feb\u6377\u952e\u6df7\u4e71\u201d\u7684\u75db\u70b9\uff0c\u5168\u7a0b\u672c\u5730\u8fd0\u884c\u3001\u65e0\u9700\u8d26\u53f7\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\/b3ab14a7-2972-4c6e-8079-83a976d5e0ec.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\/2bc3e5c7-2e42-4685-8415-ff457edda2e7.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\/81d47a9d-b6a3-4a41-a05e-b73896a407a8.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\/3a113e4f-011b-4d09-a890-69abfa385af9.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\/b9a21623-4729-46f3-87aa-53530608fd9e.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Mac<\/span><br \/>\n            <span class=\"tag\">Productivity<\/span><br \/>\n            <span class=\"tag\">Custom Keyboards<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">macOS\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u83dc\u5355\u680f\u5e94\u7528<\/span><br \/>\n            <span class=\"tag\">\u5feb\u6377\u952e\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u6548\u7387\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u952e\u76d8\u751f\u4ea7\u529b<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u9690\u79c1<\/span><br \/>\n            <span class=\"tag\">\u51b2\u7a81\u68c0\u6d4b<\/span><br \/>\n            <span class=\"tag\">\u6309\u952e\u91cd\u6620\u5c04<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u8f85\u52a9\u529f\u80fdAPI<\/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\u5b9e\u65f6\u8bfb\u53d6\u83dc\u5355\u800c\u975e\u624b\u5de5\u6570\u636e\u5e93\u7684\u65b9\u6848\uff0c\u5e76\u597d\u5947\u5176\u517c\u5bb9\u6027\u3002\u5f00\u53d1\u8005\u786e\u8ba4\u901a\u8fc7 macOS \u8f85\u52a9\u529f\u80fd API \u8bfb\u53d6\uff0c\u652f\u6301\u6240\u6709\u5e94\u7528\u4e14\u65e0\u9700\u9010\u6b3e\u9002\u914d\u3002\u6709\u7528\u6237\u70b9\u8d5e\u51b2\u7a81\u68c0\u6d4b\u529f\u80fd\uff0c\u4f46\u672a\u53cd\u9988\u5177\u4f53\u4f7f\u7528\u95ee\u9898\u6216\u529f\u80fd\u7f3a\u5931\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                Keymap \u7684\u5de7\u5999\u4e4b\u5904\u5728\u4e8e\u201c\u964d\u7ef4\u6253\u51fb\u201d\u2014\u2014\u5b83\u8df3\u8fc7\u4e86\u4f20\u7edf\u5feb\u6377\u952e\u5de5\u5177\u201c\u624b\u5de5\u5efa\u5e93+\u5b9a\u671f\u66f4\u65b0\u201d\u7684\u7b28\u91cd\u6a21\u5f0f\uff0c\u76f4\u63a5\u5229\u7528 macOS \u8f85\u52a9\u529f\u80fd API \u4ece\u5e94\u7528\u83dc\u5355\u680f\u5b9e\u65f6\u6293\u53d6\u6570\u636e\u3002\u8fd9\u4e00\u8bbe\u8ba1\u8ba9\u5b83\u5728\u517c\u5bb9\u6027\u4e0a\u78be\u538b\u540c\u7c7b\u4ea7\u54c1\uff1a\u96f6\u9002\u914d\u6210\u672c\uff0c\u4e14\u6c38\u8fdc\u4e0e App \u7248\u672c\u540c\u6b65\u300289 \u7968\u7684\u4f53\u91cf\u867d\u5c0f\uff0c\u4f46\u8bc4\u8bba\u533a\u7684\u6280\u672f\u8ba4\u53ef\u5ea6\u6781\u9ad8\uff0c\u8bf4\u660e\u4ea7\u54c1\u5207\u4e2d\u4e86\u4e00\u5c0f\u64ae\u952e\u76d8\u6781\u5ba2\u7684\u771f\u5b9e\u521a\u9700\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4e0d\u8fc7\uff0c\u5b83\u7684\u6f5c\u529b\u4e0e\u5929\u82b1\u677f\u540c\u6837\u660e\u663e\u3002\u5176\u4e00\uff0c\u4f9d\u8d56\u83dc\u5355\u680f\u610f\u5473\u7740\u5b83\u5929\u7136\u5bf9\u201c\u65e0\u83dc\u5355\u201d\u7684\u5feb\u6377\u952e\uff08\u5982\u5168\u5c40\u70ed\u952e\u3001IM \u8f93\u5165\u6cd5\u7ed1\u5b9a\uff09\u5931\u660e\uff0c\u800c\u8fd9\u6070\u662f\u4e13\u4e1a\u7528\u6237\u7684\u91cd\u707e\u533a\uff0c\u8fd9\u4e2a\u786c\u4f24\u5728\u8bc4\u8bba\u533a\u5df2\u88ab\u5f00\u53d1\u8005\u4eb2\u53e3\u627f\u8ba4\u3002\u5176\u4e8c\uff0c\u641c\u7d22\u3001\u67e5\u51b2\u7a81\u3001\u91cd\u6620\u5c04\u8fd9\u4e09\u677f\u65a7\u867d\u7136\u624e\u5b9e\uff0c\u4f46\u5e76\u672a\u5f62\u6210\u95ed\u73af\u2014\u2014\u5b83\u53d1\u73b0\u4e86\u51b2\u7a81\uff0c\u5374\u4e0d\u80fd\u4e00\u952e\u7ed9\u51fa\u4fee\u590d\u5efa\u8bae\uff1b\u80fd\u91cd\u6620\u5c04\uff0c\u5374\u4ecd\u53d7\u9650\u4e8e macOS \u7684\u6743\u9650\u6c99\u76d2\u3002\u672c\u8d28\u4e0a\uff0cKeymap \u505a\u5f97\u662f\u201c\u663e\u5f71\u5242\u201d\u800c\u975e\u201c\u624b\u672f\u5200\u201d\uff0c\u5b83\u8ba9\u9690\u6027\u95ee\u9898\u73b0\u5f62\uff0c\u5374\u628a\u89e3\u51b3\u52a8\u4f5c\u7559\u7ed9\u7528\u6237\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u66f4\u503c\u5f97\u6ce8\u610f\u7684\u662f\uff0c\u8fd9\u79cd\u201c\u5e73\u53f0\u5316\u201d\u67b6\u6784\u610f\u5473\u7740\u5b83\u6781\u6613\u88ab Apple \u5b98\u65b9\u6284\u88ad\uff08\u7cfb\u7edf\u7ea7\u201c\u952e\u76d8\u5feb\u6377\u952e\u201d\u9762\u677f\u672c\u53ef\u505a\u5f97\u66f4\u597d\uff09\uff0c\u6216\u88ab Raycast\u3001Alfred \u8fd9\u7c7b\u8d85\u7ea7\u542f\u52a8\u5668\u96c6\u6210\u541e\u5e76\u3002Keymap \u7684\u62a4\u57ce\u6cb3\u4e0d\u5728\u529f\u80fd\uff0c\u800c\u5728\u201c\u79c1\u5bc6+\u8f7b\u91cf\u201d\u7684\u5b9a\u4f4d\u2014\u2014\u4f46\u82e5\u540e\u7eed\u4e0d\u7ee7\u7eed\u6df1\u6316\u51b2\u7a81\u4fee\u590d\u3001\u81ea\u5b9a\u4e49\u89c4\u5219\u5e93\u7b49\u7c98\u6027\u529f\u80fd\uff0c\u5b83\u5f88\u5bb9\u6613\u6210\u4e3a\u4e00\u6b3e\u201c\u88ab\u8d5e\u8d4f\u4f46\u5c11\u7528\u201d\u7684\u7cbe\u81f4\u5c0f\u5de5\u5177\u3002\u7b80\u8a00\u4e4b\uff0c\u8fd9\u662f\u4e00\u4e2a\u806a\u660e\u7684\u6280\u672f\u9009\u578b\uff0c\u4f46\u8ddd\u79bb\u4e00\u4e2a\u53ef\u6301\u7eed\u7684\u5546\u4e1a\u4ea7\u54c1\uff0c\u8fd8\u5dee\u4e00\u4e2a\u8d28\u53d8\u7ea7\u7684\u95ed\u73af\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\">Keymap<\/span>\n                <\/div>\n<div class=\"comment-content\">Keymap is a macOS menubar app that shows every menu shortcut in the app you&#8217;re using. Double-press \u2318 to summon the panel. Local and private.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">Hey Product Hunt! \ud83d\udc4b<\/p>\n<p>I&#8217;m excited to share Keymap, a small Mac utility I built for people who live on keyboard shortcuts.<\/p>\n<p>Double-press \u2318 anywhere on your Mac and Keymap shows the shortcuts for the app you&#8217;re currently using.<\/p>\n<p>You can search shortcuts, detect conflicts, and remap keys \u2014 all without leaving your workflow.<\/p>\n<p>It&#8217;s fully local, requires no account, and has no telemetry.<\/p>\n<p>I&#8217;d love to hear your feedback and learn how you use keyboard shortcuts on your Mac! \ud83d\ude80<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>I love that it shows conflicting shortcuts too! Does it work across most common apps? <\/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\/@ryanwrites\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ryanwrites<\/a>&nbsp;<\/p>\n<p>Thanks! Yes \u2014 conflicts are checked against each app&#8217;s actual menus plus your own remaps, so it works across any Mac app, common or obscure.<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">Hey David. It reads shortcuts straight from the app&#8217;s own menus rather than a hand-built database, presumably, given it works for &#8220;the app you&#8217;re using&#8221; generally. Does that mean it just works on any Mac app out of the box, or did you have to add support app by app?<\/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\/@charlie_titherley\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@charlie_titherley<\/a>&nbsp;<\/p>\n<p>Exactly right, good guess! Keymap reads shortcuts live from each app&#8217;s own menu bar via macOS&#8217;s Accessibility API \u2014 there&#8217;s no hand-built database, and no per-app support was added. That&#8217;s why it works out of the box with anything: Safari, VS Code, Figma, or a random app you downloaded today. Nice side effect: when an app updates its menus, Keymap always reflects the current shortcuts. (The flip side of that platform approach: shortcuts apps don&#8217;t expose in their menus \u2014 like global hotkeys or IME bindings \u2014 aren&#8217;t visible to any app, so those stay out of scope.)<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/6UQL23ZGKEAEBC\" class=\"app-title\">Particle Studio<\/a><\/p>\n<div class=\"one-liner\">Transform Static Images Into Dynamic Particle Experiences<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">88<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Particle Studio \u5c06\u9759\u6001\u56fe\u7247\u5b9e\u65f6\u8f6c\u5316\u4e3a\u53ef\u4ea4\u4e92\u3001\u53ef\u5b9a\u5236\u7684\u52a8\u6001\u7c92\u5b50\u7279\u6548\uff0c\u8ba9\u8bbe\u8ba1\u5e08\u3001\u5f00\u53d1\u8005\u548c\u521b\u610f\u73a9\u5bb6\u65e0\u9700\u7f16\u7801\u5373\u53ef\u5feb\u901f\u5236\u4f5c\u5e76\u5206\u4eab\u6c89\u6d78\u5f0f\u89c6\u89c9\u4f53\u9a8c\uff0c\u89e3\u51b3\u201c\u9759\u6001\u56fe\u7f3a\u4e4f\u52a8\u611f\u4e0e\u4e92\u52a8\u6027\u201d\u7684\u521b\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\/3e9308bc-730f-4efc-8b23-a9d8bf99fe8a.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\/17e19453-b3b1-4789-87a8-374b1f667c8a.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\/dcaccc33-9af3-4cea-adc1-fec5edf173bf.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\/057fd31d-2e29-4398-bb49-9f280539a0dd.jpeg?auto=format\" data-video-url=\"https:\/\/youtu.be\/eQnpxuSQz5Q\"><source src=\"https:\/\/youtu.be\/eQnpxuSQz5Q\" 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\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">No-Code<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u56fe\u50cf\u5904\u7406<\/span><br \/>\n            <span class=\"tag\">\u7c92\u5b50\u7279\u6548<\/span><br \/>\n            <span class=\"tag\">\u521b\u610f\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u4ea4\u4e92\u8bbe\u8ba1<\/span><br \/>\n            <span class=\"tag\">\u89c6\u89c9\u751f\u6210<\/span><br \/>\n            <span class=\"tag\">\u7f51\u9875\u5bfc\u51fa<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u65f6\u6e32\u67d3<\/span><br \/>\n            <span class=\"tag\">\u8bbe\u8ba1\u8f85\u52a9<\/span><br \/>\n            <span class=\"tag\">\u52a8\u6548\u5236\u4f5c<\/span><br \/>\n            <span class=\"tag\">\u5728\u7ebf\u5206\u4eab<\/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\u6574\u4f53\u53cd\u9988\u79ef\u6781\uff0c\u79f0\u5176\u4e3a\u201c\u521b\u610f\u6e38\u4e50\u573a\u201d\u3002\u4e3b\u8981\u7591\u95ee\u96c6\u4e2d\u5728\u5bfc\u51fa\u6027\u80fd\u4e0a\uff1a\u6709\u7528\u6237\u8be2\u95ee\u9ad8\u5206\u8fa8\u7387\u56fe\u7247\u5bfc\u51fa\u7684HTML\u5305\u4f53\u79ef\u591a\u5927\uff0c\u4ee5\u53ca\u6e32\u67d3\u7acb\u65b9\u4f53\u3001\u4e09\u89d2\u5f62\u7c92\u5b50\u65f6\u662f\u91c7\u7528Canvas\u8fd8\u662fWebGL\uff0c\u62c5\u5fc3\u662f\u5426\u4f1a\u51fa\u73b0\u5361\u987f\u3002\u76ee\u524d\u5c1a\u65e0\u5b98\u65b9\u56de\u590d\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                Particle Studio\u5207\u4e2d\u4e86\u201c\u8f7b\u91cf\u7ea7\u89c6\u89c9\u5b9e\u9a8c\u201d\u8fd9\u4e00\u7ec6\u5206\u9700\u6c42\u2014\u2014\u5b83\u4e0d\u8bd5\u56fe\u53d6\u4ee3After Effects\u6216TouchDesigner\uff0c\u800c\u662f\u7528\u6781\u4f4e\u7684\u4e0a\u624b\u95e8\u69db\uff0c\u8ba9\u201c\u56fe\u7247\u52a8\u8d77\u6765\u201d\u4ece\u7e41\u7410\u7684\u52a8\u6548\u5de5\u7a0b\u53d8\u4e3a\u4e00\u6b21\u62d6\u62fd\u548c\u51e0\u9879\u6ed1\u6746\u8c03\u8282\u3002\u8fd9\u79cd\u201c\u5373\u65f6\u6ee1\u8db3\u201d\u7684\u4ea4\u4e92\u903b\u8f91\uff0c\u6b63\u662fProduct Hunt\u53d7\u4f17\u6700\u4e70\u8d26\u7684\u723d\u70b9\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u4ece\u8bc4\u8bba\u4e2d\u4e5f\u80fd\u55c5\u5230\u5173\u952e\u9690\u5fe7\uff1a\u5f53\u7c92\u5b50\u6570\u91cf\u4e0a\u5347\u3001\u5143\u7d20\u53d8\u4e3a3D\u7acb\u65b9\u4f53\u65f6\uff0c\u6027\u80fd\u5c06\u662f\u751f\u6b7b\u7ebf\u3002\u5982\u679c\u5e95\u5c42\u53ea\u662fCanvas 2D\uff0c\u9ad8\u5206\u8fa8\u7387\u56fe\u7247\u7684\u7c92\u5b50\u5316\u5fc5\u7136\u5bfc\u81f4\u5e27\u7387\u5d29\u574f\uff1b\u82e5\u91c7\u7528WebGL\uff0c\u5219\u5bf9\u5f00\u53d1\u8005\u7684\u4f18\u5316\u529f\u5e95\u8981\u6c42\u6781\u9ad8\u3002\u8bc4\u8bba\u4e2d\u65e0\u4eba\u63d0\u95ee\u201c\u6548\u679c\u597d\u4e0d\u597d\u770b\u201d\uff0c\u53cd\u800c\u76f4\u63a5\u8ffd\u95ee\u201c\u6027\u80fd\u625b\u4e0d\u625b\u5f97\u4f4f\u201d\uff0c\u8bf4\u660e\u76ee\u6807\u7528\u6237\u5e76\u975e\u7eaf\u5c0f\u767d\uff0c\u800c\u662f\u5e26\u7740\u5de5\u7a0b\u7406\u6027\u5ba1\u89c6\u7684\u521b\u4f5c\u8005\u2014\u2014\u8fd9\u610f\u5473\u7740\u4ea7\u54c1\u4e0d\u80fd\u53ea\u505c\u7559\u5728\u201c\u597d\u73a9\u201d\uff0c\u66f4\u9700\u63d0\u4f9b\u53ef\u9884\u6d4b\u7684\u6e32\u67d3\u6548\u80fd\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u66f4\u6df1\u5c42\u7684\u4ef7\u503c\u5728\u4e8e\u201cExport HTML Bundle\u201d\u529f\u80fd\u3002\u5b83\u4e0d\u4ec5\u662f\u5bfc\u51fa\uff0c\u800c\u662f\u5c06\u4f5c\u54c1\u53d8\u6210\u4e00\u4efd\u53ef\u79bb\u7ebf\u8fd0\u884c\u3001\u53ef\u4e8c\u6b21\u7f16\u8f91\u7684\u4ea4\u4e92\u6e90\u6587\u4ef6\uff0c\u8fd9\u4e3a\u8bbe\u8ba1\u5e08\u4ea4\u4ed8\u65b9\u6848\u3001\u6559\u5e08\u5236\u4f5c\u8bfe\u4ef6\u3001\u751a\u81f3NFT\u827a\u672f\u5bb6\u5206\u53d1\u4f5c\u54c1\u63d0\u4f9b\u4e86\u65b0\u8f7d\u4f53\u3002\u4f46\u201cDesktop only\u201d\u7684\u9650\u5236\u5219\u66b4\u9732\u4e86\u4ea7\u54c1\u5c1a\u672a\u8986\u76d6\u79fb\u52a8\u7aef\u573a\u666f\uff0c\u5728\u89e6\u5c4f\u4ea4\u4e92\u65e5\u76ca\u4e3b\u6d41\u7684\u4eca\u5929\uff0c\u8fd9\u663e\u7136\u662f\u4e00\u5757\u77ed\u677f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u603b\u4f53\u800c\u8a00\uff0cParticle Studio\u662f\u4e00\u6b3e\u654f\u9510\u7684\u5de5\u5177\u578b\u4ea7\u54c1\uff0c\u5b83\u7528\u6781\u4f73\u7684\u201c\u524d30\u79d2\u4f53\u9a8c\u201d\u6293\u4f4f\u7528\u6237\uff0c\u4f46\u540e\u7eed\u7684\u7559\u5b58\u548c\u53e3\u7891\u5c06\u53d6\u51b3\u4e8e\u4e24\u4ef6\u4e8b\uff1a\u4e00\u662f\u80fd\u5426\u901a\u8fc7GPU\u52a0\u901f\u548c\u6e10\u8fdb\u52a0\u8f7d\uff0c\u8ba9\u9ad8\u8d1f\u8f7d\u573a\u666f\u4fdd\u6301\u6d41\u7545\uff1b\u4e8c\u662f\u80fd\u5426\u5f00\u653e\u66f4\u591a\u53c2\u6570\uff08\u5982\u989c\u8272\u6620\u5c04\u3001\u7c92\u5b50\u7269\u7406\u573a\uff09\uff0c\u800c\u4e0d\u88ab\u201c\u9884\u8bbe\u6a21\u677f\u201d\u56f0\u4f4f\u521b\u9020\u529b\u7684\u5929\u82b1\u677f\u3002\u5982\u679c\u6b62\u6b65\u4e8e\u201c\u73a9\u5177\u201d\uff0c\u5b83\u5f88\u5feb\u4f1a\u88abCapCut\u3001\u526a\u8f91\u8f6f\u4ef6\u91cc\u7684AI\u7279\u6548\u6a21\u677f\u6df9\u6ca1\uff1b\u82e5\u80fd\u5728\u6027\u80fd\u548c\u53ef\u73a9\u6027\u4e0a\u505a\u6df1\uff0c\u5b83\u6709\u673a\u4f1a\u6210\u4e3a\u521b\u610f\u5de5\u4f5c\u6d41\u4e2d\u7684\u9ad8\u9891\u5c0f\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\">Particle Studio<\/span>\n                <\/div>\n<div class=\"comment-content\">Particle Studio turns your images into interactive, customizable particle compositions. Upload an image, choose from circles, squares, triangles, or cubes, and fine-tune particle size, motion trails, and cursor interaction to create your own visual experience. When you&#8217;re happy with the result, share it instantly with Copy Link or take it beyond the studio with Export HTML Bundle to create an offline, interactive version you can experiment with using your own images.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><strong>Particle Studio<\/strong> is a creative playground that transforms ordinary images into interactive particle experiences.<\/p>\n<p>Upload an image and turn it into a customizable particle composition. Experiment with <strong>Circle, Square, Triangle, and Cube<\/strong> particles, adjust particle size, and control how your creation moves and responds to interaction.<\/p>\n<\/p>\n<p><strong>Q. Want something more atmospheric?<\/strong><\/p>\n<p>Enable Motion Trail to create fluid, dreamy effects, fine-tune the trail intensity, and adjust the cursor radius to shape how you interact with the particle field.<\/p>\n<\/p>\n<p>\u2728 <strong>Additional Features<\/strong><\/p>\n<\/p>\n<p>\ud83d\udd17 <strong>Copy Link:<\/strong> Instantly share your particle creation with others.<\/p>\n<p>\ud83d\udcbb <strong>Export HTML Bundle:<\/strong> Take your creation beyond the studio with an offline, interactive HTML experience. (Desktop only).<\/p>\n<\/p>\n<p>Built for designers, developers, creators, and anyone who enjoys experimenting with images, motion, and creative technology.<\/p>\n<\/p>\n<p><strong>Upload an image. Customize the particles. Add motion. Make it interactive. \ud83d\ude80<\/strong><\/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\/@stelvin_saji\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@stelvin_saji<\/a>&nbsp;how heavy is the Export HTML Bundle for a standard high-res image? curious if it relies on canvas or webgl to render the cube and triangle particles without lagging.<\/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\">#16<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/YBUTLCX3WWRMZ3\" class=\"app-title\">Postaway.space<\/a><\/p>\n<div class=\"one-liner\">A little piece of the past, sent your way.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">86<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Postaway.space \u5c06\u590d\u53e4\u660e\u4fe1\u7247\u7684\u6000\u65e7\u9b45\u529b\u6570\u5b57\u5316\uff0c\u7528\u6237\u9009\u62e9\u76ee\u7684\u5730\u5e76\u5199\u4e0b\u7559\u8a00\uff0c\u5e73\u53f0\u968f\u673a\u5339\u914d\u4e00\u5f20 vintage \u660e\u4fe1\u7247\uff0c\u751f\u6210\u53ef\u5206\u4eab\u7684\u94fe\u63a5\uff0c\u8ba9\u201c\u6765\u81ea\u8fc7\u53bb\u7684\u60ca\u559c\u201d\u4ee5\u8f7b\u91cf\u5316\u65b9\u5f0f\u4f20\u9012\u60c5\u611f\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\/2c3f9dfb-40a1-46ca-9c18-2c93c1b29add.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\/a6ab2bf4-52e9-4a70-b6bb-53ddd44ff627.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\/5821c7a6-a3da-46ac-bf63-2be75e04d765.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\/ad8ca995-d226-4e87-8b98-2180ee85d9d1.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\/99dec131-a9d4-4c3b-8f5b-c999bcc65ab8.jpeg?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Travel<\/span><br \/>\n            <span class=\"tag\">Graphics &#038; Design<\/span><br \/>\n            <span class=\"tag\">Social Networking<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u590d\u53e4\u660e\u4fe1\u7247<\/span><br \/>\n            <span class=\"tag\">\u968f\u673a\u60ca\u559c<\/span><br \/>\n            <span class=\"tag\">\u6570\u5b57\u6000\u65e7<\/span><br \/>\n            <span class=\"tag\">\u60c5\u611f\u4f20\u9012<\/span><br \/>\n            <span class=\"tag\">\u793c\u7269\u5206\u4eab<\/span><br \/>\n            <span class=\"tag\">\u793e\u4ea4\u4e92\u52a8<\/span><br \/>\n            <span class=\"tag\">\u90ae\u4ef6\u8ba2\u9605<\/span><br \/>\n            <span class=\"tag\">\u5b9e\u4f53\u90ae\u5bc4<\/span><br \/>\n            <span class=\"tag\">\u6587\u5316\u6536\u85cf<\/span><br \/>\n            <span class=\"tag\">\u5c0f\u4f17\u521b\u610f<\/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\u201c\u968f\u673a\u5339\u914d\u201d\u7684\u60ca\u559c\u611f\u8868\u793a\u559c\u7231\uff0c\u8ba4\u4e3a\u6982\u5ff5\u6709\u6e29\u5ea6\u3001\u6c1b\u56f4\u4f73\u3002\u6709\u7528\u6237\u5efa\u8bae\u589e\u52a0\u7f8e\u56fd\u5404\u5dde\u9009\u9879\u4ee5\u6269\u5927\u5730\u57df\u8986\u76d6\uff0c\u53e6\u6709\u4eba\u671f\u5f85\u66f4\u591a\u76ee\u7684\u5730\u9009\u62e9\u3002\u6574\u4f53\u53cd\u9988\u79ef\u6781\uff0c\u6838\u5fc3\u8bc9\u6c42\u96c6\u4e2d\u5728\u5185\u5bb9\u5e93\u4e30\u5bcc\u5ea6\u4e0e\u5730\u57df\u7ec6\u5206\u5316\u4e0a\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                Postaway.space \u672c\u8d28\u4e0a\u5356\u7684\u4e0d\u662f\u201c\u660e\u4fe1\u7247\u201d\uff0c\u800c\u662f\u201c\u53ef\u63a7\u7684\u968f\u673a\u611f\u201d\u2014\u2014\u5728\u7b97\u6cd5\u7cbe\u51c6\u63a8\u9001\u7684\u65f6\u4ee3\uff0c\u5b83\u53cd\u5411\u64cd\u4f5c\uff0c\u7528\u201c\u4e0d\u53ef\u9884\u6d4b\u201d\u5236\u9020\u60c5\u7eea\u4ef7\u503c\u3002\u8fd9\u4e2a\u5207\u5165\u70b9\u5f88\u806a\u660e\uff0c\u4e5f\u8e29\u4e2d\u4e86\u6000\u65e7\u7ecf\u6d4e\u7684\u6d6a\u6f6e\uff1a\u4eba\u4eec\u6d88\u8d39\u7684\u4e0d\u662f\u5b9e\u7269\uff0c\u800c\u662f\u201c\u672a\u88ab\u9009\u62e9\u7684\u60ca\u559c\u201d\u5e26\u6765\u7684\u591a\u5df4\u80fa\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u51b7\u9759\u770b\uff0c\u4ea7\u54c1\u5b58\u5728\u4e09\u4e2a\u7ed3\u6784\u6027\u77ed\u677f\u3002\u7b2c\u4e00\uff0c\u7ebf\u4e0a\u5206\u4eab\u7684\u201c\u968f\u673a vintage \u660e\u4fe1\u7247\u201d\u672c\u8d28\u662f\u4e00\u5f20\u56fe\u7247+\u94fe\u63a5\uff0c\u53ef\u66ff\u4ee3\u6027\u5f3a\uff08\u4e00\u4e2a Instagram \u6ee4\u955c\u6216 GIF \u5c31\u80fd\u6a21\u62df\uff09\uff0c\u5176\u7559\u5b58\u52a8\u529b\u4e3b\u8981\u4f9d\u8d56\u201c\u6536\u85cf\u7656\u201d\u800c\u975e\u201c\u4f7f\u7528\u573a\u666f\u201d\u3002\u7b2c\u4e8c\uff0c\u4ed8\u8d39\u7684 Mail Club \u867d\u7136\u63d0\u4f9b\u5b9e\u4f53\u90ae\u5bc4\uff0c\u4f46\u968f\u673a\u53d1\u8d27\u610f\u5473\u7740\u4f9b\u5e94\u94fe\u548c\u54c1\u63a7\u96be\u6807\u51c6\u5316\uff0c\u4e00\u65e6\u7528\u6237\u6536\u5230\u91cd\u590d\u6216\u7834\u635f\u5361\u7247\uff0c\u4fe1\u4efb\u6210\u672c\u6781\u9ad8\u3002\u7b2c\u4e09\uff0c\u5730\u57df\u9009\u62e9\u76ee\u524d\u505c\u7559\u5728\u56fd\u5bb6\u5c42\u9762\uff0c\u7528\u6237\u8bc4\u8bba\u4e2d\u201c\u7f8e\u56fd\u5404\u5dde\u201d\u7684\u547c\u58f0\u6070\u6070\u66b4\u9732\u4e86\u4ea7\u54c1\u5728\u4e2a\u6027\u5316\u4e0e\u968f\u673a\u6027\u4e4b\u95f4\u7684\u5c34\u5c2c\u2014\u2014\u968f\u673a\u662f\u5356\u70b9\uff0c\u4f46\u5b8c\u5168\u968f\u673a\u53c8\u524a\u5f31\u7528\u6237\u7684\u60c5\u611f\u951a\u70b9\uff0c\u7f3a\u4e4f\u4e2d\u95f4\u8c03\u8282\u5c42\uff08\u5982\u4e3b\u9898\u3001\u5e74\u4ee3\u3001\u753b\u98ce\u504f\u597d\uff09\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u4ef7\u503c\u6216\u8bb8\u4e0d\u5728\u4e8e\u201c\u9001\u660e\u4fe1\u7247\u201d\uff0c\u800c\u5728\u4e8e\u5b83\u9a8c\u8bc1\u4e86\u4e00\u4e2a\u66f4\u5bbd\u7684\u5047\u8bbe\uff1a\u4eba\u4eec\u613f\u610f\u4e3a\u201c\u7cbe\u5fc3\u8bbe\u8ba1\u7684\u610f\u5916\u201d\u4ed8\u8d39\u3002\u5982\u679c Postaway \u540e\u7eed\u80fd\u5f15\u5165\u201c\u5174\u8da3\u6807\u7b7e+\u7b97\u6cd5\u63a8\u8350\u968f\u673a\u201d\u7684\u6df7\u5408\u6a21\u5f0f\uff0c\u5e76\u628a\u5b9e\u4f53\u4ff1\u4e50\u90e8\u6253\u9020\u6210\u7c7b\u4f3c\u201c\u590d\u53e4\u76f2\u76d2\u8ba2\u9605\u201d\uff0c\u5176\u5546\u4e1a\u60f3\u8c61\u7a7a\u95f4\u4f1a\u5927\u5f97\u591a\u3002\u76ee\u524d\u6765\u770b\uff0c\u5b83\u66f4\u50cf\u4e00\u4e2a\u4f18\u96c5\u7684 demo\uff0c\u800c\u975e\u53ef\u6301\u7eed\u7684\u751f\u610f\u2014\u2014\u9664\u975e\u5b83\u80fd\u4ece\u201c\u968f\u673a\u201d\u8d70\u5411\u201c\u6709\u54c1\u5473\u7684\u968f\u673a\u201d\uff0c\u5426\u5219\u65b0\u9c9c\u611f\u9000\u6f6e\u540e\uff0c\u7559\u4e0b\u7684\u53ea\u6709\u4e00\u5806\u6f02\u4eae\u7684\u6570\u5b57\u56fe\u7247\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\">Postaway.space<\/span>\n                <\/div>\n<div class=\"comment-content\">Postaway brings the charm of vintage postcards to the digital world. Pick a destination, write a message, and we\u2019ll randomly pair it with a vintage postcard you can share by link. It\u2019s free to use. Love postcards? Join the Postaway Mail Club for a real vintage postcard in the mail, plus other surprises. You never know what you\u2019ll get.<\/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\ud83d\udcee<\/p>\n<p>What if you could send someone a postcard from another time?<\/p>\n<p>That\u2019s the idea behind Postaway.<\/p>\n<p>Pick a destination, write a message, and we\u2019ll randomly pick a vintage postcard to go with it. You get a little postcard link to share with a friend \u2014 through email, DM, or wherever you like.<\/p>\n<p>You don\u2019t choose the postcard. That\u2019s where the surprise comes in. \u2728<\/p>\n<p>The online postcard is completely free to try.<\/p>\n<p>And for the postcard lovers who want something real, there\u2019s the Postaway Mail Club \ud83d\udcec \u2014 a paid subscription where we\u2019ll send you a real vintage postcard in the mail, plus other little surprises. Every delivery is random, so you never quite know what\u2019s coming.<\/p>\n<p>We\u2019re still growing the collection day by day, so I\u2019d love your help:<\/p>\n<p>\ud83c\udf0d Which country or destination would you love to receive a postcard from?<\/p>\n<p>Drop it in the comments \u2014 we\u2019re collecting ideas (and postcards!) every day. \ud83d\uddfa\ufe0f\ud83d\udcee<\/p><\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-vote\">\n                        <span>\u25b2<\/span><br \/>\n                        <span>1<\/span>\n                    <\/div>\n<p>                    <span>\u56de\u590d<\/span>\n                <\/div>\n<div class=\"comment-replies\">\n<div class=\"reply-item\">\n<div class=\"reply-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@martinique\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@martinique<\/a>&nbsp;Great idea!<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/@martinique\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@martinique<\/a>&nbsp;I love the vibe of this&#8230; I know it&#8217;s a big build-out, but having individual states for the United States would be an awesome addition for the audience here&#8230; <\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\/IG6ZAQAZ526U6I\" class=\"app-title\">Hacktron Automations<\/a><\/p>\n<div class=\"one-liner\">Close the loop between vulnerability discovery and patching.<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">85<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Hacktron Automations \u5728\u4ee3\u7801\u5b89\u5168\u5ba1\u67e5\u573a\u666f\u4e2d\uff0c\u5c06\u201c\u53d1\u73b0\u6f0f\u6d1e\u201d\u4e0e\u201c\u81ea\u52a8\u4fee\u590d\u201d\u95ed\u73af\uff0c\u89e3\u51b3\u5b89\u5168\u56e2\u961f\u4ece\u68c0\u6d4b\u5230\u4eba\u5de5\u9a8c\u8bc1\u3001\u4fee\u590d\u3001\u8bc4\u5ba1\u7684\u6f2b\u957f\u94fe\u8def\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\/b2ebca43-33f2-4388-9f06-2dc839630285.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\/96516dc8-1590-47a3-95ca-aebec0766827.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\/82e9954c-5629-446f-a95a-e0e4163893ac.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\/a37486b7-976c-48b6-a1f3-aea23b23a6ad.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\/c5ee84c0-bfee-44cb-b7cd-5ca70da8997b.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\/e8e28f6d-d24a-4b34-b78e-c8303e73e501.gif?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\/849550b8-c98d-42fc-9a6b-06831535944b.jpeg?auto=format\" data-video-url=\"https:\/\/www.youtube.com\/watch?v=tGIBMtObLm8\"><source src=\"https:\/\/www.youtube.com\/watch?v=tGIBMtObLm8\" 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\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">Security<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">AI\u4ee3\u7801\u5b89\u5168<\/span><br \/>\n            <span class=\"tag\">\u6f0f\u6d1e\u4fee\u590d<\/span><br \/>\n            <span class=\"tag\">\u81ea\u52a8\u5316\u8865\u4e01<\/span><br \/>\n            <span class=\"tag\">DevSecOps<\/span><br \/>\n            <span class=\"tag\">\u5b89\u5168\u5ba1\u67e5<\/span><br \/>\n            <span class=\"tag\">\u9759\u6001\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u52a8\u6001\u9a8c\u8bc1<\/span><br \/>\n            <span class=\"tag\">\u8bef\u62a5\u6d88\u9664<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u8005\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>\u73b0\u6709\u8bc4\u8bba\u8f83\u5c11\uff0c\u6709\u6548\u53cd\u9988\u96c6\u4e2d\u4e8e\u4e24\u70b9\uff1a\u4e00\u662f\u8be2\u95ee\u4e0e\u7ade\u54c1\u7684\u5dee\u5f02\u5316\u4f18\u52bf\uff1b\u4e8c\u662f\u8ba4\u53ef\u201c\u540c\u65f6\u8bc6\u522b\u5e76\u4fee\u590d\u6f0f\u6d1e\u201d\u7684\u7ec4\u5408\u4ef7\u503c\u3002\u5c1a\u65e0\u6df1\u5ea6\u4f7f\u7528\u95ee\u9898\u6216\u6279\u8bc4\u6027\u5efa\u8bae\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                Hacktron Automations \u7684\u5b9a\u4f4d\u5207\u4e2d\u4e86\u5b89\u5168\u5de5\u5177\u94fe\u4e2d\u6700\u6602\u8d35\u7684\u73af\u8282\u2014\u2014\u4fee\u590d\u3002\u4f20\u7edf SAST\/DAST \u5de5\u5177\u6b62\u6b65\u4e8e\u201c\u62a5\u6f0f\u6d1e\u201d\uff0c\u800c\u5c06\u9a8c\u8bc1\u3001\u53bb\u4f2a\u3001\u8865\u4e01\u7f16\u5199\u3001\u56de\u5f52\u6d4b\u8bd5\u7684\u538b\u529b\u5168\u90e8\u7529\u7ed9\u5de5\u7a0b\u5e08\uff0c\u5bfc\u81f4\u5927\u91cf\u544a\u8b66\u88ab\u79ef\u538b\u6216\u5ffd\u7565\u3002Hacktron \u8bd5\u56fe\u7528 AI \u626e\u6f14\u201c\u521d\u7ea7\u5b89\u5168\u5de5\u7a0b\u5e08\u201d\u7684\u89d2\u8272\uff0c\u628a\u6f0f\u6d1e\u95ed\u73af\u5230\u53ef\u5ba1\u67e5\u7684\u8865\u4e01\uff0c\u8fd9\u5728\u4ea4\u4ed8\u5f62\u6001\u4e0a\u662f\u771f\u6b63\u7684\u6548\u7387\u9769\u547d\uff0c\u800c\u975e\u7b80\u5355\u7684\u529f\u80fd\u5806\u53e0\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5fc5\u987b\u6cfc\u51b7\u6c34\uff1a\u5176\u4e00\uff0c\u201c\u52a8\u6001\u9a8c\u8bc1\u201d\u4e0e\u201c\u6d88\u9664\u8bef\u62a5\u201d\u7684\u627f\u8bfa\u6781\u5176\u6c89\u91cd\uff0cAI \u5728\u771f\u5b9e\u4e1a\u52a1\u903b\u8f91\u4e0b\u9a8c\u8bc1\u6f0f\u6d1e\u53ef\u5229\u7528\u6027\uff0c\u5176\u8bef\u5224\u7387\u5c06\u76f4\u63a5\u51b3\u5b9a\u4ea7\u54c1\u53ef\u4fe1\u5ea6\uff0c\u4e00\u65e6\u51fa\u73b0\u201c\u81ea\u52a8\u4fee\u590d\u5bfc\u81f4\u751f\u4ea7\u6545\u969c\u201d\u7684\u6848\u4f8b\uff0c\u4fe1\u4efb\u5c06\u77ac\u95f4\u5d29\u584c\u3002\u5176\u4e8c\uff0c\u89c4\u5219\u89e6\u53d1\u7684\u81ea\u52a8\u5316\u4fee\u590d\uff0c\u5728\u9ad8\u5ea6\u5b9a\u5236\u5316\u7684\u4f01\u4e1a\u4ee3\u7801\u5e93\u4e2d\uff0c\u8865\u4e01\u7684\u201c\u53ef\u6d4b\u8bd5\u6027\u201d\u548c\u201c\u98ce\u683c\u517c\u5bb9\u6027\u201d\u662f\u5de8\u5927\u5de5\u7a0b\u6311\u6218\uff0c\u5f88\u53ef\u80fd\u843d\u5165\u201c\u4fee\u590d\u4e86\u5b89\u5168\u6027\uff0c\u7834\u574f\u4e86\u53ef\u7ef4\u62a4\u6027\u201d\u7684\u9677\u9631\u3002\u5176\u4e09\uff0c85\u7968\u7684\u51b7\u542f\u52a8\u6570\u636e\u5e73\u5e73\uff0c\u4e14\u8bc4\u8bba\u533a\u7f3a\u4e4f\u6df1\u5ea6\u6280\u672f\u8d28\u7591\uff0c\u8bf4\u660e\u4ea7\u54c1\u5c1a\u672a\u7ecf\u5386\u5f00\u53d1\u8005\u793e\u533a\u7684\u6b8b\u9177\u9a8c\u8bc1\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u7684\u4ef7\u503c\u4e0d\u5728\u4e8e\u201c\u81ea\u52a8\u5199\u8865\u4e01\u201d\uff0c\u800c\u5728\u4e8e\u80fd\u5426\u6210\u4e3a\u5b89\u5168\u56e2\u961f\u4e0e\u5f00\u53d1\u56e2\u961f\u4e4b\u95f4\u7684\u201c\u7ffb\u8bd1\u5b98\u201d\u2014\u2014\u7528\u53ef\u5ba1\u67e5\u7684\u4ea7\u51fa\u964d\u4f4e\u8de8\u90e8\u95e8\u534f\u4f5c\u6210\u672c\u3002\u82e5 Hacktron \u80fd\u5728\u8865\u4e01\u7684\u4e0a\u4e0b\u6587\u6ce8\u91ca\u3001\u98ce\u9669\u5206\u7ea7\u3001\u56de\u6eda\u7b56\u7565\u4e0a\u505a\u5230\u6781\u81f4\uff0c\u5219\u6709\u673a\u4f1a\u5728 DevSecOps \u7684\u5939\u7f1d\u4e2d\u7ad9\u4f4f\u811a\uff1b\u53cd\u4e4b\uff0c\u82e5\u505c\u7559\u5728\u201cAI \u626b\u4e00\u904d\u987a\u4fbf\u8865\u4e2a\u6d1e\u201d\u7684\u6d45\u5c42\u6f14\u793a\uff0c\u5219\u5927\u6982\u7387\u6ca6\u4e3a demo \u7ea7\u73a9\u5177\u3002\u5efa\u8bae\u56e2\u961f\u5c06\u706b\u529b\u96c6\u4e2d\u5728\u201c\u8865\u4e01\u8d28\u91cf\u7684\u53ef\u8bc1\u660e\u6027\u201d\u4e0a\uff0c\u800c\u975e\u5806\u780c\u81ea\u52a8\u5316\u89e6\u53d1\u5668\u7684\u6570\u91cf\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\">Hacktron Automations<\/span>\n                <\/div>\n<div class=\"comment-content\">Hacktron already reviews your code, detects real vulnerabilities, and learns from your feedback. Now it fixes the vulnerabilities too. With automations, Hacktron acts like a real engineer, validating security issues, eliminating false positives, and implementing patches. Set the rules once, and Hacktron performs an action on every trigger. The first action is remediation &#8211; Hacktron validates the finding dynamically, and hands your team a well-tested, ready-to-review fix.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p><a href=\"https:\/\/www.producthunt.com\/@zayne_zhang\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"zayne_zhang\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@zayne_zhang<\/a> nice! how do you differ from the competitors in this space right now? Might check out a demo<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 like the combination of identifying and fixing at the same 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<\/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\/ETCFI2CS6NMIEC\" class=\"app-title\">session-indexer<\/a><\/p>\n<div class=\"one-liner\">Semantic search over your own Claude Code session history<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">84<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>session-indexer \u662f\u4e00\u4e2a\u9762\u5411 Claude Code \u4f1a\u8bdd\u5386\u53f2\u7684\u672c\u5730\u8bed\u4e49\u641c\u7d22\u5de5\u5177\uff0c\u901a\u8fc7 SQLite + bge-m3 \u5d4c\u5165\u68c0\u7d22\uff0c\u81ea\u52a8\u6ce8\u5165\u8fc7\u5f80\u9879\u76ee\u51b3\u7b56\u4e0a\u4e0b\u6587\uff0c\u89e3\u51b3\u201c\u8bb0\u5f97\u5f53\u521d\u4e3a\u4ec0\u4e48\u8fd9\u4e48\u505a\u201d\u7684\u957f\u671f\u9879\u76ee\u8bb0\u5fc6\u65ad\u5c42\u95ee\u9898\u3002<\/div>\n<p>    <!-- \u5a92\u4f53\u753b\u5eca\uff1a\u5305\u542b\u89c6\u9891\u548c\u591a\u5f20\u56fe\u7247 --><\/p>\n<div class=\"media-gallery\">\n<div class=\"media-item-wrapper\">\n                <img decoding=\"async\" src=\"https:\/\/ph-files.imgix.net\/b9298c70-56f1-4faf-b84c-86ed957da1eb.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\/66e5bec6-59d4-47da-b9df-9094c23e272f.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\/109bbd10-954f-43e2-bfb3-0bd5742f21bb.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\/e4377e24-2584-42a2-88f7-723eb69668a4.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\/c9ebe8cc-9c7d-42d6-8b8d-f2db964ba7dc.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\">Artificial Intelligence<\/span><br \/>\n            <span class=\"tag\">GitHub<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u5f00\u53d1\u8005\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">AI\u7f16\u7801\u52a9\u624b<\/span><br \/>\n            <span class=\"tag\">\u4f1a\u8bdd\u68c0\u7d22<\/span><br \/>\n            <span class=\"tag\">\u8bed\u4e49\u641c\u7d22<\/span><br \/>\n            <span class=\"tag\">\u672c\u5730\u8bb0\u5fc6<\/span><br \/>\n            <span class=\"tag\">SQLite<\/span><br \/>\n            <span class=\"tag\">Ollama<\/span><br \/>\n            <span class=\"tag\">Claude Code\u63d2\u4ef6<\/span><br \/>\n            <span class=\"tag\">\u9879\u76ee\u4e0a\u4e0b\u6587\u7ba1\u7406<\/span><br \/>\n            <span class=\"tag\">\u5f00\u6e90\u5de5\u5177<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8ba4\u53ef\u5176\u89e3\u51b3\u4e86\u201c\u8de8\u957f\u5468\u671f\u9879\u76ee\u56de\u5fc6\u51b3\u7b56\u539f\u56e0\u201d\u7684\u771f\u5b9e\u75db\u70b9\u3002\u6709\u8bc4\u8bba\u8ffd\u95ee\uff1a\u5728 monorepo \u4e2d\u524d\u540e\u7aef\u5206\u76ee\u5f55\u4f46\u903b\u8f91\u540c\u9879\u76ee\u65f6\uff0c\u7d22\u5f15\u662f\u5426\u4e25\u683c\u6309\u76ee\u5f55\u9694\u79bb\uff0c\u6216\u662f\u5426\u652f\u6301\u8de8\u4ed3\u5e93\u5171\u4eab\u7d22\u5f15\u3002\u76ee\u524d\u4ea7\u54c1\u5b9a\u4f4d\u4e3a per-project\uff0c\u672a\u6709\u660e\u786e\u591a\u76ee\u5f55\u805a\u5408\u65b9\u6848\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                session-indexer \u5207\u4e2d\u4e86\u4e00\u4e2a\u88ab\u4e3b\u6d41 AI \u7f16\u7801\u5de5\u5177\u5ffd\u89c6\u7684\u201c\u51b3\u7b56\u8fde\u7eed\u6027\u201d\u95ee\u9898\u3002Claude Code \u7684\u4f1a\u8bdd\u662f\u77ac\u95f4\u7684\uff0c\u4f46\u9879\u76ee\u662f\u957f\u547d\u7684\u3002session-end \u89e3\u51b3\u201c\u4e0a\u6b21\u505a\u5230\u54ea\u201d\uff0csession-indexer \u5219\u8bd5\u56fe\u56de\u7b54\u201c\u4e0a\u6b21\u4e3a\u4ec0\u4e48\u8fd9\u4e48\u505a\u201d\u2014\u2014\u8fd9\u5b9e\u9645\u4e0a\u662f\u5728\u4e3a LLM \u5de5\u4f5c\u6d41\u8865\u4e0a\u201c\u4f01\u4e1a\u7ea7\u8bb0\u5fc6\u201d\u7684\u77ed\u677f\u3002\u5176\u8bbe\u8ba1\u514b\u5236\u4e14\u806a\u660e\uff1a\u4e0d\u641e\u4e91\u7aef\u540c\u6b65\u3001\u4e0d\u641e\u5168\u5c40\u8bb0\u5fc6\uff0c\u53ea\u505a\u672c\u5730 SQLite + \u53ef\u9009 Ollama \u5d4c\u5165\uff0cFTS5 \u515c\u5e95\u4fdd\u8bc1\u65e0\u5916\u90e8\u4f9d\u8d56\u65f6\u4e5f\u53ef\u7528\u3002\u8fd9\u79cd\u201c\u8f7b\u7d22\u5f15\u3001\u91cd\u9690\u79c1\u3001\u96f6\u90e8\u7f72\u201d\u7684\u8def\u7ebf\uff0c\u5728 AI \u5de5\u5177\u666e\u904d\u70ed\u8877\u4e8e\u6258\u7ba1\u670d\u52a1\u7684\u5f53\u4e0b\uff0c\u663e\u5f97\u6e05\u9192\u4e14\u52a1\u5b9e\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u9700\u6cfc\u51b7\u6c34\uff1a\u7b2c\u4e00\uff0c\u5b83\u4f9d\u8d56 bge-m3 \u5e76\u901a\u8fc7 Ollama \u8fd0\u884c\uff0c\u610f\u5473\u7740\u7528\u6237\u5fc5\u987b\u672c\u5730\u8d77\u6a21\u578b\u670d\u52a1\uff0c\u8fd9\u5bf9\u975e\u6280\u672f\u7528\u6237\u662f\u9690\u6027\u95e8\u69db\uff0c\u867d\u7136 FTS5 \u515c\u5e95\uff0c\u4f46\u8bed\u4e49\u68c0\u7d22\u7684\u4f53\u9a8c\u5dee\u5f02\u4f1a\u529d\u9000\u4e00\u90e8\u5206\u4eba\u3002\u7b2c\u4e8c\uff0c\u201cper-project\u201d\u7684\u8bbe\u8ba1\u5728 monorepo \u6216\u8de8\u4ed3\u5e93\u534f\u4f5c\u573a\u666f\u4e0b\u4f1a\u5272\u88c2\u4e0a\u4e0b\u6587\uff0c\u8bc4\u8bba\u4e2d\u5df2\u6709\u4eba\u95ee\u53ca\uff0c\u4f5c\u8005\u672a\u7ed9\u51fa\u4f18\u96c5\u7b54\u6848\u3002\u7b2c\u4e09\uff0c\u81ea\u52a8\u6ce8\u5165\u7684\u673a\u5236\u82e5\u4e0d\u505a\u597d\u201c\u4e0a\u4e0b\u6587\u566a\u97f3\u201d\u63a7\u5236\uff0c\u53cd\u800c\u4f1a\u7a00\u91ca\u5f53\u524d\u4f1a\u8bdd\u6ce8\u610f\u529b\u2014\u2014\u9700\u8981\u66f4\u7cbe\u7ec6\u7684\u76f8\u5173\u5ea6\u9608\u503c\u4e0e\u8fc7\u6ee4\u7b56\u7565\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u771f\u6b63\u4ef7\u503c\u5728\u4e8e\uff1a\u5b83\u793a\u8303\u4e86 AI \u8f85\u52a9\u7f16\u7a0b\u5de5\u5177\u7684\u4e00\u4e2a\u8fdb\u5316\u65b9\u5411\u2014\u2014\u4ece\u201c\u751f\u6210\u4ee3\u7801\u201d\u5230\u201c\u7ef4\u62a4\u9879\u76ee\u5fc3\u667a\u6a21\u578b\u201d\u3002\u5982\u679c\u672a\u6765\u80fd\u652f\u6301\u8de8\u76ee\u5f55\u805a\u5408\u3001\u53ef\u914d\u7f6e\u6ce8\u5165\u7b56\u7565\u3001\u751a\u81f3\u4e0e git \u5386\u53f2\u8054\u52a8\uff0c\u5b83\u4f1a\u4ece\u4e00\u4e2a\u5b9e\u7528\u5c0f\u5de5\u5177\u957f\u6210 AI \u65f6\u4ee3 IDE \u7684\u57fa\u7840\u8bbe\u65bd\u3002\u76ee\u524d 84 \u7968\uff0c\u662f\u5bf9\u4e00\u4e2a\u5c0f\u800c\u51c6\u7684\u75db\u70b9\u7684\u5408\u7406\u56de\u5e94\uff0c\u4f46\u79bb\u201c\u5fc5\u5907\u201d\u8fd8\u5f88\u8fdc\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\">session-indexer<\/span>\n                <\/div>\n<div class=\"comment-content\">Per-project semantic search over your Claude Code session history \u2014 not a shared or centralized memory store. Indexes JSONL transcripts into a local SQLite file, retrieves via bge-m3 embeddings (Ollama) with automatic FTS5 BM25 fallback, and auto-injects relevant past context at session start. Companion to session-end: session-end gives &#8220;where I left off,&#8221; session-indexer gives &#8220;what we decided&#8221; \u2014 same Stop\/SessionStart hooks. Apache 2.0, 75 passing tests, go install and nothing to deploy.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">I kept losing track of why we made past decisions across long-running projects \u2014 session-end gives you &#8220;where I left off,&#8221; but not &#8220;what did we decide about X three weeks ago.&#8221; So I built session-indexer to close that gap: a per-project SQLite index of your Claude Code session history, searchable by semantic similarity via bge-m3, with an automatic FTS5 keyword fallback so it never has a hard dependency on Ollama. It hooks into the same Stop\/SessionStart events as session-end, so both just run together \u2014 no extra setup, no shared backend, nothing to deploy.<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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 a real gap &#8211; I&#8217;ve had the &#8220;what did we decide about X&#8221; problem plenty of times across long-running Claude Code sessions. Curious how it behaves for a monorepo setup where frontend and backend live in separate directories but are logically one project &#8211; does the per-project indexing stay strictly siloed to each directory, or is there a way to point it at a shared index across a few related repos?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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\">#19<\/div>\n<div class=\"title-group\">\n            <a href=\"https:\/\/www.producthunt.com\/r\/MBSQZKX3HH7DJY\" class=\"app-title\">Buddy Visual Tests<\/a><\/p>\n<div class=\"one-liner\">Every UI change, reviewed before merge<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">83<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>Buddy Visual Tests\u5c06\u50cf\u7d20\u7ea7\u89c6\u89c9\u56de\u5f52\u6d4b\u8bd5\u5d4c\u5165\u5f00\u53d1\u4e0eAI\u4ee3\u7406\u5de5\u4f5c\u6d41\uff0c\u5728\u4ee3\u7801\u5408\u5e76\u524d\u81ea\u52a8\u6355\u83b7\u5e76\u5ba1\u67e5\u6bcf\u4e00\u6b21UI\u53d8\u66f4\uff0c\u89e3\u51b3AI\u9ad8\u9891\u6539\u7801\u5e26\u6765\u7684\u89c6\u89c9QA\u6ede\u540e\u4e0e\u6f0f\u68c0\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\/c73a2dc5-aa20-453b-842d-c4c2b2ec2d53.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\/86a61530-a98b-4376-ac2c-979d8fbaeb94.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\/462a6543-dcee-4859-99ce-df6962b5cc24.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\/f7abc094-f0a9-473e-9ab7-7d87fd101f12.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\/3d43371a-1fee-4453-b3b4-62f1bc68a5c7.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\/1cc2b492-d257-4809-aedb-8e083dd9e6c9.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\/5239fde6-b8e7-4d30-8539-38be61bbf049.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\/78118a06-d9b8-4b73-a4ac-da6c511a5dad.png?auto=format\" class=\"media-content\" alt=\"\u4ea7\u54c1\u56fe\u7247\">\n            <\/div>\n<\/p><\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">Software Engineering<\/span><br \/>\n            <span class=\"tag\">Developer Tools<\/span><br \/>\n            <span class=\"tag\">Development<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">\u89c6\u89c9\u56de\u5f52\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">UI\u81ea\u52a8\u5316\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">AI\u4ee3\u7406\u6d4b\u8bd5<\/span><br \/>\n            <span class=\"tag\">\u50cf\u7d20\u7ea7\u5bf9\u6bd4<\/span><br \/>\n            <span class=\"tag\">\u5f00\u53d1\u5de5\u4f5c\u6d41<\/span><br \/>\n            <span class=\"tag\">MCP\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">CLI\u5de5\u5177<\/span><br \/>\n            <span class=\"tag\">\u524d\u7aef\u8d28\u91cf\u4fdd\u969c<\/span><br \/>\n            <span class=\"tag\">\u6301\u7eed\u96c6\u6210<\/span><br \/>\n            <span class=\"tag\">\u8bbe\u8ba1\u5ba1\u67e5<\/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>\u56e2\u961f\u5173\u6ce8\u5176\u4e0e\u73b0\u6709Playwright\u3001Storybook\u6d41\u7a0b\u7684\u4e92\u8865\u6027\uff0c\u8ba4\u53ef\u5176\u5bf9AI\u4ee3\u7406\u7684\u53ef\u64cd\u4f5c\u6027\uff08CLI\/MCP\uff09\uff1b\u6838\u5fc3\u8bc9\u6c42\u96c6\u4e2d\u4e8e\u4eba\u673a\u534f\u4f5c\u5ba1\u6279\u673a\u5236\u3001\u57fa\u7ebf\u7ba1\u7406\u6548\u7387\u53ca\u975e\u4ee3\u7406\u573a\u666f\u4e0b\u7684\u63a5\u5165\u6210\u672c\uff0c\u672a\u89c1\u529f\u80fd\u7f3a\u9677\u7c7b\u8d1f\u9762\u53cd\u9988\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                Buddy Visual Tests\u7684\u806a\u660e\u4e4b\u5904\u5728\u4e8e\u5b83\u4e0d\u662f\u53c8\u4e00\u4e2a\u5b64\u7acb\u7684\u622a\u56fe\u6bd4\u5bf9\u5de5\u5177\uff0c\u800c\u662f\u7cbe\u51c6\u8e29\u4e2d\u4e86\u201cAI\u7f16\u7801\u4ee3\u7406\u5927\u91cf\u4ea7\u51faUI\u201d\u8fd9\u4e00\u4f9b\u5e94\u94fe\u65ad\u5c42\u3002\u5f53\u4ee3\u7801\u751f\u6210\u901f\u5ea6\u8fdc\u8d85\u4eba\u5de5\u5ba1\u67e5\u901f\u5ea6\uff0c\u4f20\u7edf\u201c\u8dd1\u6d4b\u8bd5\u2014\u770b\u62a5\u544a\u2014\u624b\u52a8\u6539\u201d\u7684\u5faa\u73af\u81ea\u7136\u5d29\u89e3\uff0c\u5b83\u628a\u89c6\u89c9\u9a8c\u8bc1\u53d8\u6210\u4ee3\u7406\u53ef\u8c03\u7528\u7684\u539f\u5b50\u80fd\u529b\uff08CLI\/MCP\/Skills\uff09\uff0c\u4ece\u800c\u8ba9\u201cAI\u6539\u2014AI\u6d4b\u2014AI\u4fee\u2014\u4eba\u5ba1\u6279\u201d\u5f62\u6210\u95ed\u73af\u3002\u8fd9\u672c\u8d28\u4e0a\u662f\u5c06QA\u4ece\u201c\u8d28\u91cf\u95e8\u7981\u201d\u91cd\u6784\u4e3a\u201c\u5f00\u53d1\u5faa\u73af\u5185\u7684\u4f20\u611f\u5668\u201d\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u5fc5\u987b\u6cfc\u51b7\u6c34\uff1a\u50cf\u7d20\u7ea7\u6bd4\u5bf9\u662f\u6210\u719f\u6280\u672f\uff0c\u5176\u771f\u6b63\u62a4\u57ce\u6cb3\u4e0d\u5728\u7b97\u6cd5\uff0c\u800c\u5728\u57fa\u7ebf\u6cbb\u7406\u4e0e\u201c\u610f\u56fe\u53d8\u66f4\u201d\u7684\u5224\u5b9a\u7b56\u7565\u2014\u2014\u8bc4\u8bba\u4e2d\u53cd\u590d\u51fa\u73b0\u7684\u201capprove baseline\u201d\u201chand over intentional changes\u201d\u6070\u6070\u662f\u5f53\u524d\u6700\u4f9d\u8d56\u4eba\u5de5\u7ecf\u9a8c\u7684\u90e8\u5206\u3002\u82e5\u57fa\u7ebf\u66f4\u65b0\u4ecd\u9700\u8981\u9ad8\u5bc6\u5ea6\u4eba\u5de5\u4ecb\u5165\uff0c\u90a3\u4e48\u201cAI\u81ea\u4e3b\u4fee\u590d\u201d\u5c31\u53ea\u662f\u628a\u7e41\u7410\u4ece\u5199\u4ee3\u7801\u8f6c\u79fb\u5230\u4e86\u7ef4\u62a4\u671f\u671b\u56fe\u4e0a\u3002\u53e6\u4e00\u4e2a\u9690\u60a3\u662fAgent\u901a\u8fc7CLI\u89e6\u53d1\u7684\u6d4b\u8bd5\u7ed3\u679c\uff0c\u82e5\u7f3a\u4e4f\u5f3a\u5ba1\u8ba1\u8ffd\u8e2a\uff08\u8c01\u6539\u7684\u57fa\u7ebf\u3001\u4e3a\u4ec0\u4e48\u6539\uff09\uff0c\u957f\u671f\u4f1a\u8150\u8680\u6d4b\u8bd5\u53ef\u4fe1\u5ea6\uff0c\u8ba9\u201c\u901a\u8fc7\u201d\u53d8\u6210\u4e00\u79cd\u4eea\u5f0f\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4ea7\u54c1\u65b9\u5411\u6b63\u786e\uff0c\u4f46\u4ef7\u503c\u5151\u73b0\u53d6\u51b3\u4e8e\u5b83\u80fd\u5426\u628a\u201c\u5ba1\u67e5\u201d\u8fd9\u4ef6\u4e8b\u672c\u8eab\u4e5f\u81ea\u52a8\u5316\u5230\u8db3\u591f\u667a\u80fd\u2014\u2014\u5426\u5219\uff0c\u5b83\u53ea\u662f\u7ed9\u5feb\u9a6c\u52a0\u4e86\u4e00\u526f\u66f4\u91cd\u7684\u7f30\u7ef3\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\">Buddy Visual Tests<\/span>\n                <\/div>\n<div class=\"comment-content\">Not only can AI agents build your UI, they can now test what it actually looks like. Buddy Visual Tests captures every UI change, compares it pixel by pixel with an approved baseline, and brings visual regression testing straight into your delivery flow. With CLI, MCP and Skills support, agents can spot visual bugs, fix them, rerun tests, and hand over intentional changes for human approval.<\/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>We created Visual Tests because UI changes are getting faster and more frequent, especially with AI coding agents in the loop, but visual QA is still often manual, inconsistent, or happens too late.<\/p>\n<p>Visual Tests gives you a clear before-and-after of every UI change, with pixel-level comparisons, baselines, and review built directly into the delivery flow.<\/p>\n<p>What gets especially interesting is that the same workflow is available to AI agents through CLI, MCP, and Skills. That means visual checks can become part of the coding loop itself: an agent can make a change, run the tests, inspect the result, and react before the change reaches production.<\/p>\n<p>How are you handling visual QA in your team today? And do you think you could rely on agents to handle part of it?<\/p><\/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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi,<\/p>\n<\/p>\n<p>Head of the Buddy QA team here. We\u2019re running a couple thousand Playwright tests that cover pretty much the entire platform.<\/p>\n<\/p>\n<p>Adding Visual Tests on top of that gives us another layer of confidence. Playwright tells us whether everything works as expected, while Visual Tests help us catch layout shifts, styling issues, and other visual regressions that can still slip through a passing test suite.<\/p>\n<\/p>\n<p>For us, it fits naturally into the QA process we already had in place rather than replacing anything.<\/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<div class=\"comment-item\">\n<div class=\"comment-content\">\n<p>Hi,&nbsp;<\/p>\n<\/p>\n<p>Head of the Buddy frontend team here. Most of our frontend workflow already exists in Buddy: building Storybook, unit and e2e tests, preview environments (sandboxes) and automation. The only thing we had to do externally was visual regression.&nbsp;<\/p>\n<\/p>\n<p>Now every change runs against approved baselines and visual diffs across the component library get flagged automatically. Each run also publishes a hosted Storybook preview for the branch, which is handy when a diff needs a second pair of eyes.<\/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<\/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\/ZTALTKBK7KDAT7\" class=\"app-title\">ChatGPT Ad Library<\/a><\/p>\n<div class=\"one-liner\">See every ad running inside ChatGPT<\/div>\n<\/p><\/div>\n<div class=\"vote-btn\">\n<div class=\"vote-arrow\">\u25b2<\/div>\n<div class=\"vote-count\">80<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"one-liner\"><strong>\u4e00\u53e5\u8bdd\u4ecb\u7ecd\uff1a<\/strong>ChatGPT Ad Library \u662f\u9996\u4e2a\u516c\u5f00\u7684 ChatGPT \u5185\u8d5e\u52a9\u5e7f\u544a\u6570\u636e\u5e93\uff0c\u6536\u5f55\u8d85 41 \u4e07\u6761\u5e7f\u544a\u6295\u653e\uff0c\u53ef\u6309\u89e6\u53d1\u63d0\u793a\u8bcd\u53cd\u67e5\u7ade\u5bf9\u521b\u610f\uff0c\u89e3\u51b3\u5e7f\u544a\u4e3b\u5728 AI \u641c\u7d22\u573a\u666f\u4e2d\u201c\u770b\u4e0d\u89c1\u5bf9\u624b\u3001\u65e0\u6cd5\u4f18\u5316\u201d\u7684\u76f2\u533a\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\/4f56af80-a8f8-4256-b962-0354d028eb26.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\/8cc4a6e6-b25a-452d-9e32-c5ee7647a7db.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\/79a13e01-263f-43ae-9086-1c558a9e6cd6.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\">Analytics<\/span><br \/>\n            <span class=\"tag\">Advertising<\/span><br \/>\n            <span class=\"tag\">Tech<\/span>\n        <\/div>\n<div class=\"tags-container\">\n<p>            <span class=\"tag\">ChatGPT\u5e7f\u544a\u5e93<\/span><br \/>\n            <span class=\"tag\">\u7ade\u54c1\u5e7f\u544a\u76d1\u6d4b<\/span><br \/>\n            <span class=\"tag\">AI\u641c\u7d22\u5e7f\u544a<\/span><br \/>\n            <span class=\"tag\">\u5e7f\u544a\u521b\u610f\u5206\u6790<\/span><br \/>\n            <span class=\"tag\">\u63d0\u793a\u8bcd\u89e6\u53d1<\/span><br \/>\n            <span class=\"tag\">\u5e7f\u544a\u6295\u653e\u6d1e\u5bdf<\/span><br \/>\n            <span class=\"tag\">Ad Intelligence<\/span><br \/>\n            <span class=\"tag\">\u8425\u9500\u60c5\u62a5<\/span><br \/>\n            <span class=\"tag\">CTR\u4f18\u5316<\/span><br \/>\n            <span class=\"tag\">\u4ed8\u8d39\u5e7f\u544a\u6570\u636e\u5e93<\/span>\n        <\/div>\n<div class=\"reviews-section\">\n<div class=\"review-item\">\n<div class=\"review-bubble\">\n                <strong>\u7528\u6237\u8bc4\u8bba\u6458\u8981\uff1a<\/strong>\u7528\u6237\u8ba4\u53ef 41 \u4e07\u6761\u5e7f\u544a\u4e0e\u89e6\u53d1\u63d0\u793a\u8bcd\u5173\u8054\u7684\u4ef7\u503c\uff0c\u8ba4\u4e3a\u8fd9\u662f\u5f53\u524d AI \u641c\u7d22\u9886\u57df\u7a00\u7f3a\u7684\u201c\u63d0\u793a\u8bcd\u7ea7\u201d\u6570\u636e\u3002\u540c\u65f6\u63d0\u51fa\u5173\u952e\u7591\u95ee\uff1a\u8fd9\u4e9b\u89e6\u53d1\u63d0\u793a\u8bcd\u6765\u81ea\u771f\u5b9e\u7528\u6237\u4f1a\u8bdd\uff0c\u8fd8\u662f\u5408\u6210\u63a2\u6d4b\u751f\u6210\uff1f\u6697\u793a\u5bf9\u6570\u636e\u771f\u5b9e\u6027\u4e0e\u91c7\u6837\u65b9\u5f0f\u5b58\u7591\u3002\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"ai-section\">\n<div class=\"ai-content\" style=\"font-size: large;\"><strong>AI \u9510\u8bc4<\/strong><\/div>\n<p class=\"ai-content\">\n                \u8fd9\u6b3e\u4ea7\u54c1\u7684\u672c\u8d28\u662f\u201cAI \u641c\u7d22\u5e7f\u544a\u7684 SpyFu\u201d\uff0c\u5207\u4e2d\u4e86 ChatGPT \u5546\u4e1a\u5316\u65e9\u671f\u6700\u5927\u7684\u4fe1\u606f\u4e0d\u5bf9\u79f0\u2014\u2014\u5f53\u5e7f\u544a\u4e3b\u8fd8\u5728\u731c\u6d4b\u201c\u5e7f\u544a\u51fa\u73b0\u5728\u54ea\u4e2a prompt \u540e\u9762\u201d\u65f6\uff0c\u5b83\u76f4\u63a5\u7ed9\u51fa\u4e86 41 \u4e07\u4e2a\u7b54\u6848\u3002\u4ece\u6570\u636e\u91cf\u770b\uff0c4 \u4e07\u591a\u6761\u72ec\u7acb\u521b\u610f\u8986\u76d6 970 \u4e2a\u5229\u57fa\u5e02\u573a\uff0c\u8bf4\u660e\u5176\u6293\u53d6\u80fd\u529b\u4e0d\u5f31\uff0c\u4e14\u201c\u63d0\u793a\u8bcd\u2192\u5e7f\u544a\u201d\u7684\u53cd\u5411\u6620\u5c04\u786e\u5b9e\u5177\u6709\u72ec\u5bb6\u6027\uff0c\u8fd9\u662f\u5b83\u6700\u5927\u62a4\u57ce\u6cb3\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u4f46\u8bc4\u8bba\u533a\u7684\u8d28\u7591\u4e00\u9488\u89c1\u8840\uff1a\u5982\u679c\u89e6\u53d1\u63d0\u793a\u8bcd\u662f\u5408\u6210\u63a2\u6d4b\u800c\u975e\u771f\u5b9e\u7528\u6237\u4f1a\u8bdd\uff0c\u90a3\u4e48\u6570\u636e\u7684\u201c\u60c5\u62a5\u542b\u91d1\u91cf\u201d\u5c06\u5927\u6253\u6298\u6263\u2014\u2014\u5e7f\u544a\u4e3b\u9700\u8981\u7684\u4e0d\u662f\u201c\u6211\u641c\u4e86 X \u5c31\u51fa\u73b0\u5e7f\u544a\u201d\uff0c\u800c\u662f\u201c\u771f\u5b9e\u7528\u6237\u641c X \u65f6\u8c01\u7684\u5e7f\u544a\u51fa\u73b0\u4e86\u201d\u3002\u524d\u8005\u662f\u722c\u866b\u7ed3\u679c\uff0c\u540e\u8005\u624d\u662f\u7ade\u4e89\u60c5\u62a5\u3002\u6b64\u5916\uff0c415,289 \u6b21\u6295\u653e\u4e2d\uff0c\u91cd\u590d\u521b\u610f\u4e0e\u4f4e\u8d28\u5e7f\u544a\u7684\u5360\u6bd4\u672a\u62ab\u9732\uff0c\u53ef\u80fd\u5938\u5927\u201c\u6709\u6548\u6837\u672c\u201d\u6570\u91cf\u3002\n            <\/p>\n<p class=\"ai-content\">\n                \u66f4\u6df1\u5c42\u7684\u95ee\u9898\u662f\uff1aChatGPT \u7684\u5e7f\u544a\u4f4d\u5c1a\u5904\u4e8e\u6a21\u7cca\u5339\u914d\u9636\u6bb5\uff0c\u63d0\u793a\u8bcd\u4e0e\u5e7f\u544a\u7684\u5173\u8054\u672a\u5fc5\u7a33\u5b9a\uff08\u540c\u4e49\u6539\u5199\u3001\u4e0a\u4e0b\u6587\u504f\u79fb\u90fd\u4f1a\u6539\u53d8\u6295\u653e\u903b\u8f91\uff09\u3002\u56e0\u6b64\u8fd9\u4efd\u5e93\u66f4\u9002\u5408\u505a\u201c\u8d8b\u52bf\u89c2\u5bdf\u201d\u800c\u975e\u201c\u7cbe\u786e\u76d1\u6d4b\u201d\u3002\u82e5\u672a\u89e3\u51b3\u6570\u636e\u6765\u6e90\u900f\u660e\u5ea6\uff0c\u5e76\u6301\u7eed\u8ddf\u8fdb OpenAI \u5e7f\u544a\u7cfb\u7edf\u7684\u8fed\u4ee3\uff0c\u4ea7\u54c1\u6781\u6613\u4ece\u201c\u60c5\u62a5\u5de5\u5177\u201d\u9000\u5316\u4e3a\u201c\u5386\u53f2\u5b58\u6863\u201d\u3002\u4f46\u5bf9\u4e8e\u7b2c\u4e00\u6279\u60f3\u5728 ChatGPT \u4e0a\u6295\u653e\u7684\u8425\u9500\u4eba\uff0c\u62a2\u5148\u6d1e\u5bdf\u751f\u6001\u6846\u67b6\u672c\u8eab\u5c31\u662f\u4ef7\u503c\u2014\u2014\u54ea\u6015\u6570\u636e\u6709\u566a\u58f0\uff0c\u4e5f\u6bd4\u5b8c\u5168\u9ed1\u76d2\u5f3a\u3002\u5efa\u8bae\u56e2\u961f\u5c3d\u5feb\u516c\u5e03\u6570\u636e\u91c7\u96c6\u65b9\u6cd5\u8bba\uff0c\u5e76\u589e\u52a0\u6309\u65f6\u95f4\u7ef4\u5ea6\u7684\u5e7f\u544a\u53d8\u52a8\u8ffd\u8e2a\uff0c\u8fd9\u662f\u9ecf\u4f4f\u4ed8\u8d39\u7528\u6237\u7684\u5173\u952e\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\">ChatGPT Ad Library<\/span>\n                <\/div>\n<div class=\"comment-content\">The first public library of sponsored ads running inside ChatGPT: 11,103 advertisers, 415,289 ad placements, and 43,410 unique creatives across 970 niches each linked to the exact prompt that triggered it. Spy on Competitors ads and optimise your CTR.<\/div>\n<\/p><\/div>\n<p>            <!-- \u8bc4\u8bba\u5217\u8868 --><\/p>\n<div class=\"comment-item\">\n<div class=\"comment-content\">The first public library of sponsored ads running inside ChatGPT: 11,103 advertisers, 415,289 ad placements, and 43,410 unique creatives across 970 niches each linked to the exact prompt that triggered it. Spy on Competitors ads and optimise your ChatGPT Ads.<\/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\/@saumya_kumar3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@saumya_kumar3<\/a>&nbsp;415,289 placements linked to the exact prompt that triggered them is the interesting part, because prompt-level data is what everyone in AI search is missing right now. Are the triggering prompts collected from real user sessions or from synthetic probing?<\/p>\n<\/div>\n<div class=\"comment-actions\">\n<div class=\"comment-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<\/div>\n<p><!-- \u56fe\u7247\u653e\u5927\u6a21\u6001\u6846 --><\/p>\n<div id=\"imageModal\" class=\"modal\">\n    <span class=\"close\">&times;<\/span><br \/>\n    <img class=\"modal-content\" id=\"modalImage\">\n<\/div>\n<p><script>\n    \/\/ \u83b7\u53d6\u6a21\u6001\u6846\u5143\u7d20\n    const modal = document.getElementById(\"imageModal\");\n    const modalImg = document.getElementById(\"modalImage\");\n    const closeBtn = document.getElementsByClassName(\"close\")[0];<\/p>\n<p>    \/\/ \u68c0\u6d4b\u662f\u5426\u4e3a\u79fb\u52a8\u8bbe\u5907\n    const isMobile = \/iPhone|iPad|iPod|Android\/i.test(navigator.userAgent);<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4f18\u5316\n    function addTouchOptimization() {\n        if (isMobile) {\n            \/\/ \u4e3a\u6240\u6709\u53ef\u70b9\u51fb\u5143\u7d20\u6dfb\u52a0\u89e6\u6478\u53cd\u9988\n            const clickableElements = document.querySelectorAll(\n                '.media-content, .close, .video-overlay, .play-icon'\n            );<\/p>\n<p>            clickableElements.forEach(el => {\n                el.style.touchAction = 'manipulation'; \/\/ \u9632\u6b62\u53cc\u51fb\u7f29\u653e\n            });\n        }\n    }<\/p>\n<p>    \/\/ \u4e3a\u6240\u6709\u56fe\u7247\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\n    const images = document.querySelectorAll(\"img.media-content\");\n    images.forEach(img => {\n        img.onclick = function() {\n            modal.style.display = \"block\";\n            modalImg.src = this.src;\n            \/\/ \u963b\u6b62\u80cc\u666f\u6eda\u52a8\n            document.body.style.overflow = \"hidden\";\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            img.addEventListener('touchstart', function(e) {\n                \/\/ \u9632\u6b62\u89e6\u6478\u4e8b\u4ef6\u89e6\u53d1\u4e0d\u5fc5\u8981\u7684\u884c\u4e3a\n                e.preventDefault();\n                this.click();\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u4e3a\u89c6\u9891\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6 - \u8df3\u8f6c\u5230\u89c6\u9891URL\n    const videos = document.querySelectorAll(\"video.media-content\");\n    videos.forEach(video => {\n        \/\/ \u70b9\u51fb\u89c6\u9891\u672c\u8eab\u65f6\u8df3\u8f6c\u5230\u89c6\u9891URL\n        video.onclick = function(e) {\n            \/\/ \u68c0\u67e5\u70b9\u51fb\u76ee\u6807\u662f\u5426\u662f\u89c6\u9891\u63a7\u4ef6\u6216\u5176\u5b50\u5143\u7d20\n            let isControlClick = false;\n            let target = e.target;<\/p>\n<p>            \/\/ \u5411\u4e0a\u904d\u5386DOM\uff0c\u68c0\u67e5\u662f\u5426\u70b9\u51fb\u4e86\u63a7\u4ef6\u5143\u7d20\n            while (target && target !== this) {\n                \/\/ \u68c0\u67e5\u662f\u5426\u6709\u63a7\u4ef6\u76f8\u5173\u7684\u7c7b\u540d\u6216\u5c5e\u6027\n                if (target.classList.contains('video-js') || \n                    target.tagName.toLowerCase() === 'button' || \n                    target.tagName.toLowerCase() === 'input' || \n                    target.tagName.toLowerCase() === 'select' ||\n                    target.className.includes('control')) {\n                    isControlClick = true;\n                    break;\n                }\n                target = target.parentElement;\n            }<\/p>\n<p>            \/\/ \u53ea\u6709\u5f53\u70b9\u51fb\u7684\u662f\u89c6\u9891\u672c\u8eab\u800c\u975e\u63a7\u4ef6\u65f6\u624d\u8df3\u8f6c\n            if (!isControlClick && e.target.tagName.toLowerCase() === 'video') {\n                const videoUrl = this.getAttribute('data-video-url') || this.querySelector('source').src;\n                window.open(videoUrl, '_blank');\n            }\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            video.addEventListener('touchstart', function(e) {\n                \/\/ \u68c0\u67e5\u662f\u5426\u70b9\u51fb\u4e86\u63a7\u4ef6\n                let isControlClick = false;\n                let target = e.target;<\/p>\n<p>                while (target && target !== this) {\n                    if (target.tagName.toLowerCase() === 'button' || \n                        target.tagName.toLowerCase() === 'input' || \n                        target.className.includes('control')) {\n                        isControlClick = true;\n                        break;\n                    }\n                    target = target.parentElement;\n                }<\/p>\n<p>                if (!isControlClick) {\n                    e.preventDefault();\n                    const videoUrl = this.getAttribute('data-video-url') || this.querySelector('source').src;\n                    window.open(videoUrl, '_blank');\n                }\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u4e3a\u89c6\u9891\u906e\u7f69\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\uff0c\u786e\u4fdd\u70b9\u51fb\u906e\u7f69\u4e5f\u80fd\u8df3\u8f6c\n    const videoOverlays = document.querySelectorAll('.video-overlay');\n    videoOverlays.forEach(overlay => {\n        overlay.onclick = function(e) {\n            \/\/ \u963b\u6b62\u4e8b\u4ef6\u5192\u6ce1\u5230\u89c6\u9891\u5143\u7d20\n            e.stopPropagation();\n            const video = this.parentElement.querySelector('video.media-content');\n            if (video) {\n                const videoUrl = video.getAttribute('data-video-url') || video.querySelector('source').src;\n                window.open(videoUrl, '_blank');\n            }\n        }<\/p>\n<p>        \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n        if (isMobile) {\n            overlay.addEventListener('touchstart', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const video = this.parentElement.querySelector('video.media-content');\n                if (video) {\n                    const videoUrl = video.getAttribute('data-video-url') || video.querySelector('source').src;\n                    window.open(videoUrl, '_blank');\n                }\n            }, { passive: false });\n        }\n    });<\/p>\n<p>    \/\/ \u5173\u95ed\u6a21\u6001\u6846\n    closeBtn.onclick = function() {\n        modal.style.display = \"none\";\n        \/\/ \u6062\u590d\u80cc\u666f\u6eda\u52a8\n        document.body.style.overflow = \"auto\";\n    }<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n    if (isMobile) {\n        closeBtn.addEventListener('touchstart', function(e) {\n            e.preventDefault();\n            modal.style.display = \"none\";\n            document.body.style.overflow = \"auto\";\n        }, { passive: false });\n    }<\/p>\n<p>    \/\/ \u70b9\u51fb\u6a21\u6001\u6846\u5916\u90e8\u5173\u95ed\n    window.onclick = function(event) {\n        if (event.target === modal) {\n            modal.style.display = \"none\";\n            document.body.style.overflow = \"auto\";\n        }\n    }<\/p>\n<p>    \/\/ \u4e3a\u79fb\u52a8\u8bbe\u5907\u6dfb\u52a0\u89e6\u6478\u4e8b\u4ef6\u652f\u6301\n    if (isMobile) {\n        modal.addEventListener('touchstart', function(e) {\n            if (e.target === modal) {\n                modal.style.display = \"none\";\n                document.body.style.overflow = \"auto\";\n            }\n        }, { passive: true });\n    }<\/p>\n<p>    \/\/ \u6309ESC\u952e\u5173\u95ed\u6a21\u6001\u6846\n    document.addEventListener('keydown', function(event) {\n        if (event.key === 'Escape' && modal.style.display === 'block') {\n            modal.style.display = 'none';\n            document.body.style.overflow = \"auto\";\n        }\n    });<\/p>\n<p>    \/\/ \u68c0\u67e5\u6bcf\u4e2a\u5a92\u4f53\u753b\u5eca\u4e2d\u662f\u5426\u53ea\u6709\u4e00\u4e2a\u9879\u76ee\uff0c\u5982\u679c\u662f\uff0c\u6dfb\u52a0single-item\u7c7b\n    document.querySelectorAll('.media-gallery').forEach(gallery => {\n        if (gallery.querySelectorAll('.media-item-wrapper').length === 1) {\n            gallery.classList.add('single-item');\n        }\n    });<\/p>\n<p>    \/\/ \u521d\u59cb\u5316\u89e6\u6478\u4f18\u5316\n    addTouchOptimization();<\/p>\n<p>    \/\/ \u7a97\u53e3\u5927\u5c0f\u53d8\u5316\u65f6\u91cd\u65b0\u68c0\u67e5\u753b\u5eca\u72b6\u6001\n    window.addEventListener('resize', function() {\n        document.querySelectorAll('.media-gallery').forEach(gallery => {\n            if (gallery.querySelectorAll('.media-item-wrapper').length === 1) {\n                gallery.classList.add('single-item');\n            } else {\n                gallery.classList.remove('single-item');\n            }\n        });\n    });<\/p>\n<p>    \/\/ --- \u8bc4\u8bba\u533a\u57df\u6298\u53e0\/\u5c55\u5f00\u529f\u80fd ---\n    const commentToggles = document.querySelectorAll('.comments-toggle');<\/p>\n<p>    commentToggles.forEach(toggle => {\n        toggle.addEventListener('click', function() {\n            \/\/ \u5207\u6362\u5f53\u524dtoggle\u7684open\u72b6\u6001\n            this.classList.toggle('open');<\/p>\n<p>            \/\/ \u83b7\u53d6\u5bf9\u5e94\u7684\u8bc4\u8bba\u5bb9\u5668\n            const commentsContainer = this.nextElementSibling;\n            if (commentsContainer && commentsContainer.classList.contains('comments-container')) {\n                commentsContainer.classList.toggle('open');\n            }\n        });\n    });\n<\/script><\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Product Hunt \u6bcf\u65e5\u70ed\u699c 2026-08-25 PH\u70ed\u699c | 2026-08-25 #1 akta. [&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-324","post","type-post","status-publish","format-standard","hentry","category-producthunt"],"_links":{"self":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/324","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=324"}],"version-history":[{"count":0,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/posts\/324\/revisions"}],"wp:attachment":[{"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/media?parent=324"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/categories?post=324"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ph.listeningo.cn\/index.php\/wp-json\/wp\/v2\/tags?post=324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}