zerocostai 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,109 @@
1
+ Metadata-Version: 2.4
2
+ Name: zerocostai
3
+ Version: 1.0.0
4
+ Summary: Python client and CLI for ZeroCostAI.pro — 720+ verified 100% free AI applications directory
5
+ Home-page: https://zerocostai.pro
6
+ Author: ZeroCostAI Research Labs
7
+ Author-email: support@zerocostai.pro
8
+ Project-URL: Homepage, https://zerocostai.pro
9
+ Project-URL: Directory, https://zerocostai.pro/#toolsGrid
10
+ Project-URL: Documentation, https://zerocostai.pro/blog/
11
+ Project-URL: Leaderboard, https://zerocostai.pro/trending/
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
16
+ Classifier: Topic :: Utilities
17
+ Requires-Python: >=3.7
18
+ Description-Content-Type: text/markdown
19
+ Dynamic: author
20
+ Dynamic: author-email
21
+ Dynamic: classifier
22
+ Dynamic: description
23
+ Dynamic: description-content-type
24
+ Dynamic: home-page
25
+ Dynamic: project-url
26
+ Dynamic: requires-python
27
+ Dynamic: summary
28
+
29
+ # ZeroCostAI: Verified Free AI Tools Directory (2026)
30
+
31
+ [![PyPI version](https://img.shields.io/pypi/v/zerocostai.svg)](https://pypi.org/project/zerocostai/)
32
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
33
+ [![Website: zerocostai.pro](https://img.shields.io/badge/Official_Website-zerocostai.pro-2563eb)](https://zerocostai.pro)
34
+
35
+ Official Python SDK and Terminal CLI for [ZeroCostAI.pro](https://zerocostai.pro) — the verified directory of 100% free, open-source, and no-login AI applications.
36
+
37
+ ---
38
+
39
+ ## ⚔ Installation
40
+
41
+ Install via pip:
42
+
43
+ ```bash
44
+ pip install zerocostai
45
+ ```
46
+
47
+ ---
48
+
49
+ ## šŸš€ Terminal CLI Usage
50
+
51
+ Search and discover free AI tools directly from your terminal:
52
+
53
+ ### 1. Search for AI Tools
54
+ ```bash
55
+ # Search by keyword
56
+ zerocostai search video
57
+
58
+ # Filter tools that require zero login/signup
59
+ zerocostai search coding --no-login
60
+
61
+ # Limit results
62
+ zerocostai search "image" -n 5
63
+ ```
64
+
65
+ ### 2. List All Categories
66
+ ```bash
67
+ zerocostai categories
68
+ ```
69
+
70
+ ### 3. Discover a Random Free AI Tool
71
+ ```bash
72
+ zerocostai random
73
+ ```
74
+
75
+ ---
76
+
77
+ ## šŸ Python API Usage
78
+
79
+ ```python
80
+ import zerocostai
81
+
82
+ # Search verified free tools
83
+ tools = zerocostai.search("voice", limit=5)
84
+ for t in tools:
85
+ print(f"{t['name']} - {t['review_url']}")
86
+
87
+ # Get specific tool details
88
+ tool = zerocostai.get_tool("flux-schnell")
89
+ print(tool["pricing_tier"]) # "Free Tier"
90
+
91
+ # Explore categories
92
+ cats = zerocostai.list_categories()
93
+ print(cats)
94
+ ```
95
+
96
+ ---
97
+
98
+ ## 🌐 Official Web Platform
99
+
100
+ For the full interactive directory, community leaderboard, and editorial testing notes:
101
+ * **Directory:** [https://zerocostai.pro/#toolsGrid](https://zerocostai.pro/#toolsGrid)
102
+ * **Trending Tools:** [https://zerocostai.pro/trending/](https://zerocostai.pro/trending/)
103
+ * **Submit AI Tool:** [https://zerocostai.pro/submit/](https://zerocostai.pro/submit/)
104
+
105
+ ---
106
+
107
+ ## License
108
+
109
+ MIT License. Maintained by [ZeroCostAI Research Labs](https://zerocostai.pro).
@@ -0,0 +1,81 @@
1
+ # ZeroCostAI: Verified Free AI Tools Directory (2026)
2
+
3
+ [![PyPI version](https://img.shields.io/pypi/v/zerocostai.svg)](https://pypi.org/project/zerocostai/)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
5
+ [![Website: zerocostai.pro](https://img.shields.io/badge/Official_Website-zerocostai.pro-2563eb)](https://zerocostai.pro)
6
+
7
+ Official Python SDK and Terminal CLI for [ZeroCostAI.pro](https://zerocostai.pro) — the verified directory of 100% free, open-source, and no-login AI applications.
8
+
9
+ ---
10
+
11
+ ## ⚔ Installation
12
+
13
+ Install via pip:
14
+
15
+ ```bash
16
+ pip install zerocostai
17
+ ```
18
+
19
+ ---
20
+
21
+ ## šŸš€ Terminal CLI Usage
22
+
23
+ Search and discover free AI tools directly from your terminal:
24
+
25
+ ### 1. Search for AI Tools
26
+ ```bash
27
+ # Search by keyword
28
+ zerocostai search video
29
+
30
+ # Filter tools that require zero login/signup
31
+ zerocostai search coding --no-login
32
+
33
+ # Limit results
34
+ zerocostai search "image" -n 5
35
+ ```
36
+
37
+ ### 2. List All Categories
38
+ ```bash
39
+ zerocostai categories
40
+ ```
41
+
42
+ ### 3. Discover a Random Free AI Tool
43
+ ```bash
44
+ zerocostai random
45
+ ```
46
+
47
+ ---
48
+
49
+ ## šŸ Python API Usage
50
+
51
+ ```python
52
+ import zerocostai
53
+
54
+ # Search verified free tools
55
+ tools = zerocostai.search("voice", limit=5)
56
+ for t in tools:
57
+ print(f"{t['name']} - {t['review_url']}")
58
+
59
+ # Get specific tool details
60
+ tool = zerocostai.get_tool("flux-schnell")
61
+ print(tool["pricing_tier"]) # "Free Tier"
62
+
63
+ # Explore categories
64
+ cats = zerocostai.list_categories()
65
+ print(cats)
66
+ ```
67
+
68
+ ---
69
+
70
+ ## 🌐 Official Web Platform
71
+
72
+ For the full interactive directory, community leaderboard, and editorial testing notes:
73
+ * **Directory:** [https://zerocostai.pro/#toolsGrid](https://zerocostai.pro/#toolsGrid)
74
+ * **Trending Tools:** [https://zerocostai.pro/trending/](https://zerocostai.pro/trending/)
75
+ * **Submit AI Tool:** [https://zerocostai.pro/submit/](https://zerocostai.pro/submit/)
76
+
77
+ ---
78
+
79
+ ## License
80
+
81
+ MIT License. Maintained by [ZeroCostAI Research Labs](https://zerocostai.pro).
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,38 @@
1
+ from setuptools import setup, find_packages
2
+ import os
3
+
4
+ with open("README.md", "r", encoding="utf-8") as fh:
5
+ long_description = fh.read()
6
+
7
+ setup(
8
+ name="zerocostai",
9
+ version="1.0.0",
10
+ author="ZeroCostAI Research Labs",
11
+ author_email="support@zerocostai.pro",
12
+ description="Python client and CLI for ZeroCostAI.pro — 720+ verified 100% free AI applications directory",
13
+ long_description=long_description,
14
+ long_description_content_type="text/markdown",
15
+ url="https://zerocostai.pro",
16
+ project_urls={
17
+ "Homepage": "https://zerocostai.pro",
18
+ "Directory": "https://zerocostai.pro/#toolsGrid",
19
+ "Documentation": "https://zerocostai.pro/blog/",
20
+ "Leaderboard": "https://zerocostai.pro/trending/",
21
+ },
22
+ classifiers=[
23
+ "Programming Language :: Python :: 3",
24
+ "License :: OSI Approved :: MIT License",
25
+ "Operating System :: OS Independent",
26
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
27
+ "Topic :: Utilities",
28
+ ],
29
+ packages=find_packages(),
30
+ package_data={"zerocostai": ["tools.json"]},
31
+ include_package_data=True,
32
+ python_requires=">=3.7",
33
+ entry_points={
34
+ "console_scripts": [
35
+ "zerocostai=zerocostai.cli:main",
36
+ ],
37
+ },
38
+ )
@@ -0,0 +1,67 @@
1
+ """
2
+ ZeroCostAI Python Client & CLI
3
+ Verified Directory of 100% Free AI Applications (2026)
4
+ Homepage: https://zerocostai.pro
5
+ """
6
+
7
+ import json
8
+ import os
9
+ import random
10
+
11
+ __version__ = "1.0.0"
12
+ __author__ = "ZeroCostAI Research Labs"
13
+ __homepage__ = "https://zerocostai.pro"
14
+
15
+ _DATA_PATH = os.path.join(os.path.dirname(__file__), "tools.json")
16
+
17
+ def _load_data():
18
+ with open(_DATA_PATH, "r", encoding="utf-8") as f:
19
+ return json.load(f)
20
+
21
+ def search(query="", category=None, no_login_only=False, limit=10):
22
+ """
23
+ Search verified free AI tools.
24
+ Visit https://zerocostai.pro for interactive UI and rankings.
25
+ """
26
+ tools = _load_data()
27
+ q = query.lower().strip()
28
+ results = []
29
+
30
+ for t in tools:
31
+ if no_login_only and not t.get("no_login_required"):
32
+ continue
33
+ if category and t.get("category", "").lower() != category.lower() and t.get("category_label", "").lower() != category.lower():
34
+ continue
35
+ if q:
36
+ name_match = q in t.get("name", "").lower()
37
+ cat_match = q in t.get("category_label", "").lower()
38
+ if not (name_match or cat_match):
39
+ continue
40
+ results.append(t)
41
+ if len(results) >= limit:
42
+ break
43
+
44
+ return results
45
+
46
+ def get_tool(slug):
47
+ """Get detailed metadata for a specific tool by slug."""
48
+ tools = _load_data()
49
+ for t in tools:
50
+ if t.get("slug", "").lower() == slug.lower():
51
+ return t
52
+ return None
53
+
54
+ def list_categories():
55
+ """List all available AI tool categories."""
56
+ tools = _load_data()
57
+ cats = {}
58
+ for t in tools:
59
+ cl = t.get("category_label")
60
+ if cl:
61
+ cats[cl] = cats.get(cl, 0) + 1
62
+ return dict(sorted(cats.items(), key=lambda x: x[1], reverse=True))
63
+
64
+ def random_tool():
65
+ """Discover a random verified free AI tool."""
66
+ tools = _load_data()
67
+ return random.choice(tools) if tools else None
@@ -0,0 +1,71 @@
1
+ import sys
2
+ import argparse
3
+ from zerocostai import search, list_categories, random_tool, __version__
4
+
5
+ def main():
6
+ parser = argparse.ArgumentParser(
7
+ prog="zerocostai",
8
+ description="ZeroCostAI CLI — Search 720+ verified free AI tools from your terminal. (https://zerocostai.pro)"
9
+ )
10
+ parser.add_argument("-v", "--version", action="version", version=f"%(prog)s {__version__}")
11
+
12
+ subparsers = parser.add_subparsers(dest="command")
13
+
14
+ # search cmd
15
+ search_p = subparsers.add_parser("search", help="Search free AI tools by keyword or category")
16
+ search_p.add_argument("query", nargs="?", default="", help="Keyword to search (e.g. video, voice, coding)")
17
+ search_p.add_argument("-c", "--category", default=None, help="Filter by category")
18
+ search_p.add_argument("--no-login", action="store_true", help="Filter for tools that require no login")
19
+ search_p.add_argument("-n", "--limit", type=int, default=10, help="Maximum number of results (default: 10)")
20
+
21
+ # categories cmd
22
+ subparsers.add_parser("categories", help="List all tool categories and tool counts")
23
+
24
+ # random cmd
25
+ subparsers.add_parser("random", help="Get a random verified free AI tool")
26
+
27
+ args = parser.parse_args()
28
+
29
+ if args.command == "search" or (not args.command and len(sys.argv) > 1):
30
+ q = getattr(args, "query", sys.argv[1] if len(sys.argv) > 1 and not sys.argv[1].startswith("-") else "")
31
+ cat = getattr(args, "category", None)
32
+ nl = getattr(args, "no_login", False)
33
+ lim = getattr(args, "limit", 10)
34
+
35
+ results = search(query=q, category=cat, no_login_only=nl, limit=lim)
36
+ if not results:
37
+ print(f"No free AI tools found matching '{q}'. Visit https://zerocostai.pro/#toolsGrid to browse 720+ tools.")
38
+ return
39
+
40
+ print(f"\nFound {len(results)} verified free AI tools:\n" + "="*50)
41
+ for i, t in enumerate(results, start=1):
42
+ nl_badge = " [NO LOGIN REQUIRED]" if t.get("no_login_required") else ""
43
+ print(f"{i}. {t['name']} ({t['category_label']}){nl_badge}")
44
+ print(f" Tier: {t['pricing_tier']}")
45
+ print(f" Review: {t['review_url']}")
46
+ print(f" Website: {t['official_url']}")
47
+ print("-" * 50)
48
+
49
+ elif args.command == "categories":
50
+ cats = list_categories()
51
+ print("\nZeroCostAI Categories & Verified Counts:\n" + "="*40)
52
+ for cat, count in cats.items():
53
+ print(f"• {cat:<28} : {count:>3} tools")
54
+ print("="*40 + "\nBrowse online at: https://zerocostai.pro\n")
55
+
56
+ elif args.command == "random":
57
+ t = random_tool()
58
+ if t:
59
+ print("\nšŸŽ² Random Verified Free AI Tool:\n" + "="*40)
60
+ print(f"Name : {t['name']}")
61
+ print(f"Category : {t['category_label']}")
62
+ print(f"Tier : {t['pricing_tier']}")
63
+ print(f"No Login : {'Yes' if t.get('no_login_required') else 'No'}")
64
+ print(f"Review : {t['review_url']}")
65
+ print("="*40 + "\n")
66
+ else:
67
+ parser.print_help()
68
+ print("\nExplore the full interactive directory at https://zerocostai.pro")
69
+
70
+ if __name__ == "__main__":
71
+ main()