\n```\n\nNotes:\n- The JS client is distributed via the g4f.dev CDN for easy usage. Review CORS considerations and usage limits.\n\n---\n\n## Providers & models (overview)\n- GPT4Free integrates many providers including (but not limited to) OpenAI-compatible endpoints, PerplexityLabs, Gemini, MetaAI, Pollinations (media), and local inference backends.\n- Model availability and behavior depend on provider capabilities. See the providers doc for current, supported provider/model lists: https://g4f.dev/docs/providers-and-models\n\nProvider requirements may include:\n- API keys or tokens (for authenticated providers)\n- Browser cookies / HAR files for providers scraped via browser automation\n- Chrome/Chromium or headless browser tooling\n- Local model binaries and runtime (for local inference)\n\n---\n\n## Local inference & media\n- GPT4Free supports local inference backends. See [docs/local.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/local.md) for supported runtimes and hardware guidance.\n- Media generation (image, audio, video) is supported through providers (e.g., Pollinations). See [docs/media.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/media.md) for formats, options, and sample usage.\n\n---\n\n## Configuration & customization\n- Configure via environment variables, CLI flags, or config files. See [docs/config.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/config.md).\n- To reduce install size, use partial requirement groups. See [docs/requirements.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/requirements.md).\n- Provider selection: learn how to set defaults and override per-request at [docs/selecting_a_provider.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/selecting_a_provider.md).\n- Persistence: HAR files, cookies, and generated media persist in mapped directories (e.g., har_and_cookies, generated_media).\n\n---\n\n## Running on smartphone\n- The web GUI is responsive and can be accessed from a phone by visiting your host IP:8080 or via a tunnel. See [docs/guides/phone.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/guides/phone.md).\n\n---\n\n## Interference API (OpenAI\u2011compatible)\n- The Interference API enables OpenAI-like workflows routed through GPT4Free provider selection.\n- Docs: [docs/interference-api.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/interference-api.md)\n- Default endpoint (example slim docker): `http://localhost:1337/v1`\n- Swagger UI: `http://localhost:1337/docs`\n\n---\n\n## Examples & common patterns\n- Streaming completions, stopping criteria, system messages, and tool-calling patterns are documented in:\n - [docs/client.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/client.md)\n - [docs/async_client.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/async_client.md)\n - [docs/requests.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/requests.md)\n- Integrations (LangChain, PydanticAI): [docs/pydantic_ai.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/pydantic_ai.md)\n- Legacy examples: [docs/legacy.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/legacy.md)\n\n---\n\n## Contributing\nContributions are welcome \u2014 new providers, features, docs, and fixes are appreciated.\n\nHow to contribute:\n1. Fork the repository.\n2. Create a branch for your change.\n3. Run tests and linters.\n4. Open a Pull Request with a clear description and tests/examples if applicable.\n\nRepository: https://github.com/xtekky/gpt4free\n\n### How to create a new provider\n- Read the guide: [docs/guides/create_provider.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/guides/create_provider.md)\n- Typical steps:\n - Implement a provider adapter in `g4f/Provider/`\n - Add configuration and dependency notes\n - Include tests and usage examples\n - Respect third\u2011party code licenses and attribute appropriately\n\n### How AI can help you write code\n- See: [docs/guides/help_me.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/guides/help_me.md) for prompt templates and workflows to accelerate development.\n\n---\n\n## Security, privacy & takedown policy\n- Do not store or share sensitive credentials. Use per-provider recommended security practices.\n- If your site appears in the project\u2019s links and you want it removed, send proof of ownership to takedown@g4f.ai and it will be removed promptly.\n- For production, secure the server with HTTPS, authentication, and firewall rules. Limit access to provider credentials and cookie/HAR storage.\n\n---\n\n## Credits, contributors & attribution\n- Core creators: [@xtekky](https://github.com/xtekky) (original), maintained by [@hlohaus](https://github.com/hlohaus).\n- Full contributor graph: https://github.com/xtekky/gpt4free/graphs/contributors\n- Notable code inputs and attributions:\n - `har_file.py` \u2014 input from [xqdoo00o/ChatGPT-to-API](https://github.com/xqdoo00o/ChatGPT-to-API)\n - `PerplexityLabs.py` \u2014 input from [nathanrchn/perplexityai](https://github.com/nathanrchn/perplexityai)\n - `Gemini.py` \u2014 input from [dsdanielpark/Gemini-API](https://github.com/dsdanielpark/Gemini-API) and [HanaokaYuzu/Gemini-API](https://github.com/HanaokaYuzu/Gemini-API)\n - `MetaAI.py` \u2014 inspired by [meta-ai-api by Strvm](https://github.com/Strvm/meta-ai-api)\n - `proofofwork.py` \u2014 input from [missuo/FreeGPT35](https://github.com/missuo/FreeGPT35)\n\nMany more contributors are acknowledged in the repository.\n\n---\n\n## Powered-by highlights\n- Pollinations AI \u2014 generative media: https://github.com/pollinations/pollinations\n- MoneyPrinter V2 \u2014 example project using GPT4Free: https://github.com/FujiwaraChoki/MoneyPrinterV2\n- For a full list of projects and sites using GPT4Free, see: [docs/powered-by.md](https://github.com/gpt4free/g4f.dev/blob/main/docs/powered-by.md)\n\n---\n\n## Changelog & releases\n- Releases and full changelog: https://github.com/xtekky/gpt4free/releases\n- Subscribe to Discord/Telegram for announcements.\n\n---\n\n## Manifesto / Project principles\nGPT4Free is guided by community principles:\n1. Open access to AI tooling and models.\n2. Collaboration across providers and projects.\n3. Opposition to monopolistic, closed systems that restrict creativity.\n4. Community-centered development and broad access to AI technologies.\n5. Promote innovation, creativity, and accessibility.\n\nhttps://g4f.dev/manifest\n\n---\n\n## License\nThis program is licensed under the GNU General Public License v3.0 (GPLv3). See the full license: https://www.gnu.org/licenses/gpl-3.0.txt\n\nSummary:\n- You may redistribute and/or modify under the terms of GPLv3.\n- The program is provided WITHOUT ANY WARRANTY.\n\nCopyright notice\n```\nxtekky/gpt4free: Copyright (C) 2025 xtekky\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n```\n\n---\n\n## Contact & sponsorship\n- Maintainers: https://github.com/hlohaus\n- Sponsorship: https://github.com/sponsors/hlohaus\n- Issues & feature requests: https://github.com/xtekky/gpt4free/issues\n- Takedown requests: takedown@g4f.ai\n\n---\n\n## Appendix: Quick commands & examples\n\nInstall (pip):\n```bash\npip install -U g4f[all]\n```\n\nRun GUI (Python):\n```bash\npython -m g4f.cli gui --port 8080 --debug\n# or\npython -c \"from g4f.gui import run_gui; run_gui()\"\n```\n\nDocker (full):\n```bash\ndocker pull hlohaus789/g4f\ndocker run -p 8080:8080 -p 7900:7900 \\\n --shm-size=\"2g\" \\\n -v ${PWD}/har_and_cookies:/app/har_and_cookies \\\n -v ${PWD}/generated_media:/app/generated_media \\\n hlohaus789/g4f:latest\n```\n\nDocker (slim):\n```bash\ndocker run -p 1337:8080 -p 8080:8080 \\\n -v ${PWD}/har_and_cookies:/app/har_and_cookies \\\n -v ${PWD}/generated_media:/app/generated_media \\\n hlohaus789/g4f:latest-slim\n```\n\nPython usage patterns:\n- `client.chat.completions.create(...)`\n- `client.images.generate(...)`\n- Async variants via `AsyncClient`\n\nDocs & deeper reading\n- Full docs: https://g4f.dev/docs\n- Client API docs: https://g4f.dev/docs/client\n- Async client docs: https://g4f.dev/docs/async_client\n- Provider guides: https://g4f.dev/docs/guides\n- Local inference: https://g4f.dev/docs/local\n\n---\n\nThank you for using and contributing to GPT4Free \u2014 together we make powerful AI tooling accessible, flexible, and community-driven.",
"installation_instructions": null,
"categories": [
"Everything"
],
"owners": [],
"owner": null,
"code_snippets": {},
"evaluation_results": [],
"found_via_ownership_request": false,
"hosting_eligible": false,
"knative_enabled": false,
"security_scans": [
{
"repo_url": "https://github.com/xtekky/gpt4free",
"repo_name": "gpt4free",
"score": 81,
"risk_level": "moderate",
"score_explanation": "Score starts at 100, deducts points for security issues, and adds points for security best practices",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"mcp_app_id": "c640faf6-1d47-4dd7-a9a1-145a936664aa",
"scan_time": "2025-11-02T00:08:47.557580+00:00",
"created_at": "2025-11-02T00:08:47.561113+00:00",
"updated_at": "2025-11-02T00:08:47.561113+00:00",
"findings": [
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/Provider/Copilot.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "44cae76f-ab1a-415b-a80f-0c5c306dbf8e",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 312,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/Provider/OperaAria.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "eb8f3a9b-eec5-4b4f-abf7-2059461abafb",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 237,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/Provider/needs_auth/Gemini.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "4490ea17-102a-4b21-b073-09bedbff4a6a",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 461,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/Provider/needs_auth/Gemini.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "50ad5f1b-3e8b-436d-a9c0-0af89ec345fa",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 463,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/Provider/needs_auth/OpenaiChat.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "4502cc41-f239-464f-b5c5-dce99d037255",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 869,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/Provider/needs_auth/OpenaiChat.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "53897570-77ed-4474-86c6-ba923301c5a9",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 958,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/Provider/not_working/Vercel.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "fc8d2cf4-d8e2-462e-a3da-ec115f6ce1da",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 99,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/Provider/openai/crypt.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "f73024eb-aa27-46f9-888e-0d8c30d575f3",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 51,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/Provider/openai/crypt.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "ea0737fd-667a-4d4d-805a-87482151009a",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 52,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/Provider/openai/har_file.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "80d4ad89-0bbe-4f22-9d6a-89cdee974f5f",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 81,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/Provider/openai/new.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "b052f727-b071-4d00-baf4-e99baa448e7d",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 478,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/Provider/openai/new.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "45d34bdb-722f-4cae-a260-36fdc03a5877",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 651,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/api/__init__.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "22f901ce-24c8-4264-a6d1-b40822b0ee3b",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 720,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/gui/server/crypto.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "9113e1f9-5a82-4eab-b578-ef503aca8ed0",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 72,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/image/__init__.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "469bc007-deb9-4fba-b7af-aafb7e4671c5",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 329,
"created_at": "2025-11-02T00:08:47.561113+00:00"
},
{
"type": "semgrep",
"rule_id": "security-validator.scanner.rules.semgrep.base64-decode",
"scan_id": "66f150a7-4b9b-40c0-b4fa-0cad31f82dc3",
"severity": "INFO",
"path": "g4f/image/copy_images.py",
"meta_info": {
"lines": "requires login",
"pattern": "",
"rule_name": "obfuscation"
},
"finding_id": "5719e8d9-cf65-4a2d-82cb-5adb6ccf973a",
"message": "Use of base64 decoding detected. This might indicate obfuscated code.",
"line": 74,
"created_at": "2025-11-02T00:08:47.561113+00:00"
}
],
"vulnerabilities": []
}
]
}
}
Gpt Free
The official gpt4free repository | various collection of powerful language models | o4, o3 and deepseek r1, gpt-4.1, gemini 2.5