Top Related Projects
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
A browser automation framework and ecosystem.
JavaScript API for Chrome and Firefox
Fast, easy and reliable testing for anything that runs in a browser.
Generic automation framework for acceptance testing and RPA
Cross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol
Quick Overview
TagUI is an open-source RPA (Robotic Process Automation) tool developed by AI Singapore. It allows users to automate web interactions, desktop applications, and other repetitive tasks using a simple, natural language-like syntax. TagUI supports multiple operating systems and can be extended with Python and R for more complex automation scenarios.
Pros
- Easy to learn and use, with a natural language-like syntax
- Cross-platform support (Windows, macOS, Linux)
- Extensible with Python and R for advanced functionality
- Free and open-source
Cons
- Limited community support compared to some commercial RPA tools
- Documentation can be sparse for more advanced use cases
- May require additional setup for certain features (e.g., OCR, computer vision)
- Performance can be slower compared to some native automation solutions
Code Examples
- Web automation example:
// Open a website and perform a search
https://www.google.com
type search as TagUI automation
click search_button
wait 2 seconds
snap page to results.png
- Desktop automation example:
// Open Notepad and type a message
run notepad
type "Hello, TagUI!"
keyboard [ctrl]s
type "test_file.txt"
click save_button
- Using Python in TagUI:
// Use Python to calculate and print a result
py begin
import math
result = math.sqrt(16) + math.pi
print(f"The result is: {result}")
py finish
Getting Started
-
Install TagUI:
- Windows: Download and run the TagUI installer from the GitHub releases page
- macOS/Linux: Run
curl -sL https://git.io/tagui | bash
in the terminal
-
Create a new file named
test.tag
with the following content:
https://www.google.com
type search as TagUI tutorial
click search_button
wait 2 seconds
echo "Search completed!"
- Run the script:
- Windows:
tagui test.tag
- macOS/Linux:
./tagui test.tag
- Windows:
For more information and advanced usage, refer to the TagUI documentation on GitHub.
Competitor Comparisons
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
Pros of Playwright
- Cross-browser support for Chromium, Firefox, and WebKit
- Powerful API with advanced automation capabilities
- Strong community support and regular updates
Cons of Playwright
- Steeper learning curve for beginners
- Requires Node.js environment to run
- More complex setup for simple automation tasks
Code Comparison
TagUI:
click Login
type username as user@email.com
type password as 12345678
click Submit
Playwright:
await page.click('text=Login');
await page.fill('input[name="username"]', 'user@email.com');
await page.fill('input[name="password"]', '12345678');
await page.click('text=Submit');
Key Differences
- TagUI uses a simpler, more readable syntax for basic tasks
- Playwright offers more granular control and advanced features
- TagUI is designed for quick automation, while Playwright is better suited for comprehensive testing
Use Cases
- TagUI: Rapid prototyping, simple web scraping, and basic automation
- Playwright: Complex web testing, cross-browser compatibility testing, and advanced web automation scenarios
Community and Support
- TagUI: Smaller but growing community, primarily focused on RPA
- Playwright: Large, active community with extensive documentation and third-party resources
A browser automation framework and ecosystem.
Pros of Selenium
- Widely adopted and supported across multiple programming languages
- Extensive documentation and large community for troubleshooting
- Robust and flexible for complex web automation tasks
Cons of Selenium
- Steeper learning curve, especially for non-programmers
- Requires more code to accomplish simple tasks
- Setup and configuration can be time-consuming
Code Comparison
Selenium (Python):
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://example.com")
element = driver.find_element(By.ID, "search")
element.send_keys("test")
element.submit()
TagUI:
https://example.com
type search as test
click search
TagUI offers a more concise and readable syntax for simple automation tasks, making it easier for non-programmers to use. However, Selenium provides more granular control and flexibility for complex scenarios, albeit with more verbose code.
Selenium's widespread adoption and extensive ecosystem make it a preferred choice for large-scale projects and teams with programming expertise. TagUI, on the other hand, excels in rapid prototyping and simpler automation tasks, especially for users without extensive coding experience.
JavaScript API for Chrome and Firefox
Pros of Puppeteer
- More powerful and flexible for complex web automation tasks
- Extensive API with fine-grained control over browser actions
- Large community and ecosystem with numerous plugins and extensions
Cons of Puppeteer
- Steeper learning curve, especially for non-developers
- Requires more code to accomplish simple tasks
- Limited built-in support for visual automation and OCR
Code Comparison
TagUI example:
click Login
type username as user@email.com
type password as 12345678
click Submit
Puppeteer example:
await page.click('#login-button');
await page.type('#username', 'user@email.com');
await page.type('#password', '12345678');
await page.click('#submit-button');
Key Differences
- TagUI uses a simpler, more human-readable syntax
- Puppeteer offers more granular control but requires JavaScript knowledge
- TagUI includes built-in support for visual automation and OCR
- Puppeteer provides better integration with web technologies and testing frameworks
Both tools have their strengths, with TagUI being more accessible for beginners and non-developers, while Puppeteer offers more power and flexibility for complex automation tasks.
Fast, easy and reliable testing for anything that runs in a browser.
Pros of Cypress
- More robust and feature-rich testing framework
- Extensive documentation and community support
- Real-time browser testing with time-travel debugging
Cons of Cypress
- Limited to testing web applications only
- Steeper learning curve for beginners
- Requires more setup and configuration
Code Comparison
TagUI example:
type search as github
click search
wait 2 seconds
show page title
Cypress example:
describe('Search Test', () => {
it('performs a search', () => {
cy.visit('https://example.com')
cy.get('#search').type('github')
cy.get('#submit').click()
cy.wait(2000)
cy.title().should('include', 'Search Results')
})
})
TagUI uses a simpler, more human-readable syntax for basic automation tasks, while Cypress offers a more powerful and flexible JavaScript-based testing framework. TagUI is easier for non-programmers to pick up, but Cypress provides more advanced features and better integration with modern web development workflows.
Both tools have their strengths, with TagUI excelling in quick, simple automations across various platforms, and Cypress shining in comprehensive web application testing and quality assurance processes.
Generic automation framework for acceptance testing and RPA
Pros of Robot Framework
- More extensive ecosystem with a wide range of libraries and tools
- Supports multiple programming languages (Python, Java, .NET)
- Strong community support and active development
Cons of Robot Framework
- Steeper learning curve, especially for non-programmers
- More complex setup and configuration process
- Less intuitive for simple automation tasks
Code Comparison
TagUI example:
click login
type username as user@email.com
type password as 12345678
click submit
Robot Framework example:
*** Test Cases ***
Login Test
Click Element id=login
Input Text id=username user@email.com
Input Password id=password 12345678
Click Button id=submit
Summary
TagUI is more user-friendly and easier to learn, making it ideal for simple automation tasks and non-programmers. Robot Framework offers more flexibility and extensive features, suitable for complex automation projects across various domains. TagUI uses a simpler syntax, while Robot Framework requires more structured test case definitions.
Cross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol
Pros of Appium
- Supports multiple programming languages (Java, Python, Ruby, etc.)
- Extensive cross-platform support (iOS, Android, Windows)
- Large community and ecosystem with frequent updates
Cons of Appium
- Steeper learning curve, especially for non-developers
- More complex setup and configuration process
- Can be slower in execution compared to native automation tools
Code Comparison
TagUI (RPA script):
click login
type username as user@email.com
type password as 12345678
click submit
wait 2 seconds
check success_message present
Appium (Python):
driver.find_element_by_id('login').click()
driver.find_element_by_id('username').send_keys('user@email.com')
driver.find_element_by_id('password').send_keys('12345678')
driver.find_element_by_id('submit').click()
WebDriverWait(driver, 2).until(EC.presence_of_element_located((By.ID, 'success_message')))
TagUI focuses on simplicity and readability, making it easier for non-developers to create automation scripts. Appium, while more verbose, offers greater flexibility and control over the automation process, catering to more complex testing scenarios and professional developers.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
TagUI
NOTICE: AI Singapore has discontinued maintenance and support of TagUI, but the project continues to be supported by open-source contributors and the community.
Check out this YouTube learning series. Take the free course. Ask any questions at our Telegram.
Download v6.114 | Usage Guide | Demos | Samples | Slides | Podcast | Video | ä¸æ
Write flows in simple TagUI language and automate away repetitive time-consuming tasks on your computer. Tasks include those on websites (native support for Chrome and Edge), desktop apps, or the command line. The TagUI project is open-source and free forever. It's easy to setup and use, and works on Windows, macOS and Linux.
Besides English, flows can be written in 22 other languages, so you can do RPA using your native language. Check out this demo video automating data collection in 4 different languages. With the new TagUI turbo mode, you can even run your automation 10X faster than normal human speed!
Language designed for RPA
In TagUI language, you use steps like click
and type
to interact with identifiers, which include web identifiers, image snapshots, screen coordinates, or even text using OCR. Below is an example to login to Xero accounting:
https://login.xero.com/identity/user/login
type email as user@gmail.com
type password as 12345678
click Log in
// besides web identifiers, images of UI elements can be used
type email_box.png as user@gmail.com
type password_box.png as 12345678
click login_button.png
Grabbing data from a table on a website can be as easy as below (where n is the nth table on the webpage)
table n to forex_rates.csv
Moving data between TagUI and Excel is as easy as using standard Excel formula that you are familiar with
top_salesman = [Monthly Report.xlsx]August!E11
Sending a Telegram notification is trivially easy (first message @taguibot to authorise it to send messages)
telegram id Hello World. Olá Mundo. नमसà¥à¤¤à¥ दà¥à¤¨à¤¿à¤¯à¤¾. ìë
íì¸ì ì¸ê³. ä¸ç,ä½ å¥½ã
Do RPA Any Way You Want
You can use TagUI MS Office Plug-ins (sample doc) to easily create and deploy Word doc as RPA robots, and set up RPA data parameters using Excel. Enjoy a full-featured RPA IDE with toolbar of TagUI steps and tooltips, snapshot tool to automate using computer vision, task pane for settings and run output.
You can also create and edit your RPA robots using commonly used text editors like Notepad, Notepad++, VS Code, Sublime, TextEdit, Vim, etc. For VS Code users, you can install TagUI language extension. For Notepad++ users, you can download TagUI plug-ins here for syntax highlighting, shortcuts and snippets.
Some users might find it interesting or useful to use AI and machine learning (in particular LLM large language models), to help generate a template script, then they make the fine-tuning accordingly. See this issue on some questions that I asked Anthropic's Claude 3.5 Sonnet and its responses.
Ecosystem and Communities
TagUI has a bustling user community, and extended community champions create new RPA tools for their own communities, based on TagUI. Python users can pip install rpa to use the #1 Python RPA package. There is also TagUI for C# .NET. For event-driven RPA with thousands of connectors, do check out TagUI module for Node-RED, a popular free and open-source workflow automation tool.
For Microsoft Power Automate Desktop users, you'll be happy to know that there's 2-way integration with TagUI out of the box (for business continuity if you switch between the 2 apps). Also, do check out other leading open-source RPA tools, to see if they meet your needs better - OpenRPA & OpenFlow, Robocorp. All of them support enterprise-grade orchestrating and running TagUI robots from their orchestrator.
Enterprise Security by design
Security Considerations
- TagUI default implementation is an on-user-computer on-prem RPA tool that does not exist on any cloud
- TagUI is not a SaaS or software on the cloud running on vendor's cloud, it runs on actual users' computers
- Industry-specific certifications like PCI-DSS, HIPAA, SOX aren't applicable because TagUI doesn't store data
- In decentralised bottom-up RPA, not advisable and no need for bot credentials as users are held accountable
Data Considerations
- For data at rest, storage encryption would be on user's computer's OS-level as it is run on user's computer
- For data in use, recommend user to manually enter sensitive info like password before letting robot take over
- For data in motion, users' enterprise app websites are now https by default for secure data entry and retrieval
More Information
- See this guide on enterprise installation, including whitelisting details, TagUI architecture and dependencies
- With -report option, there is a summary and detailed logs of robots, with support for centralised reporting
How to get started
Join the community and ask any questions at our Telegram chat group. Watch this YouTube learning series. Take TagUI free course over one morning or afternoon, and start using the most popular open-source RPA software. Share this TagUI slide deck with your team or customers to win their buy-in to use TagUI.
If you are maintaining your own fork of TagUI (for eg tech leads, RPA consultants, individual developers), see this maintainer training video series to understand how TagUI works behind the scenes, and for you to modify all aspects of TagUI and extend the software to your customers' exact needs, made-to-measure.
TagUI v5.11
For technical details of TagUI, such as architecture diagram and codebase structure, see the old homepage
Credits
Open-source project | Maintainer | From | How does this contribute to TagUI project |
---|---|---|---|
TagUI for China | æ¥è¡¨å¥ | China | usage guide and repository in Chinese |
TagUI for Notepad++ | Md Ardyansyah | Indonesia | various TagUI plug-ins for Notepad++ |
TagUI for VS Code | Subhas Malik | India | language extension for Visual Studio Code |
TagUI for Robocorp | Nived N | India | run TagUI in Robocorp or Robot Framework |
TagUI for Node-RED | Allan Zimmermann | Denmark | low-code event-driven workflow automation |
TagUI for C# .NET | Allan Zimmermann | Denmark | C# version of TagUI (Install-Package tagui) |
TagUI for Docker | Allan Zimmermann | Denmark | replicable RPA environment for everyone |
RPA for Python | Ken Soh | Singapore | Python version of TagUI (pip install rpa) |
TagUI v3.0 | Ken Soh | Singapore | personal project before AI Singapore |
SikuliX | Raimund Hocke | Germany | computer vision, OCR, input hardware |
CasperJS | Nicolas Perriault | France | high-level JavaScript execution engine |
PhantomJS | Ariya Hidayat | Indonesia | foundation JavaScript execution engine |
SlimerJS | Laurent Jouanneau | France | browser automation for FireFox <= v59 |
Sponsor
This project was previously supported by the National Research Foundation, Singapore under its AI Singapore Programme (AISG-RP-2019-050). Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not reflect the views of National Research Foundation, Singapore.
Top Related Projects
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
A browser automation framework and ecosystem.
JavaScript API for Chrome and Firefox
Fast, easy and reliable testing for anything that runs in a browser.
Generic automation framework for acceptance testing and RPA
Cross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot